RINASim  October 2016
Documentation of framework for OMNeT++
AEBase.h
Go to the documentation of this file.
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2014-2016 Brno University of Technology, PRISTINE project
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in
13 // all copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 // THE SOFTWARE.
22 
23 #ifndef __RINA_AEBASE_H_
24 #define __RINA_AEBASE_H_
25 
26 //Standard libraries
27 #include <omnetpp.h>
28 //RINASim libraries
29 #include "APNamingInfo.h"
30 #include "Flow.h"
31 #include "ExternConsts.h"
32 #include "QoSReq.h"
33 
34 typedef std::list<Flow> Flows;
35 typedef Flows::iterator TFlowsIter;
36 //Consts
37 
38 extern const char* PAR_AVGBW;
39 extern const char* PAR_AVGSDUBW;
40 extern const char* PAR_PEAKBWDUR;
41 extern const char* PAR_PEAKSDUBWDUR;
42 extern const char* PAR_BURSTPERIOD;
43 extern const char* PAR_BURSTDURATION;
44 extern const char* PAR_UNDETECTBITERR;
45 extern const char* PAR_PDUDROPPROBAB;
46 extern const char* PAR_MAXSDUSIZE;
47 extern const char* PAR_PARTIALDELIVER;
48 extern const char* PAR_INCOMPLETEDELIVER;
49 extern const char* PAR_FORCEORDER;
50 extern const char* PAR_MAXALLOWGAP;
51 extern const char* PAR_DELAY;
52 extern const char* PAR_JITTER;
53 extern const char* PAR_COSTTIME;
54 extern const char* PAR_COSTBITS;
55 extern const char* PAR_ATIME;
56 extern const char* PAR_RESILIENCYFACTOR;
57 
61 
62 class AEBase : public cSimpleModule
63 {
64  public:
65  bool hasFlow(const Flow* flow);
66 
67  const APNamingInfo& getApni() const;
68 
69  bool operator== (const AEBase& other) {
70  return (apni == other.apni);
71  }
72 
73  const int getAuthType();
74  const unsigned long getCdapConId();
75  void setCdapConId(unsigned long cdapConId);
76  const int getStartInvokeId();
77  void setStartInvokeId(int invokeId);
78  const std::string& getAuthName() const;
79  const std::string& getAuthPassword() const;
80  const std::string& getAuthOther() const;
81  void changeConStatus(CDAPConnectionState conState);
83  Flow* getFlowObject() const;
84  void setFlowObject(Flow* flowObject);
85 
86  protected:
88  unsigned long cdapConId;
89  //Flows flows;
92 
93  std::string srcApName;
94  std::string srcApInstance;
95  std::string srcAeName;
96  std::string srcAeInstance;
97 
98  int authType;
99  std::string authName;
100  std::string authPassword;
101  std::string authOther;
103 
105 
107 
108  //Getters/Setters
109  const std::string& getSrcAeInstance() const;
110  void setSrcAeInstance(const std::string& srcAeInstance);
111  const std::string& getSrcAeName() const;
112  void setSrcAeName(const std::string& srcAeName);
113  const std::string& getSrcApInstance() const;
114  void setSrcApInstance(const std::string& srcApInstance);
115  const std::string& getSrcApName() const;
116  void setSrcApName(const std::string& srcApName);
117  void setApni(const APNamingInfo& apni);
118  void setFlows(const Flows& flows);
119  const QoSReq& getQoSRequirements() const;
120  void setQoSRequirements(const QoSReq& qoSRequirements);
121 
122  void initNamingInfo();
123  void initQoSRequiremets();
124 
125  void insertFlow(Flow& flow);
126 
127  virtual void initialize();
128  virtual void handleMessage(cMessage *msg);
129 
130  private:
131 
132 };
133 
134 #endif
Class representing flow object with attributes from specs.
Definition: Flow.h:45
void setSrcAeInstance(const std::string &srcAeInstance)
Definition: AEBase.cc:75
bool hasFlow(const Flow *flow)
Definition: AEBase.cc:189
Flows::iterator TFlowsIter
Definition: AEBase.h:35
Flow * FlowObject
Definition: AEBase.h:90
const char * PAR_FORCEORDER
Definition: AEBase.cc:38
const std::string & getSrcApName() const
Definition: AEBase.cc:95
CDAPConnectionState connectionState
Definition: AEBase.h:106
const char * PAR_JITTER
Definition: AEBase.cc:41
const APNamingInfo & getApni() const
Definition: AEBase.cc:47
int maxConRetries
Definition: AEBase.h:102
const char * PAR_PARTIALDELIVER
Definition: AEBase.cc:36
int startInvokeId
Definition: AEBase.h:87
APNamingInfo apni
Definition: AEBase.h:91
const char * PAR_COSTTIME
Definition: AEBase.cc:42
const char * PAR_ATIME
Definition: AEBase.cc:44
const char * PAR_AVGSDUBW
Definition: AEBase.cc:28
std::string srcAeInstance
Definition: AEBase.h:96
Flow * getFlowObject() const
Definition: AEBase.cc:181
void initNamingInfo()
Definition: AEBase.cc:111
const unsigned long getCdapConId()
Definition: AEBase.cc:194
std::string authName
Definition: AEBase.h:99
const int getAuthType()
Definition: AEBase.cc:55
const char * PAR_BURSTPERIOD
Definition: AEBase.cc:31
QoSReq QoSRequirements
Definition: AEBase.h:104
Definition: AEBase.h:58
const std::string & getSrcAeName() const
Definition: AEBase.cc:79
const char * PAR_AVGBW
Definition: AEBase.cc:27
const char * PAR_COSTBITS
Definition: AEBase.cc:43
const char * PAR_MAXALLOWGAP
Definition: AEBase.cc:39
const std::string & getAuthName() const
Definition: AEBase.cc:59
const std::string & getSrcAeInstance() const
Definition: AEBase.cc:71
std::string srcAeName
Definition: AEBase.h:95
APNamingInfo holds complete naming info for particular application process.
Definition: APNamingInfo.h:43
std::list< Flow > Flows
Definition: AEBase.h:34
void initQoSRequiremets()
Definition: AEBase.cc:136
void setSrcApName(const std::string &srcApName)
Definition: AEBase.cc:99
void setFlows(const Flows &flows)
void setSrcApInstance(const std::string &srcApInstance)
Definition: AEBase.cc:91
const char * PAR_MAXSDUSIZE
Definition: AEBase.cc:35
unsigned long cdapConId
Definition: AEBase.h:88
std::string authOther
Definition: AEBase.h:101
std::string authPassword
Definition: AEBase.h:100
const char * PAR_PEAKSDUBWDUR
Definition: AEBase.cc:30
void setStartInvokeId(int invokeId)
Definition: AEBase.cc:206
const char * PAR_PEAKBWDUR
Definition: AEBase.cc:29
const char * PAR_INCOMPLETEDELIVER
Definition: AEBase.cc:37
virtual void handleMessage(cMessage *msg)
Definition: AEBase.cc:176
const char * PAR_RESILIENCYFACTOR
Definition: AEBase.cc:45
void setFlowObject(Flow *flowObject)
Definition: AEBase.cc:185
const std::string & getAuthOther() const
Definition: AEBase.cc:67
CDAPConnectionState getConStatus()
Definition: AEBase.cc:107
const QoSReq & getQoSRequirements() const
Definition: AEBase.cc:128
void insertFlow(Flow &flow)
int authType
Definition: AEBase.h:98
const char * PAR_DELAY
Definition: AEBase.cc:40
const char * PAR_BURSTDURATION
Definition: AEBase.cc:32
Definition: AEBase.h:62
Class representing QoSReq with all its properties that is primarily used by FA, RMT and RA Specificat...
Definition: QoSReq.h:44
const std::string & getSrcApInstance() const
Definition: AEBase.cc:87
virtual void initialize()
Definition: AEBase.cc:122
std::string srcApInstance
Definition: AEBase.h:94
bool operator==(const AEBase &other)
Definition: AEBase.h:69
void setApni(const APNamingInfo &apni)
Definition: AEBase.cc:51
void setQoSRequirements(const QoSReq &qoSRequirements)
Definition: AEBase.cc:132
const char * PAR_UNDETECTBITERR
Definition: AEBase.cc:33
void changeConStatus(CDAPConnectionState conState)
Definition: AEBase.cc:103
const char * PAR_PDUDROPPROBAB
Definition: AEBase.cc:34
CDAPConnectionState
Definition: AEBase.h:58
void setSrcAeName(const std::string &srcAeName)
Definition: AEBase.cc:83
std::string srcApName
Definition: AEBase.h:93
const int getStartInvokeId()
Definition: AEBase.cc:202
const std::string & getAuthPassword() const
Definition: AEBase.cc:63
void setCdapConId(unsigned long cdapConId)
Definition: AEBase.cc:197