OMNeT++ Parallel Simulation Support
6.0.3
cidealsimulationprot.h
1
//=========================================================================
2
// CIDEALSIMULATIONPROT.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_CIDEALSIMULATIONPROT_H
18
#define __OMNETPP_CIDEALSIMULATIONPROT_H
19
20
#include "cparsimprotocolbase.h"
21
22
namespace
omnetpp {
23
24
class
cCommBuffer;
25
37
class
SIM_API
cIdealSimulationProtocol
:
public
cParsimProtocolBase
38
{
39
public
:
40
// stores one external event, as needed for the ISP algorithm
41
struct
ExternalEvent {
42
simtime_t
t;
// time of event
43
int
srcProcId;
// origin of event
44
};
45
46
protected
:
47
bool
debug;
48
FILE *fin =
nullptr
;
// the event log file
49
ExternalEvent nextExternalEvent;
// holds the next event
50
51
// preloaded table of event times
52
ExternalEvent *table;
// array to hold values
53
int
tableSize;
// allocated size of table
54
int
numItems = 0;
// num in items in table (numItems<tableSize possible)
55
int
nextPos = 0;
// position of 1st unused item in table
56
57
protected
:
58
// process cMessages received from other partitions; see same method in2
59
// cISPEventLogger for more explanation
60
virtual
void
processReceivedMessage(
cMessage
*msg,
const
SendOptions
& options,
int
destModuleId,
int
destGateId,
int
sourceProcId)
override
;
61
62
// read an event from event log file
63
virtual
void
readNextRecordedEvent();
64
65
public
:
69
cIdealSimulationProtocol
();
70
74
virtual
~
cIdealSimulationProtocol
();
75
79
virtual
void
startRun()
override
;
80
84
virtual
void
endRun()
override
;
85
89
virtual
cEvent
*takeNextEvent()
override
;
90
94
virtual
void
putBackEvent(
cEvent
*event)
override
;
95
};
96
97
}
// namespace omnetpp
98
99
100
#endif
101
omnetpp::cEvent
omnetpp::cIdealSimulationProtocol
Implements the Ideal Simulation Protocol, described in the paper "Performance Evaluation of Conservat...
Definition:
cidealsimulationprot.h:37
omnetpp::SendOptions
simtime_t
SimTime simtime_t
omnetpp::cParsimProtocolBase
Contains utility functions for implementing parallel simulation protocols.
Definition:
cparsimprotocolbase.h:32
omnetpp::cMessage
src
sim
parsim
cidealsimulationprot.h
Generated on Tue Jan 30 2024 20:11:37 for OMNeT++ Parallel Simulation Support by
1.8.17