| #pragma once | |
| #include <cstring> | |
| #include <caffe2/serialize/read_adapter_interface.h> | |
| namespace caffe2 { | |
| namespace serialize { | |
| class MemoryReadAdapter final : public caffe2::serialize::ReadAdapterInterface { | |
| public: | |
| explicit MemoryReadAdapter(const void* data, off_t size) | |
| : data_(data), size_(size) {} | |
| size_t size() const override { | |
| return size_; | |
| } | |
| size_t read(uint64_t pos, void* buf, size_t n, const char* what = "") | |
| const override { | |
| (void) what; | |
| memcpy(buf, (int8_t*)(data_) + pos, n); | |
| return n; | |
| } | |
| private: | |
| const void* data_; | |
| off_t size_; | |
| }; | |
| } // namespace serialize | |
| } // namespace caffe2 |