CrossFramework Library

XBase/Console.hpp

説明を見る。
00001 
00006 #if defined(XBASE_INCLUDED_CONSOLE_HPP)
00007 #else
00008 #define XBASE_INCLUDED_CONSOLE_HPP
00009 
00010 //------------------------------------------------------------
00011 #include <cstdarg>
00012 #include <XBase/Config.hpp>
00013 #include <XBase/ToShortString.hpp>
00014 
00015 //------------------------------------------------------------
00016 namespace XBase {
00017     class IConsoleCallback;
00018 }
00019 
00020 //------------------------------------------------------------
00021 namespace XBase {
00023 
00024 
00025     struct Console
00026     {
00032         static const char* const DefaultTimeFormatString();
00033 
00043         static void SetTimeFormatString( const char* aFormat );
00044 
00051         static IConsoleCallback& DefaultCallback();
00052 
00057         static void SetCallback( IConsoleCallback& aCallback );
00058          
00063         static void WriteF( const char* aFormat , ... );
00064          
00069         static void WriteVF( const char* aFormat , va_list );
00070 
00075         static void WriteLineF( const char* aFormat , ... );
00076          
00081         static void WriteLineVF( const char* aFormat , va_list );
00082 
00084         static void WriteTime();
00085 
00090         static void TimeWriteLineF( const char* aFormat , ... );
00091     
00096         static void TimeWriteLineVF( const char* aFormat , va_list );
00097     };
00099 }
00100 
00101 // 準備
00102 #if defined(XBASE_CONFIG_ENABLE_LOGSTR)
00103     #define XBASE_COUT_CORE(...) ::XBase::Console::WriteF( __VA_ARGS__ )
00104 #else
00105     #define XBASE_COUT_CORE(...) do{}while(0)
00106 #endif
00107 
00109 
00110 
00111 
00112 
00118   #define XBASE_COUT( ... ) XBASE_COUT_CORE( __VA_ARGS__ )
00119 
00126 #if defined(XBASE_CONFIG_ENABLE_LOGSTR)
00127     #define XBASE_COUT_TIME() ::XBase::Console::WriteTime()
00128 #else
00129     #define XBASE_COUT_TIME() do{}while(false)
00130 #endif
00131 
00138 #if defined(XBASE_CONFIG_ENABLE_LOGSTR)
00139     #define XBASE_COUT_END_LINE() ::XBase::Console::WriteLineF("%s","")
00140 #else
00141     #define XBASE_COUT_END_LINE() do{}while(false)
00142 #endif
00143 
00149 #define XBASE_COUTLINE( ... ) \
00150     do \
00151     { \
00152         XBASE_COUT( __VA_ARGS__ ); \
00153         XBASE_COUT_END_LINE(); \
00154     } while(0)
00155 
00161 #define XBASE_COUT_WITH_TIME( ... ) \
00162     do \
00163     { \
00164         XBASE_COUT_TIME(); \
00165         XBASE_COUT( __VA_ARGS__ ); \
00166     } while(0)
00167 
00173 #define XBASE_COUTLINE_WITH_TIME(...) \
00174     do \
00175     { \
00176         XBASE_COUT_WITH_TIME( __VA_ARGS__ ); \
00177         XBASE_COUT_END_LINE(); \
00178     } while(0)
00179  
00185 #define XBASE_CHECKPOINT() XBASE_COUTLINE_WITH_TIME( "%s at %lu\n" , __FILE__ , __LINE__ )
00186  
00193 #define XBASE_DUMP( aVal ) XBASE_COUTLINE_WITH_TIME( "%s : %s\n" , #aVal , XBASE_TO_SHORT_STRING( aVal ).readPtr() )
00194 
00196 
00197 //------------------------------------------------------------
00198 #endif
00199 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義