VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrfobjcore
externalCommModel.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2015 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
10
11
#pragma once
12
13
#include <vl/globalObjectDesignator.h>
14
#include <map>
15
#include <deque>
16
#include "
vrfobjcore/commModel.h
"
17
#include "
vrfMsgTransport/externalCommsMessageTransporter.h
"
18
#include "
vrfobjcore/vrfobjcoreDefines.h
"
19
20
class
DtExternalCommModelDescriptor
;
21
22
class
DT_DLL_vrfobjcore
DtExternalCommModel
:
public
DtCommModel
23
{
24
private
:
26
27
DtExternalCommModel
();
28
DtExternalCommModel
(
const
DtExternalCommModel
& orig);
29
DtExternalCommModel
&
operator=
(
const
DtExternalCommModel
& orig);
31
32
protected
:
34
DtExternalCommModel
(
DtCommModelCreationParams
& params);
36
virtual
bool
init
();
37
38
public
:
41
static
DtCommModel
*
create
(
DtCommModelCreationParams
& params);
42
43
virtual
~
DtExternalCommModel
();
44
46
virtual
DtString
type
()
const
;
47
50
virtual
void
registerRadio
(
DtVrfRadio
* radio);
51
56
virtual
void
sendMessage
(
DtVrfObjectMessage
* message,
DtVrfRadio
* sendingRadio);
57
60
virtual
void
tick
();
61
62
protected
:
63
virtual
DtU32 nextMessageId(
const
DtEntityIdentifier& entityId);
64
66
virtual
void
passMessageToReceiver(
DtVrfObjectMessageConstPtr
,
const
DtEntityIdentifier& receiver);
67
68
static
void
messageClearToReceiveCallback(
const
DtExternalCommsProcessMessageData
& data,
void
* usr);
69
virtual
void
processMessageClearToReceive(
const
DtExternalCommsProcessMessageData
& data);
70
71
static
void
messageTimeoutCallback(
const
DtExternalCommsTimeoutData
& data,
void
* usr);
72
virtual
void
processMessageTimeout(
const
DtExternalCommsTimeoutData
& data);
73
74
static
void
newMessageCallback(
const
DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams
& params,
void
* usr);
75
virtual
void
processNewMessage(
const
DtExternalCommsMessageTransporter::DtExternalCommsMessageCallbackParams
& params);
76
77
static
void
readyToSendCallback(
const
DtExternalCommsReadyToSendData
& data,
void
* usr);
78
virtual
void
processReadyToSend(
const
DtExternalCommsReadyToSendData
& data);
79
80
protected
:
81
82
83
struct
DtClearToReceiveData
84
{
85
DtVrfObjectMessageConstPtr
myRadioMessage
;
86
DtEntityIdentifier
myReceiver
;
87
};
88
89
DtU32
myLastMessageId
;
90
91
typedef
std::map<DtU32, DtVrfObjectMessageConstPtr>
DtRadioMessageMap
;
94
DtRadioMessageMap
mySentMessages
;
95
DtExternalCommsMessageTransporter
*
myTransporter
;
96
99
typedef
std::deque<DtClearToReceiveData>
DtClearToReceiveDeque
;
100
DtClearToReceiveDeque
myClearToReceiveDeque
;
101
102
const
DtExternalCommModelDescriptor
*
myExternalCommModelDescriptor
;
103
106
typedef
std::map<DtU32, DtExternalCommsProcessMessageData>
DtExternalCommsMessageDataMap
;
107
DtExternalCommsMessageDataMap
myWaitingForMessageMap
;
108
111
typedef
std::map<DtU32, DtExternalCommsTimeoutData>
DtExternalCommsTimeoutMap
;
112
DtExternalCommsTimeoutMap
myTimedOutMessageMap
;
113
};
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)