// // Created by Иван_Архипов on 31.10.2017. // #ifndef LOTRO_DAT_PATCHER_BINARYDATA_H #define LOTRO_DAT_PATCHER_BINARYDATA_H #include #include extern "C++" { namespace LOTRO_DAT { class Database; class BinaryData { public: BinaryData(); BinaryData(const BinaryData &d); explicit BinaryData(unsigned int size); ~BinaryData(); unsigned char& operator[] (const unsigned int &pos); BinaryData operator +(const BinaryData &b); template long long ToNumber(const long long &pos) const; template long long ToNumberRAW(const long long &pos) const; template void FromNumber(const long long &number); template void FromNumberRAW(const long long &number); size_t size() const; unsigned char* data() const; BinaryData& operator=(const BinaryData& data); BinaryData CutData(long long first = 0, long long last = -1); bool WriteToFile(const char *filename) const; bool WriteToFile(const std::string &filename) const; bool CheckCompression() const; void DecompressData(unsigned int offset = 0); private: unsigned char *data_; size_t size_; }; } } #endif //LOTRO_DAT_PATCHER_BINARYDATA_H