9 #ifndef __PDG_GRAPH_H__
10 #define __PDG_GRAPH_H__
46 using IdMap = UT_ConcurrentHashMap<PDG_WorkItemID, PDG_WorkItem*>;
54 int64 getMemoryUsage(
bool inclusive)
const;
59 bool inclusive)
const;
104 void removeAllNodes();
110 {
return myNodeNameMap.size(); }
112 {
return myNodeNameMap; }
153 bool allow_null)
const;
169 void dependencyGraph(
178 void dependencyGraph(
188 bool apply_dirty)
const;
198 bool apply_dirty)
const;
208 bool apply_dirty)
const;
220 bool emit_events)
const;
245 void bindGlobalAttribute(
276 {
return mySerialCookLock; }
279 template <
typename Func>
283 auto it = myNodeIdMap.find(
id);
284 if (it != myNodeIdMap.end())
289 template <
typename Func>
298 template <
typename Func>
303 if (myWorkItemIdMap.find(access,
id))
328 IdMap myWorkItemIdMap;
exint PDG_WorkItemID
Type defs for unique work item IDs.
UT_SharedPtr< PDG_Dependency > PDG_DependencyPtr
Type defs for registered type objects.
virtual bool areAttribFlagsValid(uint16 flags) const
UT_UniquePtr< PDG_Node > PDG_NodePtr
Array, set and map of nodes.
virtual UT_StringHolder attribOwnerName() const
void safeNodeMapAccess(const Func &f) const
Runs a functor on the node map with the node lock held.
IdMap workItemIdMap() const
Returns the map of work item ids -> work item.
const PDG_NodePtrMap & nodes() const
GLuint GLint GLboolean GLint GLenum access
void safeWorkItemAccess(PDG_WorkItemID id, const Func &f) const
PDG_AttributeCast
Enumeration of attribute cast results.
UT_ConcurrentHashMap< PDG_WorkItemID, PDG_WorkItem * > IdMap
Typedef for work item id -> work item.
void applyDirty(bool remove_outputs)
Applies the stored dirty operation.
A simple class to hold a rwlock and release it when it goes out of scope.
GLuint const GLchar * name
void safeNodeAccess(PDG_NodeID id, const Func &f) const
Runs a functor on the specified node with the node lock held.
PDG_AttributeFlag
Enumeration of extra attribute flags. Flags can be ORed together.
UT_RWLock & serialCookLock()
int PDG_NodeID
Node ID type.
**If you just want to fire and args
virtual bool isAttribFlagValid(PDG_AttributeFlag flag) const
Reader/Writer mutex class.
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter