VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
vrfVrlSharedSource
DtVrfEnvironmentObjectDataStateProcessor.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2009 MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
/******************************************************************************
6
** $RCSfile: DtVrfEnvironmentObjectDataStateProcessor.h,v $ $Revision: 1.2 $ $State: Exp $
7
******************************************************************************/
8
12
13
#pragma once
14
15
#include <vrfGuiCore/DtVrfObjectDataStateObjectAgent.hpp>
16
17
#include <
vrvVrl/vrvVrl.h
>
18
19
#include <
vrvVrl/DtVrlinkTacticalGraphicStateListener.h
>
20
21
#include <
vrvUtil/DtBalancedUpdater.h
>
22
#include <
vrvUtil/DtSignalConnectionManager.h
>
23
#include <vrvCore/DtSimEntryObjectAgent.hpp>
24
25
namespace
makVrv
26
{
27
namespace
DT_PROTOCOL_NAMESPACE
28
{
29
class
DtStateListenerInterface;
30
}
31
}
32
33
namespace
makVrf
34
{
35
namespace
VRF_PROTOCOL_NAMESPACE
36
{
38
class
DtVrfEnvironmentObjectDataStateProcessor
:
public
makVrv::DtVirtualBaseClass
39
{
40
public
:
41
43
static
DtVrfEnvironmentObjectDataStateProcessor
*
findInstance
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim);
44
46
static
void
registerInstance
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim,
DtVrfEnvironmentObjectDataStateProcessor
*);
47
49
DtVrfEnvironmentObjectDataStateProcessor
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim,
50
int
sessionId,
int
messageVersion);
51
53
virtual
~DtVrfEnvironmentObjectDataStateProcessor
();
54
56
void
postDrainInput
();
57
59
void
setObjectUpdateRate
(
makVrv::DtUniqueID
uniqueId,
makVrv::DtSimEntryUpdater::UpdateRate
rate);
60
62
void
forceObjectUpdate
(
makVrv::DtUniqueID
uniqueId);
63
65
void
environmentDiscovered
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
& listener);
66
68
void
environmentToBeDeleted
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
& listener);
69
71
virtual
void
createAndSendState
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
& listener,
72
makVrv::DtSimStateObjectAgent& objectDriver);
73
74
boost::signal<void (makVrv::DtUniqueID, DtVrfObjectDataState&) >
signal_stateUpdated
;
75
76
protected
:
77
79
static
void
postDrainInput
(
void
* usr);
80
81
protected
:
82
83
//A Listener and a driver which will be updated with it.
84
class
VrfEnvironmentObjectDataStateUpdater
85
{
86
public
:
87
88
VrfEnvironmentObjectDataStateUpdater
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
& listener,
89
DtVrfObjectDataStateObjectAgent& driver,
90
DtVrfEnvironmentObjectDataStateProcessor
& processor);
91
92
VrfEnvironmentObjectDataStateUpdater
(
const
VrfEnvironmentObjectDataStateUpdater
& orig);
93
94
VrfEnvironmentObjectDataStateUpdater
&
operator=
(
const
VrfEnvironmentObjectDataStateUpdater
& orig);
95
96
//Are the updaters equal
97
bool
operator==
(
const
VrfEnvironmentObjectDataStateUpdater
& orig)
const
;
98
100
void
update
(
double
timeT);
101
102
protected
:
103
104
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
*
myListener
;
105
DtVrfObjectDataStateObjectAgent*
myObjectAgent
;
106
DtVrfEnvironmentObjectDataStateProcessor
*
myProcessor
;
107
};
108
109
typedef
std::vector<makVrv::DtUniqueID>
EnvironmentIdList
;
110
111
struct
EnvironmentSimDataInstance
112
{
113
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface
*
myListener
;
114
DtVrfObjectDataStateObjectAgent*
myAgent
;
115
makVrv::DtSimEntryUpdater::UpdateRate
myRate
;
116
};
117
118
typedef
std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance >
EnvironmentAgentMap
;
119
120
typedef
makVrv::DtBalancedUpdater<VrfEnvironmentObjectDataStateUpdater>
EnvironmentUpdaterGroup
;
121
typedef
std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
122
EnvironmentUpdateGroupMap
;
123
124
protected
:
125
126
makVrv::DtSignalConnectionManager
myConnections
;
127
128
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
&
mySimulation
;
129
makVrv::DT_PROTOCOL_NAMESPACE::DtEnvironmentalExistenceListener
&
myListener
;
130
DtTimedSection
myTimer
;
131
makVrv::DtSimEntryObjectAgent*
mySimEntryAgent
;
132
133
EnvironmentAgentMap
myEnvironmentAgents
;
134
EnvironmentUpdateGroupMap
myRefreshRateGroups
;
135
EnvironmentIdList
myForceUpdateList
;
136
137
int
mySessionId
;
138
int
myMessageVersion
;
139
};
140
}
141
}
Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (
www.mak.com
)