Reader pointer class for data files.
| 126 | |
| 127 | // Reader pointer class for data files. |
| 128 | class ModelReaderPtr : public ReaderPtr<ModelReader> |
| 129 | { |
| 130 | using TBase = ReaderPtr<ModelReader>; |
| 131 | |
| 132 | public: |
| 133 | template <typename TReaderDerived> |
| 134 | ModelReaderPtr(std::unique_ptr<TReaderDerived> p) : TBase(std::move(p)) |
| 135 | {} |
| 136 | |
| 137 | ModelReaderPtr SubReader(uint64_t pos, uint64_t size) const |
| 138 | { |
| 139 | return std::unique_ptr<ModelReader>(static_cast<ModelReader *>(m_p->CreateSubReader(pos, size).release())); |
| 140 | } |
| 141 | |
| 142 | std::string const & GetName() const { return m_p->GetName(); } |
| 143 | }; |
| 144 | |
| 145 | /// Source that reads from a reader and holds Reader by non-owning reference. |
| 146 | /// No templates here allows to hide Deserialization functions in cpp. |