cparsimpartition.h Source File

Parallel Simulation API: cparsimpartition.h Source File
Parallel Simulation API
cparsimpartition.h
1//=========================================================================
2// CPARSIMPARTITION.H - part of
3//
4// OMNeT++/OMNEST
5// Discrete System Simulation in C++
6//
7//=========================================================================
8
9/*--------------------------------------------------------------*
10 Copyright (C) 1992-2017 Andras Varga
11 Copyright (C) 2006-2017 OpenSim Ltd.
12
13 This file is distributed WITHOUT ANY WARRANTY. See the file
14 `license' for details on this and other legal matters.
15*--------------------------------------------------------------*/
16
17#ifndef __OMNETPP_CPARSIMPARTITION_H
18#define __OMNETPP_CPARSIMPARTITION_H
19
20#include "omnetpp/simkerneldefs.h"
21#include "omnetpp/cobject.h"
22#include "omnetpp/simtime_t.h"
23#include "omnetpp/clifecyclelistener.h"
24
25namespace omnetpp {
26
27class cSimulation;
29class cParsimCommunications;
30class cCommBuffer;
31class cException;
32class cTerminationException;
33struct SendOptions;
34
58class SIM_API cParsimPartition : public cObject, public cISimulationLifecycleListener
59{
60 protected:
61 cSimulation *sim = nullptr;
62 cParsimCommunications *comm = nullptr;
63 cParsimSynchronizer *synch = nullptr;
64 bool debug;
65
66 protected:
67 // internal: fills in remote gate addresses of all cProxyGate's in the current partition
68 void connectRemoteGates();
69
74 virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override;
75
76 public:
81
85 virtual ~cParsimPartition() {}
86
90 void setContext(cSimulation *sim, cParsimCommunications *comm, cParsimSynchronizer *synch);
91
96 void startRun();
97
101 void endRun();
102
106 void shutdown();
107
113 virtual void processOutgoingMessage(cMessage *msg, const SendOptions& options, int procId, int moduleId, int gateId, void *data);
114
121 virtual void processReceivedBuffer(cCommBuffer *buffer, int tag, int sourceProcId);
122
130 virtual void processReceivedMessage(cMessage *msg, const SendOptions& options, int destModuleId, int destGateId, int sourceProcId);
131
140 virtual void broadcastTerminationException(cTerminationException& e);
141
150 virtual void broadcastException(std::exception& e);
151};
152
153} // namespace omnetpp
154
155
156#endif
157
virtual void broadcastException(std::exception &e)
virtual ~cParsimPartition()
Definition cparsimpartition.h:85
virtual void broadcastTerminationException(cTerminationException &e)
virtual void processOutgoingMessage(cMessage *msg, const SendOptions &options, int procId, int moduleId, int gateId, void *data)
virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override
virtual void processReceivedMessage(cMessage *msg, const SendOptions &options, int destModuleId, int destGateId, int sourceProcId)
void setContext(cSimulation *sim, cParsimCommunications *comm, cParsimSynchronizer *synch)
virtual void processReceivedBuffer(cCommBuffer *buffer, int tag, int sourceProcId)
Abstract base class for parallel simulation algorithms. Subclasses implement the "null message algori...
Definition cparsimsynchr.h:51