1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #pragma once
- /*-------------------------------------------------------------------------
- * FedSrvApp
- *-------------------------------------------------------------------------
- * Purpose:
- * This class is called by the assert code when an assert happens
- */
- #define FED_DEBUG_DEBUGOUT 1
- #define FED_DEBUG_FILE 2
- #ifdef _DEBUG
- class FedSrvApp : public Win32App
- {
- public:
- FedSrvApp(void)
- :
- m_hFile(NULL),
- m_dwDebug(FED_DEBUG_DEBUGOUT)
- {
- }
- ~FedSrvApp(void)
- {
- CloseLogFile();
- }
- virtual void OpenLogFile(void)
- {
- CloseLogFile();
- char bfr[200];
- GetModuleFileName(NULL, bfr, 150);
- char* p = strrchr(bfr, '.');
- if (p)
- *(p + 1) = '\0';
- //_itoa(Time::Now().clock(), bfr + strlen(bfr), 10);
- strcat(bfr, "txt");
- m_hFile = CreateFile(bfr, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_FLAG_OVERLAPPED, NULL);
- assert (m_hFile);
- m_overlapped.Offset = 0;
- m_overlapped.OffsetHigh = 0;
- m_overlapped.hEvent = NULL;
- m_nOffset = 0;
- }
- virtual void CloseLogFile(void)
- {
- if (m_hFile)
- {
- CloseHandle(m_hFile);
- m_hFile = NULL;
- }
- }
- virtual void DebugOutput(const char *psz);
- virtual bool OnAssert(const char* psz, const char* pszFile, int line, const char* pszModule);
- virtual void OnAssertBreak();
- void SetDebug(DWORD dw)
- {
- if (!(m_dwDebug & FED_DEBUG_FILE) && (dw & FED_DEBUG_FILE))
- OpenLogFile();
- else if ((m_dwDebug & FED_DEBUG_FILE) && !(dw & FED_DEBUG_FILE))
- CloseLogFile();
- char buff[640];
- wsprintf(buff, "Debug level set from %u to %u.\n", m_dwDebug, dw);
- m_dwDebug = dw;
- DebugOutput(buff);
- }
-
- DWORD GetDebug()
- {
- return m_dwDebug;
- }
-
- private:
- void AsyncFileOut(const char *psz);
-
- HANDLE m_hFile;
- OVERLAPPED m_overlapped;
- DWORD m_dwDebug; // See FED_* above
- #pragma pack(push, 4)
- LONG m_nOffset;
- #pragma pack(pop)
-
- };
- extern FedSrvApp g_app;
- #endif
|