From 5d791bdbbe3c913c031c68653c8a28c9558385a2 Mon Sep 17 00:00:00 2001 From: Szymon Tokarz Date: Sat, 25 Jul 2015 22:29:31 +0000 Subject: MirFox - add MirFoxCommons module as sources instead of lib files git-svn-id: http://svn.miranda-ng.org/main/trunk@14704 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../src/MirFoxCommons/MirFoxCommons_logger.h | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 plugins/MirFox/src/MirFoxCommons/MirFoxCommons_logger.h (limited to 'plugins/MirFox/src/MirFoxCommons/MirFoxCommons_logger.h') diff --git a/plugins/MirFox/src/MirFoxCommons/MirFoxCommons_logger.h b/plugins/MirFox/src/MirFoxCommons/MirFoxCommons_logger.h new file mode 100644 index 0000000000..20a0cc6ccc --- /dev/null +++ b/plugins/MirFox/src/MirFoxCommons/MirFoxCommons_logger.h @@ -0,0 +1,58 @@ +#ifndef _WSX22_UTILS_LOGGER +#define _WSX22_UTILS_LOGGER + +#define PREFIX_SIZE 6 +typedef void (__cdecl *LogFunction)(const wchar_t* szText); + + +/** + * Universal Logger + * + * Singleton pattern based on + * http://www.codeproject.com/KB/threads/SingletonThreadSafety.aspx + */ +class MFLogger +{ + +public: + + //static method that returns only instance of MFLogger + //////no thread safe so use it first time from only one thread (guaranted in mirfox) + static MFLogger * + getInstance() { + //initialized always from one thread + if (m_pOnlyOneInstance == NULL) { + if (m_pOnlyOneInstance == NULL) { + m_pOnlyOneInstance = new MFLogger(); + } + } + return m_pOnlyOneInstance; + } + + MFLogger(); + + void initLogger(LogFunction logFunction_p); + void set6CharsPrefix(const wchar_t* prefix); + void releaseLogger(); + + void log(const wchar_t* szText); + void log_p(const wchar_t* szText, ...); + void log_d(const wchar_t* szText); + void log_dp(const wchar_t* szText, ...); + +private: + + void log_int(const wchar_t* szText); + + //holds one and only object of MySingleton + static MFLogger* m_pOnlyOneInstance; + + wchar_t m_prefix[PREFIX_SIZE]; + LogFunction logFunction; + + CRITICAL_SECTION logCs; + +}; + + +#endif //#ifndef _WSX22_UTILS_LOGGER -- cgit v1.2.3