VR-Link API Documentation for DIS
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
include
vl
pdu.h
Go to the documentation of this file.
1
/*********************************************************************
2
** Copyright (c) 1992-2010 VT MAK
3
** All rights reserved.
4
*********************************************************************/
5
#pragma once
6
9
10
11
12
#include <stdlib.h>
13
#include "
packets/pduHeader.h
"
14
#include <
vlpi/disEnums.h
>
15
#include <
vlutil/vlTimeStampType.h
>
16
#include <
vlutil/vlBaseMsg.h
>
17
18
19
#define DtSTATUS_OK 0
20
#define DtSTATUS_NOT_OK 1
21
22
extern
DT_DLL_VL
int
DtProtocolVersionToSend
;
23
extern
DT_DLL_VL
int
DtProtocolVersionToRecvMin
;
24
extern
DT_DLL_VL
int
DtProtocolVersionToRecvMax
;
25
29
class
DT_DLL_VL
DtPdu
:
public
DtBaseMsg
30
{
31
public
:
32
34
virtual
~
DtPdu
();
35
37
DtPdu
(
const
DtPdu
&pdu,
38
DtBufferPtr
buffer =
DtUSE_INTERNAL_BUFFER
);
39
41
DtPdu
&
operator=
(
const
DtPdu
&pdu);
42
45
virtual
void
* packet()
const
;
46
49
virtual
int
status()
const
;
50
52
virtual
void
setVersion(
int
vers);
53
virtual
int
protocolVersion()
const
;
54
56
virtual
void
setExerciseId(
int
id
);
57
virtual
int
exerciseId()
const
;
58
60
virtual
DtPduKind
kind()
const
;
61
63
virtual
DtProtocolFamily
protocolFamily()
const
;
64
68
virtual
void
setTimeStamp(
DtTime
time,
69
DtTimeStampType
type =
DtTimeStampRelative
);
70
73
virtual
DtTime
timeStamp()
const
;
74
76
virtual
DtTimeStampType
timeStampType()
const
;
77
82
virtual
DtTime
guessTimeValid(
DtTime
referenceTime)
const
;
83
85
virtual
DtNetPduHeader
* netHeader()
const
;
86
88
virtual
void
print()
const
;
89
92
virtual
void
printToStream(std::ostream& stream)
const
;
93
95
virtual
void
printHeader()
const
;
96
98
virtual
void
printHeaderToStream(std::ostream& stream)
const
;
99
100
106
virtual
void
printData()
const
;
107
virtual
void
printDataToStream(std::ostream& stream)
const
;
108
virtual
void
printDataToString(
DtString
& str)
const
;
109
110
protected
:
111
114
DtPdu
();
115
117
virtual
void
setStatus(
int
okStatus);
118
121
virtual
void
initPdu(
int
size,
DtBufferPtr
buffer);
122
124
virtual
void
initPdu(
const
void
* initial,
DtBufferPtr
buffer);
125
127
virtual
DtPduKind
internalGetPduKind()
const
= 0;
128
130
virtual
DtProtocolFamily
kindToFamily(
DtPduKind
kind)
const
;
131
133
virtual
void
sizeChanged
(
int
size);
134
136
virtual
void
clearData();
137
139
virtual
void
initHeader(
DtPduKind
kind,
int
size);
140
141
protected
:
142
143
int
myOKStatus
;
144
};
145
146
#define netPdu packet()
147
148
inline
DtNetPduHeader
*
DtPdu::netHeader
()
const
149
{
150
return
(
DtNetPduHeader
*)
netRep
();
151
}
152
153
inline
void
*
DtPdu::packet
()
const
154
{
155
return
(
void
*)
netRep
();
156
}
157
158
inline
int
DtPdu::protocolVersion
()
const
159
{
160
return
netHeader
()->
version
;
161
}
162
163
inline
int
DtPdu::exerciseId
()
const
164
{
165
return
netHeader
()->
DtExercise
;
166
}
167
168
inline
DtPduKind
DtPdu::kind
()
const
169
{
return
DtPduKind
(
netHeader
()->DtKind);
170
}
171
172
inline
DtProtocolFamily
DtPdu::protocolFamily
()
const
173
{
174
return
DtProtocolFamily
(
netHeader
()->family);
175
}
176
177
inline
DtTime
DtPdu::timeStamp
()
const
178
{
179
return
netHeader
()->
DtTime
.
time
();
180
}
181
182
inline
DtTimeStampType
DtPdu::timeStampType
()
const
183
{
184
return
netHeader
()->
DtTime
.
type
();
185
}
186
187
inline
void
DtPdu::setExerciseId
(
int
id
)
188
{
189
netHeader
()->
DtExercise
= id;
190
}
191
192
inline
void
DtPdu::setTimeStamp
(
DtTime
time,
DtTimeStampType
relOrAbs)
193
{
194
netHeader
()->
DtTime
=
DtNetTimeStamp
(time, relOrAbs);
195
}
196
197
inline
int
DtPdu::status
()
const
198
{
199
return
myOKStatus
;
200
}
201
202
inline
void
DtPdu::setStatus
(
int
okStatus)
203
{
204
myOKStatus
= okStatus;
205
}
206
207
inline
void
DtPdu::setVersion
(
int
vers)
208
{
209
netHeader
()->
version
= (
unsigned
char) (
DtU32
) vers;
210
}
211
212
213
214
Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)