An Overlay-based
Virtual Network Substrate
SpoVNet

source: source/ariba/overlay/messages/LinkRequest.h @ 3690

Last change on this file since 3690 was 3690, checked in by mies, 14 years ago

Merged 20090512-mies-connectors changes r3472:r3689 into trunk.

File size: 1.2 KB
Line 
1#ifndef ARIBA_OVERLAY_LINKREQUEST_H_
2#define ARIBA_OVERLAY_LINKREQUEST_H_
3
4#include "ariba/utility/messages.h"
5#include "ariba/utility/serialization.h"
6#include "ariba/communication/EndpointDescriptor.h"
7
8using ariba::communication::EndpointDescriptor;
9
10namespace ariba {
11namespace overlay {
12
13using_serialization;
14
15using ariba::utility::Message;
16
17/**
18 * This message is sent to another overlay node to request a new link.
19 *
20 * @author Sebastian Mies <mies@tm.uka.de>
21 */
22class LinkRequest : public Message {
23        VSERIALIZEABLE;
24private:
25        bool free_endpoint_;
26        uint8_t flags;
27        uint32_t nonce;
28        const EndpointDescriptor* endpoint;
29
30public:
31        LinkRequest();
32
33        LinkRequest( uint32_t nonce, const EndpointDescriptor* endpoint,
34                        bool reply = false );
35
36        virtual ~LinkRequest();
37
38        const EndpointDescriptor* getEndpoint() const {
39                return endpoint;
40        }
41
42        bool isReply() const {
43                return flags & 1;
44        }
45
46        uint32_t getNonce() const {
47                return nonce;
48        }
49};
50
51}} // ariba::overlay
52
53sznBeginDefault( ariba::overlay::LinkRequest, X ) {
54        if (X.isDeserializer()) endpoint = new EndpointDescriptor();
55        X && flags && nonce && reinterpret_cast<VSerializeable*>(const_cast<EndpointDescriptor*>(endpoint));
56} sznEnd();
57
58#endif /* ARIBA_OVERLAY_LINKREQUEST_H_ */
Note: See TracBrowser for help on using the repository browser.