Ignore:
Timestamp:
Jul 21, 2009, 1:54:55 PM (15 years ago)
Author:
Christoph Mayer
Message:

begin merge back from relay branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/messages/OverlayMsg.h

    r4625 r5151  
    5555namespace overlay {
    5656
    57 using_serialization;
     57using_serialization
     58;
    5859
    59 class OverlayMsg : public Message {
    60         VSERIALIZEABLE;
     60class OverlayMsg: public Message {
     61VSERIALIZEABLE
     62        ;
    6163public:
    6264
    63         typedef enum _OverlayMessageType {
    64                 OverlayMessageTypeInvalid     = 0, // invalid type (no encapsulated messages)
    65                 OverlayMessageTypeData        = 1, // message contains data for higher layers
    66                 OverlayMessageTypeJoinRequest = 2, // spovnet join request
    67                 OverlayMessageTypeJoinReply   = 3, // spovnet join reply
    68                 OverlayMessageTypeUpdate      = 4, // update message for link association
    69                 OverlayMessageTypeBye         = 5, // spovnet leave (no encapsulated messages)
    70                 OverlayMessageTypeLinkRequest = 6, // link request (sent over the overlay)
    71         } OverlayMessageType;
     65        /// (payload-) message types
     66        enum type_ {
     67                typeInvalid = 0, ///< invalid type (no encapsulated messages)
     68                typeData = 1, ///< message contains data for higher layers
     69                typeJoinRequest = 2, ///< join request
     70                typeJoinReply = 3, ///< join reply
     71                typeUpdate = 4, ///< update message for link association
     72                typeBye = 5, ///< leave (no encapsulated messages)
     73                typeLinkRequest = 6, ///< link request (sent over the overlay)
     74                typeRelay = 7, ///< relay message
     75                typeKeepAlive = 8, ///< a keep-alive message
     76                typeDirectLink = 9,
     77        ///< a direct connection has been established
     78        };
    7279
    73         OverlayMsg(
    74                 OverlayMessageType _type       = OverlayMessageTypeInvalid,
    75                 const ServiceID    _service    = ServiceID::UNSPECIFIED,
    76                 const NodeID       _sourceNode = NodeID::UNSPECIFIED
    77         );
     80        /// default constructor
     81        OverlayMsg(type_ type = typeInvalid, const ServiceID _service =
     82                        ServiceID::UNSPECIFIED, const NodeID _sourceNode =
     83                        NodeID::UNSPECIFIED) :
     84                type((uint8_t) type), service(_service), sourceNode(_sourceNode),
     85                                relayLink(LinkID::UNSPECIFIED), autoLink(false) {
     86        }
    7887
    79         OverlayMsg(
    80                 OverlayMessageType _type,
    81                 const NodeID       _sourceNode
    82         );
     88        OverlayMsg(const OverlayMsg& rhs) :
     89                type(rhs.type), service(rhs.service), sourceNode(rhs.sourceNode),
     90                                relayLink(rhs.relayLink), autoLink(rhs.autoLink) {
     91        }
    8392
    84         virtual ~OverlayMsg();
     93        /// type and source node constructor
     94        OverlayMsg(type_ type, const NodeID _sourceNode) :
     95                type((uint8_t) type), service(ServiceID::UNSPECIFIED), sourceNode(
     96                                _sourceNode), relayLink(LinkID::UNSPECIFIED), autoLink(false) {
     97        }
    8598
    86         bool isType(OverlayMessageType _type);
    87         OverlayMessageType getType();
    88         const ServiceID& getService();
    89         const NodeID& getSourceNode();
     99        /// destructor
     100        ~OverlayMsg();
    90101
     102        type_ getType() const {
     103                return (type_) type;
     104        }
     105
     106        const ServiceID& getService() const {
     107                return service;
     108        }
     109
     110        const NodeID& getSourceNode() const {
     111                return sourceNode;
     112        }
     113
     114        const LinkID& getRelayLink() const {
     115                return relayLink;
     116        }
     117
     118        void setRelayLink(const LinkID& relayLink) {
     119                this->relayLink = relayLink;
     120        }
     121
     122        const bool isAutoLink() const {
     123                return autoLink;
     124        }
     125
     126        void setAutoLink(bool autoLink) {
     127                this->autoLink = autoLink;
     128        }
    91129private:
    92130        uint8_t type;
    93131        ServiceID service;
    94132        NodeID sourceNode;
     133        LinkID relayLink;
     134        uint8_t autoLink;
    95135};
    96136
    97 }} // ariba::overlay
     137}
     138} // ariba::overlay
    98139
    99 sznBeginDefault( ariba::overlay::OverlayMsg, X ) {
    100         X && type && &service && &sourceNode && Payload();
    101 } sznEnd();
     140sznBeginDefault( ariba::overlay::OverlayMsg, X ){
     141X && type && &service && &sourceNode;
     142if (type == typeDirectLink) X && &relayLink;
     143if (type == typeUpdate) X && autoLink;
     144X && Payload();
     145}sznEnd();
    102146
    103147#endif // OVERLAY_MSG_H__
Note: See TracChangeset for help on using the changeset viewer.