From 308273fef97381356e96fcd9c17011409a3c2920 Mon Sep 17 00:00:00 2001
From: kojingeun <diteam.co.kr>
Date: 수, 07 6월 2023 10:28:21 +0900
Subject: [PATCH] Ongoing50 #4517 CF AOI Review 결과 파일 찾기 실패 개선 1. Find Bin File 찾는 Library 변경  - CRT _findfirsti64 / _findnexti64 -> C++17 Filesystem directory_iterator  - 파일 탐색 시간 20k Files(80GB) 1sec 소요

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

diff --git a/ReviewHistory/include/akCore/akFileMgr.h b/ReviewHistory/include/akCore/akFileMgr.h
new file mode 100644
index 0000000..9c50e5c
--- /dev/null
+++ b/ReviewHistory/include/akCore/akFileMgr.h
@@ -0,0 +1,80 @@
+#pragma once
+
+
+
+#include "akCoreLinker.h"
+#include <vector>
+
+struct AKCORE_DLLSPEC _Attribute
+{
+	_Attribute()
+	{
+		memset(Title		, 0, sizeof(char)*128);
+		memset(Attribute	, 0, sizeof(char)*128);
+		memset(Value		, 0, sizeof(char)*128);
+	}
+	char Title[128];
+	char Attribute[128];
+	char Value[128];
+};
+
+struct AKCORE_DLLSPEC _Title
+{
+	_Title(char* title)
+	{
+		strcpy(Title, title);
+	};
+	bool compare(char* title)
+	{
+		if(strcmp(title, Title) == 0 && strlen(title) == strlen(Title))
+		{
+			return true;
+		}
+		return false;
+	};
+	void clear()
+	{
+		memset(Title, 0, sizeof(char)*128);
+	};
+	char Title[128];
+};
+
+namespace akCore
+{
+	class AKCORE_DLLSPEC CakFileMgr
+	{
+	public:
+		CakFileMgr(void);
+		~CakFileMgr(void);
+
+		//타이틀 설정(OpenFile()함수와 MakeFile()함수를 호출하면 타이틀셋팅은 Null이 된다)
+		void SetTitle(char* title);
+
+		//쓰기 관련
+		//타이틀을 정한다.
+		bool SetAttribute(char* Attribute, int value);
+		bool SetAttribute(char* Attribute, double value);
+		bool SetAttribute(char* Attribute, char* value);
+		bool SetAttribute(char* Attribute, float value);
+		//쓰기 버퍼에 저장된 데이터를 파일로 저장
+		bool MakeFile(char* filepath);
+		
+
+		//읽기 관련
+		//파일 열기(쓰기준비중이였다면 쓰기 버퍼는 초기화 된다)
+		bool OpenFile(char* filepath);
+		bool GetAttribute(char* Attribute, int& value);
+		bool GetAttribute(char* Attribute, double& value);
+		bool GetAttribute(char* Attribute, char* value);
+		bool GetAttribute(char* Attribute, float& value);
+		
+	private:
+		//빠른 찾기를 위해서 저장된 데이터 정렬
+		void DataSort();
+		char m_Title[128];
+		std::vector<_Attribute> m_data;
+
+		char* m_buffer;
+		int m_fastIndex;
+	};
+}
\ No newline at end of file

--
Gitblit v1.9.3