mrDarker
2025-08-14 47873f48d17bb8f7602fda73d29b19adcf43fdd0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#include <stack>
#include <queue>
using namespace std;
 
//ÇϳªÀÇ ·Î±× ¸Þ¸ð¸® »çÀÌÁ ³ªÅ¸³À´Ï´Ù.
#define TLOGSIZE LOG_MEMORY_SIZE+64
 
class CMemoryManager
{
    //¸Þ¸ð¸® Pool·Î »ç¿ëÇÒ STL ½ºÅÃ
    stack<char*> m_MemoryPool;
 
    //·Î±×¸¦ ÀúÀåÇϰí Àִ STL Å¥ = ·Î±× Å¥
    queue<char*> m_LogQueue;
 
    int m_nLogID;
    CString m_strPathName;//[MAX_PATH];
    CString m_strLogName;//[MAX_PATH];
//    TCHAR m_TLog[LOG_MEMORY_SIZE];
    unsigned short m_LogSize;
 
    CRITICAL_SECTION m_csLogFile;
    CRITICAL_SECTION m_csMemory;
public:
    CMemoryManager(int MaxCount, int LogSize,int LogID, CString strLogPath, CString strLogName);
    virtual ~CMemoryManager(void);
 
    //·Î±×¸¦ ·Î±×Å¥¿¡ ³Ö´Â´Ù.
    void PushLog(TCHAR* str, unsigned int* curIndex, 
        unsigned int* curLevel,unsigned int* curProcess, PSYSTEMTIME curTime);
 
    //·Î±× Å¥¿¡ Àִ ³»¿ëÀ» ÆÄÀÏ¿¡ ÀúÀåÇϰí
    //Å¥¿¡ Àִ ·Î±× ¸Þ¸ð¸®¸¦ ¸Þ¸ð¸® Pool·Î ¿Å±ä´Ù.
    void SaveLog();
 
    //ÇöÀç ½ÇÇàµÇ°í Àִ ÆÄÀÏ À§Ä¡¸¦ ¾ò¾î¿Â´Ù.
    void GetModulePath(void);
};