VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
include
vrfVrlSharedSource
DtVrfAggregateObjectDataStateProcessor.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2009 MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
/******************************************************************************
6
** $RCSfile: DtVrfAggregateObjectDataStateProcessor.h,v $ $Revision: 1.1 $ $State: Exp $
7
******************************************************************************/
8
12
13
#pragma once
14
15
#include <vrfGuiCore/DtVrfObjectDataStateObjectAgent.hpp>
16
#include <
vrvVrl/DtAggregateExistenceListener.h
>
17
#include <
vrvVrl/DtVrlinkAggregateStateListener.h
>
18
19
#include <
vrvVrl/vrvVrl.h
>
20
//#include <vrvCore/DtSimDataProcessor.h>
21
22
#include <
vrvUtil/DtBalancedUpdater.h
>
23
#include <
vrvUtil/DtSignalConnectionManager.h
>
24
#include <vrvCore/DtSimEntryObjectAgent.hpp>
25
26
namespace
makVrv
27
{
28
namespace
DT_PROTOCOL_NAMESPACE
29
{
30
class
DtStateListenerInterface;
31
}
32
}
33
34
namespace
makVrf
35
{
36
namespace
VRF_PROTOCOL_NAMESPACE
37
{
40
class
DtVrfAggregateObjectDataStateProcessor
:
public
makVrv::DtVirtualBaseClass
41
{
42
public
:
43
45
static
DtVrfAggregateObjectDataStateProcessor
*
findInstance
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim);
46
48
static
void
registerInstance
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim,
DtVrfAggregateObjectDataStateProcessor
*);
49
51
DtVrfAggregateObjectDataStateProcessor
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
& sim,
52
int
sessionId,
int
messageVersion);
53
55
virtual
~DtVrfAggregateObjectDataStateProcessor
();
56
58
void
postDrainInput
();
59
61
void
setObjectUpdateRate
(
makVrv::DtUniqueID
uniqueId,
makVrv::DtSimEntryUpdater::UpdateRate
rate);
62
64
void
forceObjectUpdate
(
makVrv::DtUniqueID
uniqueId);
65
67
void
aggregateDiscovered
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
& listener);
68
70
void
aggregateToBeDeleted
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
& listener);
71
73
virtual
void
createAndSendState
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
& listener,
74
makVrv::DtSimStateObjectAgent& objectDriver);
75
76
boost::signal<void (makVrv::DtUniqueID, DtVrfObjectDataState&) >
signal_stateUpdated
;
77
78
protected
:
79
81
static
void
postDrainInput
(
void
* usr);
82
83
protected
:
84
85
//A Listener and a driver which will be updated with it.
86
class
VrfAggregateObjectDataStateUpdater
87
{
88
public
:
89
90
VrfAggregateObjectDataStateUpdater
(
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
& listener,
91
DtVrfObjectDataStateObjectAgent& driver,
92
DtVrfAggregateObjectDataStateProcessor
& processor);
93
94
VrfAggregateObjectDataStateUpdater
(
const
VrfAggregateObjectDataStateUpdater
& orig);
95
96
VrfAggregateObjectDataStateUpdater
&
operator=
(
const
VrfAggregateObjectDataStateUpdater
& orig);
97
98
//Are the updaters equal
99
bool
operator==
(
const
VrfAggregateObjectDataStateUpdater
& orig)
const
;
100
102
void
update
(
double
timeT);
103
104
protected
:
105
106
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
*
myListener
;
107
DtVrfObjectDataStateObjectAgent*
myObjectAgent
;
108
DtVrfAggregateObjectDataStateProcessor
*
myProcessor
;
109
};
110
111
typedef
std::vector<makVrv::DtUniqueID>
AggregateIdList
;
112
113
struct
AggregateSimDataInstance
114
{
115
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener
*
myListener
;
116
DtVrfObjectDataStateObjectAgent*
myAgent
;
117
makVrv::DtSimEntryUpdater::UpdateRate
myRate
;
118
};
119
120
typedef
std::map<makVrv::DtUniqueID,AggregateSimDataInstance >
AggregateAgentMap
;
121
122
typedef
makVrv::DtBalancedUpdater<VrfAggregateObjectDataStateUpdater>
AggregateUpdaterGroup
;
123
typedef
std::map<makVrv::DtSimEntryUpdater::UpdateRate,AggregateUpdaterGroup>
124
AggregateUpdateGroupMap
;
125
126
protected
:
127
128
makVrv::DtSignalConnectionManager
myConnections
;
129
130
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection
&
mySimulation
;
131
makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateExistenceListener
&
myListener
;
132
DtTimedSection
myTimer
;
133
makVrv::DtSimEntryObjectAgent*
mySimEntryAgent
;
134
135
AggregateAgentMap
myAggregateAgents
;
136
AggregateUpdateGroupMap
myRefreshRateGroups
;
137
AggregateIdList
myForceUpdateList
;
138
139
int
mySessionId
;
140
int
myMessageVersion
;
141
};
142
}
143
}
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
)