8 #ifndef XGBOOST_COMMON_IO_H_ 9 #define XGBOOST_COMMON_IO_H_ 12 #include <rabit/rabit.h> 30 : strm_(strm), buffer_ptr_(0) {}
32 size_t Read(
void* dptr,
size_t size)
override;
33 virtual size_t PeekRead(
void* dptr,
size_t size);
35 void Write(
const void* dptr,
size_t size)
override {
36 LOG(FATAL) <<
"Not implemented";
57 size_t Read(
void* dptr,
size_t size)
override;
58 size_t PeekRead(
void* dptr,
size_t size)
override;
59 size_t Size()
const {
return buffer_.size(); }
60 size_t Tell()
const {
return pointer_; }
61 void Seek(
size_t pos);
63 void Write(
const void* dptr,
size_t size)
override {
64 LOG(FATAL) <<
"Not implemented";
71 void Take(std::string* out);
90 auto splited =
Split(fname,
'.');
91 if (splited.size() > 1) {
92 return splited.back();
100 #endif // XGBOOST_COMMON_IO_H_ virtual size_t PeekRead(void *dptr, size_t size)
rabit::utils::MemoryBufferStream MemoryBufferStream
Definition: io.h:21
std::string LoadSequentialFile(std::string uri, bool stream=false)
Helper function for loading consecutive file to avoid dmlc Stream when possible.
A simple class used to consume `dmlc::Stream' all at once.
Definition: io.h:52
size_t Read(void *dptr, size_t size) override
size_t Size() const
Definition: io.h:59
void Write(const void *dptr, size_t size) override
Definition: io.h:35
std::vector< std::string > Split(const std::string &s, char delim)
Split a string by delimiter.
Definition: common.h:57
size_t Tell() const
Definition: io.h:60
void Write(const void *dptr, size_t size) override
Definition: io.h:63
Input stream that support additional PeekRead operation, besides read.
Definition: io.h:27
namespace of xgboost
Definition: base.h:102
std::string FileExtension(std::string const &fname)
Definition: io.h:89
rabit::utils::MemoryFixSizeBuffer MemoryFixSizeBuffer
Definition: io.h:20
PeekableInStream(dmlc::Stream *strm)
Definition: io.h:29