rawread.hpp 757 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _RAR_RAWREAD_
  2. #define _RAR_RAWREAD_
  3. class RawRead
  4. {
  5. private:
  6. Array<byte> Data;
  7. File *SrcFile;
  8. size_t DataSize;
  9. size_t ReadPos;
  10. #ifndef SHELL_EXT
  11. CryptData *Crypt;
  12. #endif
  13. public:
  14. RawRead(File *SrcFile);
  15. void Read(size_t Size);
  16. void Read(byte *SrcData,size_t Size);
  17. void Get(byte &Field);
  18. void Get(ushort &Field);
  19. void Get(uint &Field);
  20. void Get8(int64 &Field);
  21. void Get(byte *Field,size_t Size);
  22. void Get(wchar *Field,size_t Size);
  23. uint GetCRC(bool ProcessedOnly);
  24. size_t Size() {return DataSize;}
  25. size_t PaddedSize() {return Data.Size()-DataSize;}
  26. #ifndef SHELL_EXT
  27. void SetCrypt(CryptData *Crypt) {RawRead::Crypt=Crypt;}
  28. #endif
  29. };
  30. #endif