Mercurial > hg > orthanc-stone
diff Framework/Messages/IMessage.h @ 377:8eb4fe74000f
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 05 Nov 2018 16:18:27 +0100 |
parents | 6c22e0506587 |
children | e7a494bdd956 |
line wrap: on
line diff
--- a/Framework/Messages/IMessage.h Mon Nov 05 13:25:03 2018 +0100 +++ b/Framework/Messages/IMessage.h Mon Nov 05 16:18:27 2018 +0100 @@ -29,59 +29,79 @@ // base message that are exchanged between IObservable and IObserver - struct IMessage : public boost::noncopyable + class IMessage : public boost::noncopyable { + private: int messageType_; + protected: - IMessage(const int& messageType) - : messageType_(messageType) - {} + IMessage(const int& messageType) : + messageType_(messageType) + { + } + public: - virtual ~IMessage() {} + virtual ~IMessage() + { + } - virtual int GetType() const {return messageType_;} + virtual int GetType() const + { + return messageType_; + } }; // base class to derive from to implement your own messages // it handles the message type for you template <int type> - struct BaseMessage : public IMessage + class BaseMessage : public IMessage { + public: enum { Type = type }; - BaseMessage() - : IMessage(static_cast<int>(Type)) - {} + BaseMessage() : + IMessage(static_cast<int>(Type)) + { + } }; + // simple message implementation when no payload is needed // sample usage: // typedef NoPayloadMessage<MessageType_LayerSource_GeometryReady> GeometryReadyMessage; template <int type> - struct NoPayloadMessage : public BaseMessage<type> + class NoPayloadMessage : public BaseMessage<type> { - NoPayloadMessage() - : BaseMessage<type>() - {} - + public: + NoPayloadMessage() : + BaseMessage<type>() + { + } }; // simple message implementation when no payload is needed but the origin is required // sample usage: // typedef OriginMessage<MessageType_SliceLoader_GeometryError, OrthancSlicesLoader> SliceGeometryErrorMessage; template <int type, typename TOrigin> - struct OriginMessage : public BaseMessage<type> + class OriginMessage : public BaseMessage<type> { + private: TOrigin& origin_; - OriginMessage(TOrigin& origin) - : BaseMessage<type>(), - origin_(origin) - {} - }; + public: + OriginMessage(TOrigin& origin) : + BaseMessage<type>(), + origin_(origin) + { + } + TOrigin& GetOrigin() const + { + return origin_; + } + }; }