My Project
KidsDBProvider.h
1 #pragma once
2 #include "ic/ParaDatabase.h"
3 #include "DataProviderManager.h"
4 
5 #include "CharacterDBProvider.h"
6 #include "ChestDBProvider.h"
7 #include "FruitDBProvider.h"
8 #include "ItemDBProvider.h"
9 #include "PetAIDBProvider.h"
10 #include "PetDBProvider.h"
11 #include "PuzzleDBProvider.h"
12 #include "QuestDBProvider.h"
13 #include "StringTable.h"
14 #include "TitleDBProvider.h"
15 
16 namespace ParaEngine
17 {
18  class CCharacterDBProvider;
19  class CChestDBProvider;
20  class CFruitDBProvider;
21  class CItemDBProvider;
22  class CPetAIDBProvider;
23  class CPetDBProvider;
24  class CPuzzleDBProvider;
25  class CQuestDBProvider;
26  class CStringTableDB;
27  class CTitleDBProvider;
28 
29 
31  {
32  public:
33  CKidsDBProvider(void);
34  ~CKidsDBProvider(void);
35 
36  // -------------------------------
37  // common function
38  // -------------------------------
39 
41  bool IsValid() {return m_pDataBase.get() !=0;};
42 
44  void Cleanup();
46  DBEntity* GetDBEntity() {return m_pDataBase.get();};
51  void SetDBEntity(const string& sConnectionstring);
52 
54  void ValidateDatabase() {assert(m_pDataBase.get()!=0);};
55 
56  // -------------------------------
57  // string table functions
58  // -------------------------------
59 
63  static string GetStringbyID(int ID);
64 
69  static int InsertString(const char* strEN, const char * strCN);
70 
71  // -------------------------------
72  // Puzzle database functions
73  // -------------------------------
74 
79  bool InsertPuzzleRecordFromString(const string& strRecord);
80 
85  bool DeletePuzzleRecordByID(int ID);
86 
87  // -------------------------------
88  // Item database functions
89  // -------------------------------
90 
95  bool InsertItemRecordFromString(const string& strRecord);
96 
101  bool DeleteItemRecordByID(int ID);
102 
107  bool UpdateItemRecordFromString(const string& strRecord);
108 
113  const char * SelectItemRecordToString(__int64 ID);
114 
115  // -------------------------------
116  // Character database functions
117  // -------------------------------
118 
123  bool InsertCharacterRecordFromString(const string& strRecord);
124 
129  bool DeleteCharacterRecordByID(int ID);
130 
131  // -------------------------------
132  // Chest database functions
133  // -------------------------------
134 
139  bool InsertChestRecordFromString(const string& strRecord);
140 
145  bool DeleteChestRecordByID(int ID);
146 
147  // -------------------------------
148  // Fruit database functions
149  // -------------------------------
150 
155  bool InsertFruitRecordFromString(const string& strRecord);
156 
161  bool DeleteFruitRecordByID(int ID);
162 
163  // -------------------------------
164  // PetAI database functions
165  // -------------------------------
166 
171  bool InsertPetAIRecordFromString(const string& strRecord);
172 
177  bool DeletePetAIRecordByID(int ID);
178 
179  // -------------------------------
180  // Pet database functions
181  // -------------------------------
182 
187  bool InsertPetRecordFromString(const string& strRecord);
188 
193  bool DeletePetRecordByID(int ID);
194 
195  // -------------------------------
196  // Quest database functions
197  // -------------------------------
198 
203  bool InsertQuestRecordFromString(const string& strRecord);
204 
209  bool DeleteQuestRecordByID(int ID);
210 
211  // -------------------------------
212  // Title database functions
213  // -------------------------------
214 
219  bool InsertTitleRecordFromString(const string& strRecord);
220 
225  bool DeleteTitleRecordByID(int ID);
226 
227 
228 #ifdef _DEBUG
229 
230  void TestDB();
231 #endif
232 
233  private:
234  // FORMAT: parse record fields and link with ##
235  void ParsePuzzleRecordToString(string& str, const stPuzzleDbRecord& record);
236  void ParseStringToPuzzleRecord(const string& str, stPuzzleDbRecord& record);
237 
238  // Append string table record to str
239  void AppendStringTableRecordToString(string& str, const stStringTableDbRecord& record);
240  // Get string table record to record
241  int GetStringTableRecordFromString(char* str, stStringTableDbRecord& record);
242 
243  // FORMAT: parse record fields and link with ##
244  void ParseItemRecordToString(const stItemDbRecord& record);
245  void ParseStringToItemRecord(const string& str, stItemDbRecord& record);
246 
247  const char * NumToString(__int64 num);
248  const char * NumToString(int num);
249  const char * NumToString(float num);
250  const char * NumToString(bool num);
251 
252  char m_strSelectBuf[MAX_STRING_LENGTH];
253 
254 
255  // FORMAT: parse record fields and link with ##
256  void ParseCharacterRecordToString(string& str, const stCharacterDbRecord& record);
257  void ParseStringToCharacterRecord(const string& str, stCharacterDbRecord& record);
258 
259  // FORMAT: parse record fields and link with ##
260  void ParseChestRecordToString(string& str, const stChestDbRecord& record);
261  void ParseStringToChestRecord(const string& str, stChestDbRecord& record);
262 
263  // FORMAT: parse record fields and link with ##
264  void ParseFruitRecordToString(string& str, const stFruitDbRecord& record);
265  void ParseStringToFruitRecord(const string& str, stFruitDbRecord& record);
266 
267  // FORMAT: parse record fields and link with ##
268  void ParsePetAIRecordToString(string& str, const stPetAIDbRecord& record);
269  void ParseStringToPetAIRecord(const string& str, stPetAIDbRecord& record);
270 
271  // FORMAT: parse record fields and link with ##
272  void ParsePetRecordToString(string& str, const stPetDbRecord& record);
273  void ParseStringToPetRecord(const string& str, stPetDbRecord& record);
274 
275  // FORMAT: parse record fields and link with ##
276  void ParseQuestRecordToString(string& str, const stQuestDbRecord& record);
277  void ParseStringToQuestRecord(const string& str, stQuestDbRecord& record);
278 
279  // FORMAT: parse record fields and link with ##
280  void ParseTitleRecordToString(string& str, const stTitleDbRecord& record);
281  void ParseStringToTitleRecord(const string& str, stTitleDbRecord& record);
282 
284  ParaEngine::asset_ptr<DBEntity> m_pDataBase;
285 
286  // database providers
287  CCharacterDBProvider* m_dbCharacter;
288  CChestDBProvider* m_dbChest;
289  CFruitDBProvider* m_dbFruit;
290  CItemDBProvider* m_dbItem;
291  CPetAIDBProvider* m_dbPetAI;
292  CPetDBProvider* m_dbPet;
293  CPuzzleDBProvider* m_dbPuzzle;
294  CQuestDBProvider* m_dbQuest;
295  CStringTableDB* m_dbStringTable;
296  CTitleDBProvider* m_dbTitle;
297  };
298 }
Definition: ChestDBProvider.h:46
Definition: ChestDBProvider.h:7
bool IsValid()
whether db is opened.
Definition: KidsDBProvider.h:41
DBEntity * GetDBEntity()
get the database object associated with this provider
Definition: KidsDBProvider.h:46
Definition: QuestDBProvider.h:7
Definition: StringTable.h:24
Definition: PuzzleDBProvider.h:44
bool DeleteChestRecordByID(int ID)
delete the existing chest record from Chest_DB
Definition: KidsDBProvider.cpp:604
static int InsertString(const char *strEN, const char *strCN)
Insert the new string table entry to StringTable_DB.
Definition: KidsDBProvider.cpp:110
Definition: ItemDBProvider.h:49
bool DeleteQuestRecordByID(int ID)
delete the existing quest record from Quest_DB
Definition: KidsDBProvider.cpp:660
different physics engine has different winding order.
Definition: EventBinding.h:32
void Cleanup()
delete the database and set everything to NULL
Definition: KidsDBProvider.cpp:40
Definition: PetDBProvider.h:51
Definition: TitleDBProvider.h:7
bool InsertChestRecordFromString(const string &strRecord)
Insert the new chest record to Chest_DB.
Definition: KidsDBProvider.cpp:598
bool InsertPetRecordFromString(const string &strRecord)
Insert the new pet record to Pet_DB.
Definition: KidsDBProvider.cpp:640
void SetDBEntity(const string &sConnectionstring)
replace the current database with current one.
Definition: KidsDBProvider.cpp:405
bool InsertPuzzleRecordFromString(const string &strRecord)
Insert the new puzzle record to Puzzle_DB.
Definition: KidsDBProvider.cpp:123
bool InsertFruitRecordFromString(const string &strRecord)
Insert the new fruit record to Fruit_DB.
Definition: KidsDBProvider.cpp:612
bool InsertItemRecordFromString(const string &strRecord)
Insert the new item record to Item_DB.
Definition: KidsDBProvider.cpp:457
Definition: CharacterDBProvider.h:8
Definition: QuestDBProvider.h:40
static string GetStringbyID(int ID)
Get string from ID.
Definition: KidsDBProvider.cpp:103
bool DeleteFruitRecordByID(int ID)
delete the existing fruit record from Fruit_DB
Definition: KidsDBProvider.cpp:618
Definition: PetAIDBProvider.h:6
bool InsertTitleRecordFromString(const string &strRecord)
Insert the new title record to Title_DB.
Definition: KidsDBProvider.cpp:668
bool InsertQuestRecordFromString(const string &strRecord)
Insert the new quest record to Quest_DB.
Definition: KidsDBProvider.cpp:654
bool UpdateItemRecordFromString(const string &strRecord)
Update existing item record of Item_DB.
Definition: KidsDBProvider.cpp:463
Definition: PetAIDBProvider.h:22
bool InsertPetAIRecordFromString(const string &strRecord)
Insert the new petAI record to PetAI_DB.
Definition: KidsDBProvider.cpp:626
Definition: ItemDBProvider.h:7
bool DeleteTitleRecordByID(int ID)
delete the existing title record from Title_DB
Definition: KidsDBProvider.cpp:674
Definition: TitleDBProvider.h:26
bool DeleteItemRecordByID(int ID)
delete the existing item record from Item_DB
Definition: KidsDBProvider.cpp:469
Definition: StringTable.h:7
void ValidateDatabase()
ensure that the database has been set up properly.
Definition: KidsDBProvider.h:54
a single database file.
Definition: ICDBManager.h:39
bool DeletePetAIRecordByID(int ID)
delete the existing petAI record from PetAI_DB
Definition: KidsDBProvider.cpp:632
Definition: FruitDBProvider.h:41
Definition: CharacterDBProvider.h:58
Definition: FruitDBProvider.h:7
Definition: PuzzleDBProvider.h:8
bool DeleteCharacterRecordByID(int ID)
delete the existing puzzle record from Character_DB
Definition: KidsDBProvider.cpp:590
Definition: PetDBProvider.h:10
const char * SelectItemRecordToString(__int64 ID)
Select existing item record of Item_DB.
Definition: KidsDBProvider.cpp:474
bool InsertCharacterRecordFromString(const string &strRecord)
Insert the new character record to Character_DB.
Definition: KidsDBProvider.cpp:584
bool DeletePetRecordByID(int ID)
delete the existing pet record from Pet_DB
Definition: KidsDBProvider.cpp:646
bool DeletePuzzleRecordByID(int ID)
delete the existing puzzle record from Puzzle_DB
Definition: KidsDBProvider.cpp:130
Definition: KidsDBProvider.h:30