-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRBVTRPacket.h
102 lines (86 loc) · 3.19 KB
/
RBVTRPacket.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
* RBVTRPacket.h
*
* Created on: Jul 6, 2015
* Author: chengli
*/
#ifndef _RBVTRPACKET_H_
#define _RBVTRPACKET_H_
#include <omnetpp.h>
#include "IPvXAddress.h"
#include "Coord.h"
// opp_msgc version check
#define MSGC_VERSION 0x0405
#if (MSGC_VERSION!=OMNETPP_VERSION)
# error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
#endif
// dll export symbol
#ifndef INET_API
# if defined(INET_EXPORT)
# define INET_API OPP_DLLEXPORT
# elif defined(INET_IMPORT)
# define INET_API OPP_DLLIMPORT
# else
# define INET_API
# endif
#endif
#include <cmessage.h>
#include"RBVTR/RBVTRDefs.h"
class INET_API RBVTRPacket: public cPacket {
protected:
RBVTRPacketType packetTpye_var;
RBVTRPacketType RTSpacketTpye_var;
IPvXAddress src_ip;
IPvXAddress des_ip;
Coord src_position;
Coord sender_position;
Coord des_position;
unsigned int seqNum;
simtime_t lifeTime;
public:
RBVTRPacket(const char *name=NULL, int kind=0);
RBVTRPacket(const RBVTRPacket& other);
virtual ~RBVTRPacket();
virtual const RBVTRPacketType& getPacketType() const {return const_cast<RBVTRPacket*>(this)->packetTpye_var;}
virtual void setRBVTRPacketType(const RBVTRPacketType& type){this->packetTpye_var=type;}
RBVTRPacketType getRTSPacketType();
void setRTSRBVTRPacketType(RBVTRPacketType type);
IPvXAddress nexthop_ip;
std::vector<std::string> roads;
std::vector<std::string> passedroads;
std::string currentroad;
RBVTRPacket& operator=(const RBVTRPacket& other);
virtual RBVTRPacket *dup() const {return new RBVTRPacket(*this);}
virtual void parsimPack(cCommBuffer *b);
virtual void parsimUnpack(cCommBuffer *b);
void copy(const RBVTRPacket& other);
virtual IPvXAddress& getsrcAddress();
void setsrcAddress(const IPvXAddress& address);
virtual IPvXAddress& getdesAddress();
virtual Coord& getsenderPosition();
virtual void setsenderPosition(const Coord& address);
virtual void setdesAddress(const IPvXAddress& address);
virtual IPvXAddress& getnexthopAddress();
virtual void setnexthopAddress(const IPvXAddress& address);
virtual Coord& getscrPosition();
virtual void setscrPosition(const Coord& position);
virtual void setSeqnum(const unsigned int& sequnm);
virtual void setdesPosition(const Coord& position);
virtual Coord& getdesPosition();
virtual simtime_t & getLifetime();
virtual void setLifetime(simtime_t mylifetime);
virtual std::string getcurrentroad();
virtual void setcurrentroad( std::string currentroad);
virtual unsigned int& getSeqnum();
virtual std::vector<std::string>& getroads();
virtual void setroads(std::vector<std::string> myroads);
virtual int getPacketlength();
virtual void addroad(std::string road);
virtual void setpassedroads(std::vector<std::string> myroads);
virtual std::vector<std::string>& getpassedroads();
virtual void addpassedroad(std::string road);
virtual std::string& getroadsToStr();
};
inline void doPacking(cCommBuffer *b, RBVTRPacket& obj) {obj.parsimPack(b);}
inline void doUnpacking(cCommBuffer *b, RBVTRPacket& obj) {obj.parsimUnpack(b);}
#endif /* RBVTRPACKET_H_ */