VR-Exchange 2.4 API Documentation
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
portal
pReflectedObjectManager.h
Go to the documentation of this file.
1
/*********************************************************************
2
** Copyright (c) 1992-2010 VT MAK
3
** All rights reserved.
4
*********************************************************************/
5
6
#ifndef pReflectedObjectManager_H_
7
#define pReflectedObjectManager_H_
8
12
13
14
#include <vlutil/vlString.h>
15
#include <vlutil/vlNetTypes.h>
16
#include <matrix/vlVector.h>
17
#include <
portal/pReflectedObject.h
>
18
#include <
portal/pConnection.h
>
19
#include <
portal/pEntity.h
>
20
#include <
portal/pGenericObject.h
>
21
#include <
portal/pControlMessage.h
>
22
#include <
portal/pAggregate.h
>
23
24
#include <list>
25
#include <map>
26
27
namespace
MAKVrExchange
{
28
29
class
DtPortalConnection;
30
36
template
<
class
T_ReflectedObject>
37
class
DtPortalReflectedObjectManager
38
{
39
public
:
40
43
typedef
std::map<DtString, T_ReflectedObject *>
ReflectedObjectMap
;
44
47
typedef
void (*
DtPortalObjectCallback
)
48
(
const
T_ReflectedObject &obj,
void
*usr);
49
51
typedef
bool (*
DtDiscoveryCondition
)
52
(
const
DtPortalReflectedObject
*refObj,
void
*usr);
53
54
public
:
55
70
DtPortalReflectedObjectManager
(
DtPortalConnection
*conn,
const
bool
ignoreFiltering =
false
);
71
DtPortalReflectedObjectManager
(
DtPortalConnection
*conn,
DtPortalMessageKind
messageType,
const
bool
ignoreFiltering =
false
);
72
74
virtual
~DtPortalReflectedObjectManager
();
75
76
private
:
77
79
DtPortalReflectedObjectManager
(
const
DtPortalReflectedObjectManager
&other);
80
82
DtPortalReflectedObjectManager
&
operator=
(
const
DtPortalReflectedObjectManager
&other);
83
84
public
:
85
87
88
90
virtual
void
addAdditionCallback
(
91
DtPortalObjectCallback
cb,
void
* userData);
92
94
virtual
void
removeAdditionCallback
(
95
DtPortalObjectCallback
cb,
void
* userData);
96
98
virtual
void
addRemovalCallback
(
99
DtPortalObjectCallback
cb,
void
* userData);
100
102
virtual
void
removeRemovalCallback
(
103
DtPortalObjectCallback
cb,
void
* userData);
104
106
109
virtual
void
setDiscoveryCondition
(
DtDiscoveryCondition
fn,
void
* usr);
110
114
virtual
const
ReflectedObjectMap
&
reflectedObjectMap
()
const
;
115
116
virtual
bool
isFilteringIgnored
()
const
;
117
118
protected
:
119
122
virtual
bool
discoverObject
(T_ReflectedObject *pObj);
123
125
virtual
void
processNewObject
(
126
const
typename
T_ReflectedObject::TheTypeOfThisObject &obj);
127
129
virtual
void
processUpdate
(
130
const
typename
T_ReflectedObject::TheTypeOfThisObject &obj);
131
132
virtual
void
processRemoval
(
const
DtPortalObject
&obj);
133
135
virtual
bool
readyToAdd
(
const
DtPortalReflectedObject
*refObj);
136
138
virtual
void
removeObjectsForBroker
(
const
DtU32& brokerId);
139
140
protected
:
141
144
static
void
objectUpdateCb
(
145
const
typename
T_ReflectedObject::TheTypeOfThisObject &obj,
void
*user);
146
150
static
void
abnormalRemovalCb
(
151
const
DtAbnormalBrokerExitMessage
&msg,
void
*usrData);
152
155
static
void
removeBrokerCb
(
156
const
DtBrokerExitingMessage
&msg,
void
*usrData);
157
158
protected
:
159
160
struct
CallbackPair
161
{
162
DtPortalObjectCallback
fcn
;
163
void
*
userData
;
164
};
165
166
typedef
std::list<CallbackPair>
CallbackPairList
;
167
typedef
std::map<DtString, CallbackPairList>
OjbectUpdateCallbackMap
;
168
169
CallbackPairList
myObjectAdditionCallbacks
;
170
CallbackPairList
myObjectRemovalCallbacks
;
171
172
ReflectedObjectMap
myReflectedObjectMap
;
173
ReflectedObjectMap
myWaitListObjectMap
;
174
DtPortalConnection
*
myConn
;
175
176
DtDiscoveryCondition
myDiscoveryCondition
;
177
void
*
myDiscoveryConditionParameter
;
178
179
const
bool
myFilteringIgnored
;
180
DtPortalMessageKind
myKind
;
181
182
};
183
}
184
185
#define pReflectedObjectManager_INL_
186
#include "pReflectedObjectManager.inl"
187
#undef pReflectedObjectManager_INL_
188
189
#endif //end pReflectedObjectManager_H_
Document ID: Generated on Thu Jul 23 10:25:22 EDT 2015 from SVN revision 155065
Copyright © 2005-2014 VT MÄK. All Rights Reserved (
www.mak.com
)