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

模拟服务器

开发平台:

C/C++

  1. /* 
  2.  * File:     UiTaskDataFile.h
  3.  * Desc:     任务记事文件操作
  4.  * Author:   flying
  5.  * Creation: 2003/7/19
  6.  */
  7. //-----------------------------------------------------------------------------
  8. /*************************************************************************
  9.   美丽的花朵,会凋零。灿烂的星光,会在天际默默消失。地球,太阳,宇宙,
  10.   也会有结束的一天。相比之下,人生的短暂,就象一颗流星。短暂的一生中,
  11.   我们会遇到很多匆匆过客,我们会爱和憎恨,为自己的梦想努力奋斗。很多
  12.   朋友会离开我们,也会继续认识很多朋友。在这之后,是永恒的长眠。每次
  13.   在轮船上的夜晚,仰望和海洋相映的夜空,夜空上那么多灿烂的或者不灿烂
  14.   的星光。也许下次还能见到,也许其中的一些将永远消失。所以应该用微笑
  15.   来面对离别,因为离别意味着重逢,或者重逢的希望。所以应该用所有的心
  16.   来珍惜相爱的人,因为夜空中能有一点星光属于自己是一生的幸福。所以应
  17.   该记得老朋友,因为他们曾经是旅途中的一部分。所以应该不管走的多远都
  18.   牵挂自己的父母,因为这个不用多说。所以应该尘封珍藏曾经的初恋,因为
  19.   在人生中最终分开的曾经的结伴而行,会是一份永远难忘的回忆,虽然也许
  20.   现在已经分开在天的两边,虽然失去的往事不再回头,虽然大家都奔波在繁
  21.   忙的城市,但是应该在心底的最深处保留一份默默的祝福和牵挂,因为在心
  22.   底最深处的回忆,点点滴滴都不会消失,会在某个静谧的夜晚,多年前的微
  23.   不足道的细节也许会清晰的浮现。春天草木发芽,夏天满眼绿色,秋天的黄
  24.   叶和花朵在风中飘散,冬天的漫天飞雪和寒冷的夜。这些在不断的发生,和
  25.   夜空中的故事一样。花谢花飞花漫天,红销香断有谁怜。我们不需要有这样
  26.   的感慨,这些要用微笑去面对。即使有泪,也是在心里。病神瑛,只生活在
  27.   满纸荒唐中。
  28.   剑侠情缘网络版,不再是一个游戏,而是另外一个世界的人生。在这个梦幻
  29.   般的人生中,我们也会遇到上面所有的事情。也许在将来的某一天,我们会
  30.   想看到自己走过的路,遇到过的人,曾经的战斗和共同撒过的热血,踏过的
  31.   山水草木。希望我可以让我们留住回忆,只是希望到时候,不要像庄周那样,
  32.   不知道是自己梦到蝴蝶,还是蝴蝶梦到自己。
  33.   烟雾缭绕中,送给我所有的朋友,好梦。
  34.                                      -- flying
  35.                                    2003/7/19  3:28  西山居
  36.  *************************************************************************/
  37. /*
  38.  * File format specification
  39.  * 1 file header: 
  40.  *   this section specifies the number of
  41.  *   system record count and the bytes of 
  42.  *   personal record.
  43.  * 2 personal record:
  44.  *   this section starts with one byte data
  45.  *   as a flag, and keeps nPersonalRecordBytes
  46.  *   bytes data.
  47.  * 3 system record:
  48.  *   this section also starts with one byte
  49.  *   data to flag the beginning of system record.
  50.  *   and then followed by nSystemRecordCount
  51.  *   elements of TASK_SYSTEM_RECORD type.
  52.  * 4 the whole file end with a byte flag as EOF.
  53.  *                        flying 
  54.  */
  55. #if !defined _TASKDATAFILE_H
  56. #define _TASKDATAFILE_H
  57. #include <time.h>
  58. #define TASK_FILE_FLAG 0x46445400 //"TDF"
  59. // data type definition.
  60. struct TASK_FILE_HEADER 
  61. {
  62. char cFlag[sizeof(int)];
  63. int nPersonalRecordBytes;
  64. int nSystemRecordCount;
  65. int nReserved;
  66. };
  67. struct TASK_SYSTEM_RECORD
  68. {
  69. time_t tTime;
  70. unsigned int uReserved;
  71. int nContentLen;
  72. union
  73. {
  74. char cBuffer[4];
  75. const char* pBuffer;
  76. };
  77. };
  78. // Classsssssssssssssssssssss
  79. class KTaskDataFile
  80. {
  81. public:
  82. static void LoadData();
  83. static bool SaveData();
  84. static void ClearAll();
  85. static int GetPersonalRecord(char* pszBuffer, int nBufferSize);
  86. static bool SetPersonalRecord(const char* pstrRecord, int nLen);
  87. static void ClearSystemRecords();
  88. static int GetSystemRecordCount();
  89. static bool InsertSystemRecord(TASK_SYSTEM_RECORD* pRecord);
  90. static bool RemoveSystemRecord(int nIndex);
  91. static const TASK_SYSTEM_RECORD* GetSystemRecord(int nIndex);
  92. private:
  93. struct KPersonalRecord
  94. {
  95. int nLen;
  96. char cBuffer[4];
  97. };
  98. struct KTaskSystemRecordNode
  99. {
  100. KTaskSystemRecordNode* pNext;
  101. TASK_SYSTEM_RECORD Record;
  102. };
  103. private:
  104. static void GetFileName(char* pszFileName, int nLen);
  105. static void AppendSystemRecord(KTaskSystemRecordNode* pNode);
  106. static void InsertSystemRecord(KTaskSystemRecordNode* pNode);
  107. private:
  108. static KPersonalRecord* ms_pPersonalRecord;
  109. static KTaskSystemRecordNode* ms_pSystemRecordList;
  110. static int ms_nSystemRecordCount;
  111. };
  112. #endif