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( aFmt , ...) ::XBase::Console::WriteF( aFmt , __VA_ARGS__ )
00104 #else
00105     #define XBASE_COUT_CORE( aFmt , ...) do{}while(0)
00106 #endif
00107 
00109 
00110 
00111 
00112 
00118   #define XBASE_COUT( aStr ) XBASE_COUT_CORE( "%s" , aStr )
00119 
00125   #define XBASE_COUTFMT( aFmt , ... ) XBASE_COUT_CORE( aFmt , __VA_ARGS__ )
00126 
00133 #if defined(XBASE_CONFIG_ENABLE_LOGSTR)
00134     #define XBASE_COUT_TIME() ::XBase::Console::WriteTime()
00135 #else
00136     #define XBASE_COUT_TIME() do{}while(false)
00137 #endif
00138 
00145 #if defined(XBASE_CONFIG_ENABLE_LOGSTR)
00146     #define XBASE_COUT_END_LINE() ::XBase::Console::WriteLineF("%s","")
00147 #else
00148     #define XBASE_COUT_END_LINE() do{}while(false)
00149 #endif
00150 
00156 #define XBASE_COUT_LINE( aStr ) \
00157     do \
00158     { \
00159         XBASE_COUT( aStr ); \
00160         XBASE_COUT_END_LINE(); \
00161     } while(0)
00162 
00168 #define XBASE_COUTFMT_LINE( ... ) \
00169     do \
00170     { \
00171         XBASE_COUTFMT( __VA_ARGS__ ); \
00172         XBASE_COUT_END_LINE(); \
00173     } while(0)
00174 
00180 #define XBASE_COUT_WITH_TIME( aStr ) \
00181     do \
00182     { \
00183         XBASE_COUT_TIME(); \
00184         XBASE_COUT( aStr ); \
00185     } while(0)
00186 
00192 #define XBASE_COUTFMT_WITH_TIME( ... ) \
00193     do \
00194     { \
00195         XBASE_COUT_TIME(); \
00196         XBASE_COUTFMT( __VA_ARGS__ ); \
00197     } while(0)
00198 
00204 #define XBASE_COUT_LINE_WITH_TIME( aStr ) \
00205     do \
00206     { \
00207         XBASE_COUT_WITH_TIME( aStr ); \
00208         XBASE_COUT_END_LINE(); \
00209     } while(0)
00210 
00216 #define XBASE_COUTFMT_LINE_WITH_TIME(...) \
00217     do \
00218     { \
00219         XBASE_COUTFMT_WITH_TIME( __VA_ARGS__ ); \
00220         XBASE_COUT_END_LINE(); \
00221     } while(0)
00222  
00228 #define XBASE_CHECKPOINT() XBASE_COUTFMT_LINE_WITH_TIME( "%s at %lu\n" , __FILE__ , __LINE__ )
00229  
00236 #define XBASE_DUMP( aVal ) XBASE_COUTFMT_LINE_WITH_TIME( "%s : %s\n" , #aVal , XBASE_TO_SHORT_STRING( aVal ).readPtr() )
00237 
00239 
00240 //------------------------------------------------------------
00241 #endif
00242 // EOF
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義