diff --git a/src/client/pv/monitor.h b/src/client/pv/monitor.h index fa5c483..4e10bc8 100644 --- a/src/client/pv/monitor.h +++ b/src/client/pv/monitor.h @@ -18,13 +18,13 @@ #include #include #include -#include #ifdef monitorEpicsExportSharedSymbols # define epicsExportSharedSymbols # undef monitorEpicsExportSharedSymbols #endif +#include #include #include diff --git a/src/server/pv/baseChannelRequester.h b/src/server/pv/baseChannelRequester.h index 144acfa..5dd00d3 100644 --- a/src/server/pv/baseChannelRequester.h +++ b/src/server/pv/baseChannelRequester.h @@ -7,17 +7,7 @@ #ifndef BASECHANNELREQUESTER_H_ #define BASECHANNELREQUESTER_H_ -#ifdef epicsExportSharedSymbols -# define baseChannelRequesterEpicsExportSharedSymbols -# undef epicsExportSharedSymbols -#endif - #include -#ifdef baseChannelRequesterEpicsExportSharedSymbols -# define epicsExportSharedSymbols -# undef baseChannelRequesterEpicsExportSharedSymbols -#endif - #include #include #include diff --git a/src/utils/pv/requester.h b/src/utils/pv/requester.h index f27d1ba..8b4e114 100644 --- a/src/utils/pv/requester.h +++ b/src/utils/pv/requester.h @@ -15,7 +15,7 @@ #include -namespace epics { namespace pvData { +namespace epics { namespace pvAccess { class Requester; typedef std::tr1::shared_ptr RequesterPtr; @@ -27,45 +27,31 @@ enum MessageType { epicsShareExtern std::string getMessageTypeName(MessageType messageType); -/** - * @brief Callback class for passing messages to a requester. - * - * This is used by many other classes and also extended by other classes. - * The request is passed a message and a messageType. - * A message is just a string and a messageType is: -@code -enum MessageType { - infoMessage,warningMessage,errorMessage,fatalErrorMessage -}; -@endcode - * +/** @brief Callback class for passing messages to a requester. */ - class epicsShareClass Requester { public: POINTER_DEFINITIONS(Requester); - /** - * Destructor - */ virtual ~Requester(){} /** * The requester must have a name. * @return The requester's name. */ virtual std::string getRequesterName() = 0; - /** - * - * A message for the requester. - * @param message The message. - * @param messageType The type of message: - @code - enum MessageType { - infoMessage,warningMessage,errorMessage,fatalErrorMessage - }; - @endcode + /** Push notification */ - virtual void message(std::string const & message,MessageType messageType); + virtual void message(std::string const & message,MessageType messageType = errorMessage); }; +}} +namespace epics { namespace pvData { +using ::epics::pvAccess::Requester; +using ::epics::pvAccess::RequesterPtr; +using ::epics::pvAccess::MessageType; +using ::epics::pvAccess::getMessageTypeName; +using ::epics::pvAccess::infoMessage; +using ::epics::pvAccess::warningMessage; +using ::epics::pvAccess::errorMessage; +using ::epics::pvAccess::fatalErrorMessage; }} #endif /* REQUESTER_H */ diff --git a/src/utils/requester.cpp b/src/utils/requester.cpp index 69599a6..6927e68 100644 --- a/src/utils/requester.cpp +++ b/src/utils/requester.cpp @@ -12,28 +12,25 @@ #include -#define epicsExportSharedSymbols #include + +#define epicsExportSharedSymbols #include using std::string; -namespace epics { namespace pvData { +namespace epics { namespace pvAccess { -static StringArray messageTypeName(MESSAGE_TYPE_COUNT); string getMessageTypeName(MessageType messageType) { - // TODO not thread-safe - static Mutex mutex; - Lock xx(mutex); - if(messageTypeName[0].size()==0) { - messageTypeName[0] = "info"; - messageTypeName[1] = "warning"; - messageTypeName[2] = "error"; - messageTypeName[3] = "fatalError"; + switch(messageType) { + case infoMessage: return "info"; + case warningMessage: return "warning"; + case errorMessage: return "error"; + case fatalErrorMessage: return "fatalError"; + default: return "unknown"; } - return messageTypeName[messageType]; } void Requester::message(std::string const & message,MessageType messageType)