#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 |