MAK Data Logger API Documentation for HLA
Home
Modules
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
lgrCore
lgrCheckpointPolicy.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 1992-2010 VT MAK
3
** All rights reserved.
4
******************************************************************************/
5
9
10
#ifndef lgrCheckpointPolicy_H_
11
#define lgrCheckpointPolicy_H_
12
13
#include <
lgrCore/lgrCore.h
>
14
15
#include <
lgrUtil/absoluteTime.h
>
16
#include <
lgrUtil/filePosition.h
>
17
#include <
lgrUtil/observe.h
>
18
#include <
lgrUtil/virtualConstructor.h
>
19
20
namespace
MAKLogger
21
{
22
class
DtLgrFileOutput;
23
class
DtPacket;
24
class
DtMessageState;
25
28
class
DT_DLL_LGRCORE
DtCheckpointPolicy
29
{
30
public
:
31
DT_PURE_VIRTUAL_CTR
(
DtCheckpointPolicy
,())
32
33
34
virtual
~
DtCheckpointPolicy
();
35
36
37
enum
Policy
38
{
39
ByCount
,
40
BySize
,
41
ByTime
42
};
43
44
45
private
:
47
DtCheckpointPolicy
(
const
DtCheckpointPolicy
&);
49
DtCheckpointPolicy
& operator=(
const
DtCheckpointPolicy
&);
50
public
:
51
56
virtual
bool
timeForCheckpoint()
const
= 0;
57
59
virtual
void
reset() = 0;
60
62
virtual
void
checkpointWritten() = 0;
63
66
virtual
void
packetWritten(
const
DtPacket
&) = 0;
67
69
virtual
void
connectFileOutput(
DtMessageState
*,
DtLgrFileOutput
*);
70
72
virtual
bool
interactionsCheckpointed()
const
;
73
75
virtual
void
setInteractionsCheckpointed(
bool
enable);
76
77
protected
:
78
79
void
onPacketWritten(
const
DtPacket
&);
80
82
typedef
DtObserverFunctor<DtCheckpointPolicy,DtPacket>
PacketObserverFunctor
;
83
84
PacketObserverFunctor
myPacketWrittenObserver
;
85
86
87
//DtObserverFunctor<DtCheckpointPolicy,DtPacket> myPacketWrittenObserver;
88
DtMessageState
*
myMessageState
;
89
DtLgrFileOutput
*
myLgrFileOutput
;
90
bool
myCheckpointInteractions
;
91
};
92
95
class
DT_DLL_LGRCORE
DtCheckpointBySize
:
public
DtCheckpointPolicy
96
{
97
public
:
98
DT_VIRTUAL_CTR
(
DtCheckpointBySize
,(
size_t
size))
99
DT_VIRTUAL_BASE_CTR
(
DtCheckpointPolicy
,(
size_t
size))
100
101
102
virtual
~
DtCheckpointBySize
();
103
104
private
:
106
DtCheckpointBySize
(
const
DtCheckpointBySize
&);
108
DtCheckpointBySize
& operator=(
const
DtCheckpointBySize
&);
109
public
:
110
116
virtual
bool
timeForCheckpoint()
const
;
117
119
virtual
void
reset();
120
122
virtual
size_t
sizeBetweenCheckpoints()
const
;
123
125
virtual
void
checkpointWritten();
126
128
virtual
void
packetWritten(
const
DtPacket
&);
129
130
protected
:
131
133
size_t
myCheckpointSize
;
134
136
size_t
myCurrentDataSize
;
137
};
138
141
class
DT_DLL_LGRCORE
DtCheckpointByCount
:
public
DtCheckpointPolicy
142
{
143
public
:
144
DT_VIRTUAL_CTR
(
DtCheckpointByCount
,(
int
count))
145
DT_VIRTUAL_BASE_CTR
(
DtCheckpointPolicy
,(
int
count))
146
147
148
virtual
~
DtCheckpointByCount
();
149
155
virtual
bool
timeForCheckpoint()
const
;
156
158
virtual
void
reset();
159
161
virtual
void
checkpointWritten();
162
164
virtual
void
packetWritten(
const
DtPacket
&);
165
166
protected
:
168
int
myCheckpointCount
;
169
171
int
myCurrentPacketsCount
;
172
};
173
176
class
DT_DLL_LGRCORE
DtCheckpointByTime
:
public
DtCheckpointPolicy
177
{
178
public
:
179
DT_VIRTUAL_CTR
(
DtCheckpointByTime
,(
DtRelativeTime
time))
180
DT_VIRTUAL_BASE_CTR
(
DtCheckpointPolicy
,(
DtRelativeTime
time))
181
182
183
virtual
~
DtCheckpointByTime
();
184
189
virtual
bool
timeForCheckpoint()
const
;
190
192
virtual
void
reset();
193
195
virtual
void
checkpointWritten();
196
198
virtual
void
packetWritten(
const
DtPacket
&);
199
200
protected
:
201
204
DtRelativeTime
myCheckpointTime
;
205
206
DtAbsoluteTime
myLastCheckpointTime
;
208
DtAbsoluteTime
myLastPacketTime
;
209
};
210
}
211
212
#endif
Document ID: Generated on Tue Aug 1 09:00:26 EDT 2017 from SVN revision 179128
Copyright © 2017 VT MÄK. All Rights Reserved (
www.mak.com
)