SDC C-Project CF Review 프로그램
LYW
2021-07-08 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1
ReviewHistory/include/akCore/akFileDBHash.h
»õ ÆÄÀÏ
@@ -0,0 +1,72 @@
#pragma once
#include "akCoreLinker.h"
#include <map>
#include <hash_map>
#include <string>
#include <Windows.h>
#include <atlstr.h>
//hash_map을 ì‚¬ìš©í•˜ëŠ” ê²½ìš°
//1. ë§Žì€ ìžë£Œë¥¼ ì €ìž¥í•˜ê³ , ê²€ìƒ‰ ì†ë„ê°€ ë¹¨ë¼ì•¼ í•œë‹¤.
//2. ë„ˆë¬´ ë¹ˆë²ˆí•˜ê²Œ ìžë£Œë¥¼ ì‚½ìž…, ì‚­ì œ í•˜ì§€ ì•ŠëŠ”ë‹¤.
//3. key값으로 Cstring을 ì“°ì§€ ëª»í•œë‹¤.(구분해서 í´ëž˜ìŠ¤ë¥¼ ë§Œë“  ì´ìœ !!)
#define ITEMSEP "_#" //구분자
//#define mapIDVal std::multimap<CString, CString>
#define mapHash stdext::hash_map<std::string, std::string>
#define mapHashIt mapHash::iterator
class AKCORE_DLLSPEC CakFileDBHash
{
public:
   CakFileDBHash(void);
   ~CakFileDBHash(void);
   bool openfile(char* filename);
   bool savefile(char* filename);
   void clear();
   void setWriteEnter(); //동기화 ê°ì²´ ì‹œìž‘
   void setWriteRelease();  //동기화 ê°ì²´ ì¤‘ì§€
   //단일 ë°ì´í„°
   void setItem(char* strKey, char* strVal);
   void setItem(char* strKey, int nVal);
   void setItem(char* strKey, float fVal);
   void setItem(char* strKey, double dVal);
   void getItem(char* strKey, CString* strVal, char* strDefaultVal = "");
   void getItem(char* strKey, char* strVal, char* strDefaultVal = "");
   void getItem(char* strKey, int* nVal, int nDefaultVal = 0);
   void getItem(char* strKey, float* fVal, float fDefaultVal = 0);
   void getItem(char* strKey, double* dVal, double dDefaultVal = 0);
   char* getItemPoint(char* strKey);
   //다중 ë°ì´í„° ê´€ë¦¬
   void setItemClear(char* strKey);
   int  getItemNum(char* strKey);
   void setItem(int nIndex, char* strKey, char* strVal);
   void setItem(int nIndex, char* strKey, int nVal);
   void setItem(int nIndex, char* strKey, float fVal);
   void setItem(int nIndex, char* strKey, double dVal);
   void getItem(int nIndex, char* strKey, CString* strVal, char* strDefaultVal = "");
   void getItem(int nIndex, char* strKey, char* strVal, char* strDefaultVal = "");
   void getItem(int nIndex, char* strKey, int* nVal, int nDefaultVal = 0);
   void getItem(int nIndex, char* strKey, float* fVal, float fDefaultVal = 0);
   void getItem(int nIndex, char* strKey, double* dVal, double dDefaultVal = 0);
   char* getItemPoint(int nIndex, char* strKey);
protected:
   mapHash m_mapData;
   CRITICAL_SECTION m_csAkFileDB;
};