From 9c13bc5af33d28bb217995597f88fe863db42442 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 금, 01 4월 2022 10:59:55 +0900
Subject: [PATCH] AOI RawMessnger 동기화

---
 ReviewHistory/include/akCore/akFileDBHash.h |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akCore/akFileDBHash.h b/ReviewHistory/include/akCore/akFileDBHash.h
new file mode 100644
index 0000000..20a690c
--- /dev/null
+++ b/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;
+};

--
Gitblit v1.9.3