VR-Forces 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 
80  virtual const DtUUID& uuid() const;
81 
85  virtual void setIsTopLevel(bool isTopLevel);
86  virtual bool isTopLevel() const;
88 
92  virtual void addChildAddedCallback(
93  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
94  virtual void removeChildAddedCallback(
95  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
97 
101  virtual void addChildRemovedCallback(
102  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
103  virtual void removeChildRemovedCallback(
104  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
106 
114  virtual void addSubordinatesChangedCallback(
115  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
116  virtual void removeSubordinatesChangedCallback(
117  DtOrgNodeCallbackList::DtCallbackFunctionType fcn, void* userData) const;
119 
120  tbb::recursive_mutex& mutex() const
121  {
122  return myMutex;
123  }
124 
125 protected:
126 
128  virtual void invokeSubordinatesChangedCallbacks(const DtUUID&) const;
129 
132  virtual void invokeChildAddedCallbacks(const DtUUID&) const;
133 
136  virtual void invokeChildRemovedCallbacks(const DtUUID&) const;
137 
139  void removeAllSubordinatesChangedCallbacks() const;
140 
142  virtual void childAdded(DtOrganizationManagerNode*);
143 
145  virtual void childRemoved(const DtOrganizationManagerNode*);
146 
147 protected:
152 
156 
158 
159  mutable tbb::recursive_mutex myMutex;
160 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: organizationManagerNode.h:40
DtOrgNodeCallbackList myChildRemovedCallbackList
Definition: organizationManagerNode.h:155
std::set< DtOrganizationManagerNode * > ChildList
Definition: organizationManagerNode.h:43
DtUUID superior
Definition: organizationManagerNode.h:32
bool myIsTopLevel
Definition: organizationManagerNode.h:151
DtOrgNodeCallbackList mySubordinatesChangedCallbackList
Definition: organizationManagerNode.h:153
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:149
DtOrganizationManagerNode * myParentNode
Definition: organizationManagerNode.h:150
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtOrgNodeCallbackList myChildAddedCallbackList
Definition: organizationManagerNode.h:154
DtSimObjectReference mySimObject
Definition: organizationManagerNode.h:157
DtUUID subordinate
Definition: organizationManagerNode.h:35
tbb::recursive_mutex myMutex
Definition: organizationManagerNode.h:159
tbb::recursive_mutex & mutex() const
Definition: organizationManagerNode.h:120
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 Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)