| 277 | |
| 278 | private: |
| 279 | void DoInit(const TString& fileName) { |
| 280 | DataHolder_->Map(0, DataHolder_->Length()); |
| 281 | if (DataHolder_->Length() % sizeof(T)) { |
| 282 | Term(); |
| 283 | ythrow yexception() << "Incorrect size of file " << fileName.Quote(); |
| 284 | } |
| 285 | Ptr_ = (const T*)DataHolder_->Ptr(); |
| 286 | Size_ = DataHolder_->Length() / sizeof(T); |
| 287 | End_ = Ptr_ + Size_; |
| 288 | } |
| 289 | }; |
| 290 | |
| 291 | class TMappedAllocation: TMoveOnly { |