Go to the documentation of this file.00001 #ifndef BULKDATA_NT_DDS_LOGGABLE
00002 #define BULKDATA_NT_DDS_LOGGABLE
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <loggingLoggable.h>
00031 #include <logging.h>
00032
00033 #define BDNT_LISTENER_USER_ERR(call) \
00034 try { call; \
00035 }catch(const ACSErr::ACSbaseExImpl &ex){ \
00036 UserCallbackErrorCompletion ucb(ex, __FILE__, __LINE__, __FUNCTION__); \
00037 ucb.setCall("#call"); \
00038 ucb.setStreamFlowName(topicName_m.c_str()); \
00039 callback_mp->onError(ucb); \
00040 }catch(const std::exception &stdex){ \
00041 ACSErrTypeCommon::StdExceptionExImpl ex(__FILE__, __LINE__, __FUNCTION__); \
00042 ex.setWhat(stdex.what()); \
00043 UserCallbackErrorCompletion ucb(ex, __FILE__, __LINE__, __FUNCTION__); \
00044 ucb.setCall("#call"); \
00045 ucb.setStreamFlowName(topicName_m.c_str()); \
00046 callback_mp->onError(ucb); \
00047 }catch(...){ \
00048 ACSErrTypeCommon::UnknownExImpl ex(__FILE__, __LINE__, __FUNCTION__); \
00049 UserCallbackErrorCompletion ucb(ex, __FILE__, __LINE__, __FUNCTION__); \
00050 ucb.setCall("#call"); \
00051 ucb.setStreamFlowName(topicName_m.c_str()); \
00052 callback_mp->onError(ucb); \
00053 }
00054
00055
00063 class BulkDataNTDDSLoggable
00064 : public Logging::Loggable
00065 {
00066 public:
00067
00068 BulkDataNTDDSLoggable (const std::string &loggerName) : Logging::Loggable(loggerName){}
00069
00070
00071 virtual ~BulkDataNTDDSLoggable ();
00072
00075 void initalizeLogging();
00076
00078 virtual Logging::Logger::LoggerSmartPtr getLogger ();
00079
00080 static LoggingProxy *logger_mp;
00081
00082 static unsigned int loggerInitCount_m;
00083 };
00084
00085 #endif //BULKDATA_NT_DDS_LOGGABLE