PackageFileHead.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // PackageFileHead.h: interface for the PackageFileHead class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PACKAGEFILEHEAD_H__1E5A6AAF_1702_42F3_8336_D3C12F628B4C__INCLUDED_)
  5. #define AFX_PACKAGEFILEHEAD_H__1E5A6AAF_1702_42F3_8336_D3C12F628B4C__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include<string>
  10. #include<iostream>
  11. using namespace std;
  12. namespace PackageCQ
  13. {
  14. #define FileID         "PACK"
  15. #define FileIDLength   4 
  16. #define ReservedLength 12
  17. struct pack_header
  18. {
  19. unsigned char signature[4]; //"PACK"
  20. unsigned long count; //数据的条目数
  21. unsigned long index_offset; //索引的偏移量
  22. unsigned long data_offset; //数据的偏移量
  23. unsigned long crc32;
  24. unsigned char reserved[12];
  25. };
  26. class PackageFileHead  
  27. {
  28. public:
  29. unsigned long GetDataOffset();
  30. unsigned long GetIndexOffset();
  31. PackageFileHead(unsigned long BlockCount, unsigned long IndexOffset, const string &FileTypeString,unsigned long DataOffset,unsigned long CRC32);
  32. unsigned long GetBlockCount() const;
  33. const string& GetFileType() const;
  34. PackageFileHead();
  35. virtual ~PackageFileHead();
  36. const PackageFileHead& operator<< (iostream &PackageDataStream);
  37. PackageFileHead& operator >>(iostream &PackageDataStream);
  38. private:
  39. pack_header m_FileHeadInfo;
  40. string      m_FileTypeString;
  41. };
  42. }
  43. #endif // !defined(AFX_PACKAGEFILEHEAD_H__1E5A6AAF_1702_42F3_8336_D3C12F628B4C__INCLUDED_)