#ifndef __PAYLOADS_LEAVE__ #define __PAYLOADS_LEAVE__ #include #include #include namespace CommService { namespace PayLoads { /** * @brief class representing the payload of a HotPlugLeave message * * the HotPlugLeave messages is transmitted by every PubSub Service before disconnecting * from the network. * It provides information about the type of service, the id and the underlying * network/transport layer addresses. * */ class Leave : public transmittable { public: Leave()=default; /** * @brief constructor to recreate the HotPlugJoin payload from a a std::vector */ explicit Leave(std::vector v); /// the address of the underlying network layer used to join the network unsigned char networkLayerAddress[16]; /// the address of the underlying transport layer used to join the network uint32_t transportLayerAddress; /** * @brief converts the information of the class (the attributes) to a byte vector * * @param byteVector - returns a std::vector of bytes representing the class */ std::vector toByteVector() const override; }; }; //namespace Payloads }; //namespace BC #endif