From c220de6f70051797e9d8b371830d06def9dc9cbd Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 목, 30 6월 2022 11:02:23 +0900
Subject: [PATCH] 검사기 RawMessenger 동기화

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

diff --git a/ReviewHistory/include/akCore/akFileDB.h b/ReviewHistory/include/akCore/akFileDB.h
new file mode 100644
index 0000000..1bef2aa
--- /dev/null
+++ b/ReviewHistory/include/akCore/akFileDB.h
@@ -0,0 +1,80 @@
+#pragma once
+
+#include "akCoreLinker.h"
+
+#include <atlstr.h>
+#include <map>
+#include <vector>
+#include <Windows.h>
+
+//hash_map을 사용하는 경우
+//1. 많은 자료를 저장하고, 검색 속도가 빨라야 한다.
+//2. 너무 빈번하게 자료를 삽입, 삭제 하지 않는다. 
+#define ITEMSEP "_#" //구분자
+
+#define mapIDVal std::map<CString, CString>
+#define mapIDValIt mapIDVal::iterator
+
+
+
+class AKCORE_DLLSPEC CakFileDB
+{
+public:
+	CakFileDB(void);
+	~CakFileDB(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 setItem(char* strKey, long 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);
+	void getItem(char* strKey, long* dVal, long 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);
+
+	
+
+
+	int deleteItem(char* strKey); //
+	int deleteItem(int nIndex); //
+	 
+	
+
+protected:
+	mapIDVal m_mapData;
+	std::vector<mapIDValIt> m_vecOrder;
+
+	CRITICAL_SECTION m_csAkFileDB;
+
+};

--
Gitblit v1.9.3