1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef _RAR_RAWREAD_
- #define _RAR_RAWREAD_
- class RawRead
- {
- private:
- Array<byte> Data;
- File *SrcFile;
- size_t DataSize;
- size_t ReadPos;
- CryptData *Crypt;
- public:
- RawRead();
- RawRead(File *SrcFile);
- void Reset();
- size_t Read(size_t Size);
- void Read(byte *SrcData,size_t Size);
- byte Get1();
- ushort Get2();
- uint Get4();
- uint64 Get8();
- uint64 GetV();
- uint GetVSize(size_t Pos);
- size_t GetB(void *Field,size_t Size);
- void GetW(wchar *Field,size_t Size);
- uint GetCRC15(bool ProcessedOnly);
- uint GetCRC50();
- byte* GetDataPtr() {return &Data[0];}
- size_t Size() {return DataSize;}
- size_t PaddedSize() {return Data.Size()-DataSize;}
- size_t DataLeft() {return DataSize-ReadPos;}
- size_t GetPos() {return ReadPos;}
- void SetPos(size_t Pos) {ReadPos=Pos;}
- void Skip(size_t Size) {ReadPos+=Size;}
- void Rewind() {SetPos(0);}
- void SetCrypt(CryptData *Crypt) {RawRead::Crypt=Crypt;}
- };
- uint64 RawGetV(const byte *Data,uint &ReadPos,uint DataSize,bool &Overflow);
- #endif
|