Parent: [6a85b3] (diff)

Download this file

ConnectionId.h    133 lines (110 with data), 3.5 kB

  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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//
// Copyright Š 2014 PRISTINE Consortium (http://ict-pristine.eu)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see http://www.gnu.org/licenses/.
//
#ifndef CONNECTIONID_H_
#define CONNECTIONID_H_
//Standard libraries
#include <cobject.h>
#include <string>
//RINASim libraries
#include "QosCube.h"
//Consts
extern const unsigned short VAL_RESERVEDQOSID;
extern const int VAL_UNDEF_CEPID;
/**
* @brief Connection identifier as defined in specifications
* @authors Vladimir Vesely (ivesely@fit.vutbr.cz)
* @date Last refactorized and documented 2014-10-28
*/
class ConnectionId: public cObject {
public:
/**
* @brief Constructor of blank ConnectionId
*/
ConnectionId();
/**
* @brief Destructor assigning undefined values
*/
virtual ~ConnectionId();
/**
* @brief Getter of destination Connection-Endpoint identifier
* @return Returns destination CEP-id
*/
int getDstCepId() const;
/**
* @brief Setter of destination Connection-Endpoint identifier
* @param destCepId A new destination CEP-id value
*/
void setDstCepId(int destCepId);
/**
* @brief Getter of selected QoS-cube identifier
* @return Returns QoS-cube identifier
*/
unsigned short getQoSId() const;
/**
* @brief Setter of selected QoS-cube identifier
* @param qoSId A new QoS-cube id value
*/
void setQoSId(unsigned short qoSId);
/**
* @brief Getter of source Connection-Endpoint identifier
* @return Returns source CEP-id
*/
int getSrcCepId() const;
/**
* @brief Setter of source Connection-Endpoint identifier
* @param srcCepId A new source CEP-id value
*/
void setSrcCepId(int srcCepId);
/**
* @brief Less operator overload
* @param other ConnectionId for comparison
* @return True if this QosId, dstCEPid, srcCEPid are lesser than others.
* Otherwise returns false
*/
bool operator<(const ConnectionId other) const;
/**
* @brief Equal operator overload
* @param other ConnectionId for comparison
* @return True if this QosId, dstCEPid, srcCEPid are equal with others.
* Otherwise returns false
*/
bool operator==(const ConnectionId other) const;
/**
* @brief Duplicate overload creates exact copy of ConnectionId
* @return Pointer to a copy
*/
virtual ConnectionId *dup() const;
/**
* @brief Exchanges source and destination CEP identifiers
* @return Pointer to this object
*/
ConnectionId& swapCepIds();
protected:
/**
* @brief QoS-cube identifier
*/
unsigned short qosId;
/**
* @brief Source Connection-Endpoint identifier
*/
int srcCEPId;
/**
* @brief Destination Connection-Endpoint identifier
*/
int dstCEPId;
};
#endif /* CONNECTIONID_H_ */