RINASim  October 2016
Documentation of framework for OMNeT++
FANotifierBase.h
Go to the documentation of this file.
1 //
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU Lesser General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU Lesser General Public License for more details.
11 //
12 // You should have received a copy of the GNU Lesser General Public License
13 // along with this program. If not, see http://www.gnu.org/licenses/.
14 //
15 
16 #ifndef FANOTIFIERBASE_H_
17 #define FANOTIFIERBASE_H_
18 
19 //Standard libraries
20 #include <omnetpp.h>
21 //RINASim libraries
22 #include "CDAPProcessingBase.h"
23 #include "ExternConsts.h"
24 #include "RINASignals.h"
25 #include "Flow.h"
26 
27 
28 class FANotifierBase : public cSimpleModule, public CDAPProcessingBase {
29  public:
30 
31  virtual void sendCreateRequestFlow(Flow* flow) = 0;
32  virtual void sendCreateResponseNegative(Flow* flow) = 0;
33  virtual void sendCreateResponsePostive(Flow* flow) = 0;
34  virtual void sendDeleteRequestFlow(Flow* flow) = 0;
35  virtual void sendDeleteResponseFlow(Flow* flow) = 0;
36  virtual void receiveAllocationRequestFromFai(Flow* flow) = 0;
37  virtual void receiveCreateFlowPositiveFromRa(Flow* flow) = 0;
38  virtual void receiveCreateFlowNegativeFromRa(Flow* flow) = 0;
39 
40  //CDAPProcessingBase interface
41  virtual bool isMessageProcessable(CDAPMessage* msg);
42  virtual void receiveMessage(CDAPMessage* msg);
43  virtual void signalizeMessage(CDAPMessage* msg) = 0;
44 
45  const Address& getMyAddress() const;
46 
47  protected:
49 
50  //SimpleModule overloads
51  virtual void initialize();
52  virtual void handleMessage(cMessage *msg) = 0;
53 
54  void initMyAddress();
55 };
56 
57 #endif /* FANOTIFIERBASE_H_ */
Class representing flow object with attributes from specs.
Definition: Flow.h:45
virtual void sendCreateResponsePostive(Flow *flow)=0
virtual void sendCreateRequestFlow(Flow *flow)=0
virtual void receiveCreateFlowNegativeFromRa(Flow *flow)=0
virtual void sendCreateResponseNegative(Flow *flow)=0
virtual void sendDeleteRequestFlow(Flow *flow)=0
virtual void receiveMessage(CDAPMessage *msg)
Function checks the type of CDAP message and passes it to appropriate processing method.
virtual void initialize()
virtual void sendDeleteResponseFlow(Flow *flow)=0
const Address & getMyAddress() const
virtual void signalizeMessage(CDAPMessage *msg)=0
Function asks for notifies about CDAP message ready to be sent.
virtual void receiveCreateFlowPositiveFromRa(Flow *flow)=0
virtual void handleMessage(cMessage *msg)=0
virtual bool isMessageProcessable(CDAPMessage *msg)
Function checks whether CDAP message can be processed by notifier.
Address class holds IPC Process identification.
Definition: Address.h:42
Abstract class implementing processing of any CDAP message.
virtual void receiveAllocationRequestFromFai(Flow *flow)=0