📄 filerecorder.h
字号:
// FileRecorder.h: interface for the CFileRecorder class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FILERECORDER_H__081DB9F4_BC57_4537_954F_849B773C18C4__INCLUDED_)
#define AFX_FILERECORDER_H__081DB9F4_BC57_4537_954F_849B773C18C4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CFileRecorder
{
struct SCS
{
CRITICAL_SECTION CS;
#ifdef _DEBUG
BOOL bEnter;//进入CS了吗?
#endif
SCS()
{
//初始化临界区对象
InitializeCriticalSection(&CS);
#ifdef _DEBUG
bEnter = FALSE;
#endif
}
//进入临界区
inline void Lock()
{
::EnterCriticalSection(&CS);
#ifdef _DEBUG
bEnter = TRUE;
#endif
}
//退出临界区
inline void UnLock()
{
::LeaveCriticalSection(&CS);
#ifdef _DEBUG
bEnter = FALSE;
#endif
}
}m_sCS; //整个SocketManager的临界区对象,在对m_pSocketRes整体进行操作(如果申请,释放socket时),并可能与其它线程发生冲突时使用
public:
BOOL Submit(const char* pszDebugPath, const char* pszSP_ID, const BYTE* pbtPack, UINT nPackLength, int iFlag);
CFileRecorder(const char* pProtocolName);
virtual ~CFileRecorder();
private:
void Append(const char* pszContent);
void Close();
BOOL Open(const char* pszDebugPath, const char* pszSP_ID);
char m_szProtocolName[64];
FILE* m_pFile;
};
#endif // !defined(AFX_FILERECORDER_H__081DB9F4_BC57_4537_954F_849B773C18C4__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -