#pragma once #ifndef JOINREQUEST_H #define JOINREQUEST_H #include "common/Defines.h" #include "app/PeerDescription.h" #include "common/transport/TransportAddress.h" #include "common/transport/msg/ExteriorMessage.h" #include "ms/MemberDescription.h" namespace ubeeme { namespace moversight { class Dispatcher; /** * @brief Defines a join request message, used within the membership service module. * @author Jan Gäbler, Robert Noack * @class JoinRequest * @ingroup Moversight */ class JoinRequest : public ExteriorMessage { public: JoinRequest(); JoinRequest(const JoinRequest& other); virtual ~JoinRequest(); JoinRequest * dup() const; JoinRequest & operator=(const JoinRequest& other); void handleReceive(Dispatcher & dis); const PeerID& getInviterID() const; void setInviterID( const PeerID& inviterID); const InvitationID& getInvitationID() const; void setInvitationID( const InvitationID& invitationID); int getInviterGroupSize() const; void setInviterGroupSize( const int inviterGroupSize); int getStrategy() const; void setStrategy( const int strategy); const PeerDescription& getPeerDescription() const; void setPeerDescription( const PeerDescription& peerDescription); virtual void set(Archive & archive); private: PeerID inviterID; InvitationID invitationID; int inviterGroupSize; int strategy; PeerDescription peerDescription; }; } } #endif /* JOINREQUEST_H */