VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
organizationManagerNode.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include "vrfobjcore/simObject.h"
17 
18 #include <vlutil/vlList.h>
19 #include <vlpi/entityIdentifier.h>
20 #include <list>
21 #include <vector>
22 #include <set>
23 
24 #include <memory>
25 #include <tbb/mutex.h>
26 #include <tbb/recursive_mutex.h>
27 
30 {
31  DtOrgNodeCallbackInfo(const DtUUID& sup, const DtUUID& sub) : superior(sup), subordinate(sub) {};
33 
36 };
37 
39 
41 {
42 public:
43  typedef std::set<DtOrganizationManagerNode*> ChildList;
45  virtual ~DtOrganizationManagerNode();
46 
47 private:
52 
53 public:
54 
57  virtual const ChildList& childList() const;
58  virtual ChildList& childList();
60 
64  virtual bool removeChild(const DtOrganizationManagerNode* node);
65  virtual void removeAllChildren();
66  virtual void addChild(DtOrganizationManagerNode* node);
68 
71  virtual void setParent(DtOrganizationManagerNode* parent);
72  virtual DtOrganizationManagerNode* parent() const;
74 
76  virtual void setSimObject(DtSimObjectReference);
77  DtSimObjectReference simObject() const { return mySimObject; };
78 
81  virtual DtUUID uuid() const;
83 
87  virtual void setIsTopLevel(bool isTopLevel);
88  virtual bool isTopLevel() const;
90 
94  virtual void addChildAddedCallback(
95  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
96  virtual void removeChildAddedCallback(
97  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
99 
103  virtual void addChildRemovedCallback(
104  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
105  virtual void removeChildRemovedCallback(
106  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
108 
116  virtual void addSubordinatesChangedCallback(
117  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
118  virtual void removeSubordinatesChangedCallback(
119  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
121 
122  tbb::recursive_mutex& mutex() const
123  {
124  return myMutex;
125  }
126 
127 protected:
128 
130  virtual void invokeSubordinatesChangedCallbacks(const DtUUID&) const;
131 
134  virtual void invokeChildAddedCallbacks(const DtUUID&) const;
135 
138  virtual void invokeChildRemovedCallbacks(const DtUUID&) const;
139 
141  void removeAllSubordinatesChangedCallbacks() const;
142 
144  virtual void childAdded(DtOrganizationManagerNode*);
145 
147  virtual void childRemoved(const DtOrganizationManagerNode*);
148 
149 protected:
154 
158 
160 
161  mutable tbb::recursive_mutex myMutex;
162 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Definition: organizationManagerNode.h:40
DtOrgNodeCallbackList myChildRemovedCallbackList
Definition: organizationManagerNode.h:157
std::set< DtOrganizationManagerNode * > ChildList
Definition: organizationManagerNode.h:43
DtUUID superior
Definition: organizationManagerNode.h:32
bool myIsTopLevel
Definition: organizationManagerNode.h:153
DtOrgNodeCallbackList mySubordinatesChangedCallbackList
Definition: organizationManagerNode.h:155
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
ChildList myChildList
DtList of DtOrganizationManagerNode pointers.
Definition: organizationManagerNode.h:151
DtOrganizationManagerNode * myParentNode
Definition: organizationManagerNode.h:152
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtOrgNodeCallbackList myChildAddedCallbackList
Definition: organizationManagerNode.h:156
DtSimObjectReference mySimObject
Definition: organizationManagerNode.h:159
DtUUID subordinate
Definition: organizationManagerNode.h:35
tbb::recursive_mutex myMutex
Definition: organizationManagerNode.h:161
tbb::recursive_mutex & mutex() const
Definition: organizationManagerNode.h:122
DtSimObjectReference simObject() const
Definition: organizationManagerNode.h:77
DtCallbackList< DtOrgNodeCallbackInfo > DtOrgNodeCallbackList
Definition: organizationManagerNode.h:38
void(* DtCallbackFunctionType)(DtOrgNodeCallbackInfo, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:95
Contains the declaration of DtOrganizationManagerNode, the class that represents a single node the hi...
Definition: organizationManagerNode.h:29
DtOrgNodeCallbackInfo(const DtUUID &sup, const DtUUID &sub)
Definition: organizationManagerNode.h:31

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)