#pragma once #ifndef ROSTERMESSAGE_H #define ROSTERMESSAGE_H #include "common/Defines.h" #include "app/PeerDescription.h" #include "common/transport/TransportAddress.h" #include "common/transport/msg/ExteriorMessage.h" #include "ms/MemberDescription.h" #include "ms/MemberDescriptionList.h" namespace ubeeme { namespace moversight { class Dispatcher; /** * @brief Defines a roster message, used within the membership service module. * @author Jan Gäbler, Robert Noack * @class RosterMessage * @ingroup Moversight */ class RosterMessage : public ExteriorMessage { public: RosterMessage(); RosterMessage(const RosterMessage & orig); virtual ~RosterMessage(); RosterMessage* dup() const; RosterMessage& operator=(const RosterMessage& other); void handleReceive(Dispatcher & dis); // field getter/setter methods virtual const ViewID& getViewID() const ; virtual void setViewID(const ViewID& viewID); virtual const PeerID& getNextPeerID() const; virtual void setNextPeerID(const PeerID& nextPeerID); virtual const PeerID& getJoinedPeerID() const; virtual void setJoinedPeerID(const PeerID& joinedPeerID); virtual const MemberDescriptionList & getMemberDescriptionList() const; virtual void setMemberDescriptionList(MemberDescriptionList descList); virtual void set(Archive & archive); private: ViewID viewID; PeerID nextPeerID; PeerID joinedPeerID; MemberDescriptionList mDescList; }; } } #endif /* ROSTERMESSAGE_H */