VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
envObjectSync.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 
10 
11 #ifndef envObjectSync_H__
12 #define envObjectSync_H__
13 
14 #include "appEnv.h"
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlSmartPointers.h>
17 #include <utility>
18 #include <map>
19 
20 #include "envValue.h"
21 
22 #ifdef DtUSE_UTILITIES_NAMESPACE
23 namespace DtUSE_UTILITIES_NAMESPACE
24 {
25 #endif
26 
30 
31 typedef DtBoost::weak_ptr<DtEnvObjectSync> DtEnvObjectSyncWP;
32 
36 {
37 public:
38 
40 
41  virtual ~DtEnvObjectSync();
42 
45  virtual void generateObject(DtEnvironment&, const DtString& name);
46 
51  virtual void bind(DtEnvValueSP value,bool createMissingAttributes);
52 
56  virtual void unbind();
57 
60  virtual DtEnvValueSP binding() const;
61 
64  virtual void addAttributeSync(const DtString&,DtEnvObjectSync*);
65 
68  virtual void removeAttributeSync(const DtString&);
69 
71  virtual void removeAllAttributeSyncs();
72 
74  virtual DtEnvObjectSync* attributeSync(const DtString&);
75 
76 
77  /* CALLBACKS */
78 
79  /* Mandatory callbacks */
80 
84  virtual void syncInCB(const DtEnvObject&) = 0;
85 
88  virtual void syncOutCB(DtEnvObject&) const = 0;
89 
91  virtual DtString syncType() const = 0;
92 
93  /* Optional callbacks */
94 
96  virtual void unboundAttributeSyncInCB(DtEnvValue*);
97 
99  virtual void attributeAddedCB(DtEnvValueSP);
100 
102  virtual void attributeRemovedCB(DtEnvValueSP);
103 
104 protected:
105 
106 
107  //typedef std::pair<DtEnvObjectSync*,DtEnvValueSP> DtAttributeBinding;
108  typedef std::map<DtString,DtEnvObjectSync*> DtAttributeSyncMap;
111 };
112 
113 #ifdef DtUSE_UTILITIES_NAMESPACE
114 }
115 #endif
116 
117 #endif
DtBoost::shared_ptr< DtEnvValue > DtEnvValueSP
Definition: envValue.h:29
DtEnvValueWP myBoundObject
Definition: envObjectSync.h:110
class DT_DLL_MTL DtEnvObjectSync
Definition: envObjectSync.h:28
Contains the DtString class declaration.
Includes Boost smart pointers and aliases the Boost namespace.
Base value object which simply stores a single string value.
Definition: envValue.h:44
The high level object specialization of a named list.
Definition: envObject.h:26
A Flyweight class for manipulating objects and their hierarchy The DtEnvironment wraps a DtEnvValuSP ...
Definition: environment.h:29
int bind(int, struct sockaddr *, int)
std::map< DtString, DtEnvObjectSync * > DtAttributeSyncMap
Definition: envObjectSync.h:108
Synchronizes an environment object to a C++ object.
Definition: envObjectSync.h:35
The library header.
DtBoost::weak_ptr< DtEnvValue > DtEnvValueWP
Definition: envValue.h:32
DtBoost::weak_ptr< DtEnvObjectSync > DtEnvObjectSyncWP
Definition: envObjectSync.h:31
#define DT_DLL_MTL
Definition: vlMachineTypes.h:106
DtAttributeSyncMap myAttributeMap
Definition: envObjectSync.h:109
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Contains the DtEnvValue class as well as various typedefs.

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)