OMNeT++ Simulation Library  5.6.1
cresultlistener.h
1 //==========================================================================
2 // CRESULTLISTENER.H - part of
3 // OMNeT++/OMNEST
4 // Discrete System Simulation in C++
5 //
6 //==========================================================================
7 
8 /*--------------------------------------------------------------*
9  Copyright (C) 1992-2017 Andras Varga
10  Copyright (C) 2006-2017 OpenSim Ltd.
11 
12  This file is distributed WITHOUT ANY WARRANTY. See the file
13  `license' for details on this and other legal matters.
14 *--------------------------------------------------------------*/
15 
16 #ifndef __OMNETPP_CRESULTLISTENER_H
17 #define __OMNETPP_CRESULTLISTENER_H
18 
19 #include "simkerneldefs.h"
20 #include "clistener.h"
21 #include "cobject.h"
22 
23 namespace omnetpp {
24 
25 class cResultFilter;
26 class cComponent;
27 
28 
34 class SIM_API cResultListener : public cObject, public cIListener
35 {
36  friend class cResultFilter;
37  protected:
38  static const char *getPooled(const char *s);
39 
40  protected:
41  // simplified API that better supports chaining:
42  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, bool b, cObject *details) = 0;
43  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, long l, cObject *details) = 0;
44  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, unsigned long l, cObject *details) = 0;
45  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, double d, cObject *details) = 0;
46  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, const SimTime& v, cObject *details) = 0;
47  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, const char *s, cObject *details) = 0;
48  virtual void receiveSignal(cResultFilter *prev, simtime_t_cref t, cObject *obj, cObject *details) = 0;
49  virtual void subscribedTo(cResultFilter *prev);
50  virtual void unsubscribedFrom(cResultFilter *prev);
51  virtual void callFinish(cResultFilter *prev) {finish(prev);}
52  virtual void finish(cResultFilter *prev) {}
53 
54  // original listener API delegates to simplified API:
55  virtual void receiveSignal(cComponent *source, simsignal_t signalID, bool b, cObject *details) override;
56  virtual void receiveSignal(cComponent *source, simsignal_t signalID, long l, cObject *details) override;
57  virtual void receiveSignal(cComponent *source, simsignal_t signalID, unsigned long l, cObject *details) override;
58  virtual void receiveSignal(cComponent *source, simsignal_t signalID, double d, cObject *details) override;
59  virtual void receiveSignal(cComponent *source, simsignal_t signalID, const SimTime& v, cObject *details) override;
60  virtual void receiveSignal(cComponent *source, simsignal_t signalID, const char *s, cObject *details) override;
61  virtual void receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj, cObject *details) override;
62  virtual void subscribedTo(cComponent *component, simsignal_t signalID) override;
63  virtual void unsubscribedFrom(cComponent *component, simsignal_t signalID) override;
64  virtual void finish(cComponent *component, simsignal_t signalID) override;
65 
66 };
67 
68 } // namespace omnetpp
69 
70 #endif
71 
72 
Common base for module and channel classes.
Definition: ccomponent.h:48
Root of the OMNeT++ class hierarchy. cObject is a lightweight class without any data members...
Definition: cobject.h:58
int64_t-based, base-10 fixed-point simulation time.
Definition: simtime.h:66
Base class for result filters.
Definition: cresultfilter.h:72
Definition: cabstracthistogram.h:21
Common abstract base class for result filters and result recorders.
Definition: cresultlistener.h:34
Interface for listeners in a simulation model.
Definition: clistener.h:66
int simsignal_t
Signal handle.
Definition: clistener.h:24