From 89c5b2369413025e1fe7dfe5c5d0bf3bedd8558d Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Mon, 23 Jul 2012 13:52:57 +0000 Subject: git-svn-id: http://svn.miranda-ng.org/main/trunk@1123 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- !NotAdopted/SmartAutoReplier/CrushLog.h | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 !NotAdopted/SmartAutoReplier/CrushLog.h (limited to '!NotAdopted/SmartAutoReplier/CrushLog.h') diff --git a/!NotAdopted/SmartAutoReplier/CrushLog.h b/!NotAdopted/SmartAutoReplier/CrushLog.h new file mode 100644 index 0000000000..1a595d055b --- /dev/null +++ b/!NotAdopted/SmartAutoReplier/CrushLog.h @@ -0,0 +1,54 @@ +/* + * Smart Auto Replier (SAR) - auto replier plugin for Miranda IM + * + * Copyright (C) 2004 - 2012 by Volodymyr M. Shcherbyna + * + * This file is part of SAR. + * + * SAR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * SAR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with SAR. If not, see . +*/ + +#pragma once + +/// crash item that is written in file... +typedef struct _CRUSHLOG_ITEM +{ + CHAR* CompilationDate; /// compilation date of the source file + CHAR* FileName; /// file name where exception has occured + CHAR* FunctionName; /// function name where exception has occured + INT LineNumber; /// line number + INT LastError; /// last error +}CRUSHLOG_ITEM, *PCRUSHLOG_ITEM; + +#define LOG_FILENAME TEXT("sarcrushes.log") + +/// class that handles all crushes +/// occured between BEGIN_LOG_AND_PRO.. and END_LOG.. +class CCrushLog +{ +public: /// ctors, dtors section... + CCrushLog(void); + ~CCrushLog(void); +public: + static void Init(void); /// inits internal data.. + static void DeInit(void); /// deinits internal data.. + static void SaveToLog(CRUSHLOG_ITEM & item); /// saves data to log file + static void InternalProtect(CHAR* FunctionName, CHAR* FileName, + CHAR* CompilationDate, INT LineNumber, + INT LastError); +public: + static TCHAR m_szLogPath[MAX_PATH]; /// path to log file +private: + static CRITICAL_SECTION m_critSect; /// sync object... +}; -- cgit v1.2.3