10 #define __PDG_NODE_H__ 
  138                                            bool inclusive) 
const;
 
  142     int64                       workItemMemory(
bool attribs_only=
false) 
const;
 
  159     bool                        performancePath(
 
  178     fpreal                      nodeProgress() 
const;
 
  186                                     { 
return mySortOptions; }
 
  190                                     { 
return myNodeStats; }
 
  192                                     { 
return myNodeStats; }
 
  198                                     { 
return myCallback.get(); }
 
  200                                     { myCallback = callback; }
 
  210                                     { 
return mySchedulerReferences; }
 
  212                                     { mySchedulerReferences.insert(scheduler); }
 
  214                                     { mySchedulerReferences.clear(); }
 
  218                                     { 
return myContext; }
 
  222                                     { 
return myLoopDepth; }
 
  226                                     { 
return myLoopResetWhen; }
 
  230                                     { 
return myLoopResetType; }
 
  234                                     { 
return myIsErrorHandler; }
 
  238                                     { 
return myIsErrorHandlerBranch; }
 
  243                                         myIsErrorHandler = error_handler;
 
  244                                         myIsErrorHandlerBranch = error_handler;
 
  249                                     { myIsErrorHandlerBranch = error_handler; }
 
  253                                     { 
return myHasError; }
 
  259                                     { 
return myActiveGenerates.relaxedLoad() > 0; }
 
  265                                     { 
return myIsDynamicEval; }
 
  270                                     { 
return myIsDynamicGen; }
 
  275                                     { 
return myIsDynamicProp; }
 
  280                                     { 
return myCanHaveWorkItems; }
 
  286                                     { 
return myServiceName; }
 
  291                                     { 
return myUseServiceBlock; }
 
  298                                     { 
return myRegenerateReason; }
 
  303                                     { myRegenerateReason = reason; }
 
  309                                         if (reason > myRegenerateReason)
 
  310                                             myRegenerateReason = reason;
 
  315                                     { myBypassState = 
state; }
 
  320                                         if (state > myBypassState)
 
  322                                             myBypassState = 
state;
 
  331                                     { 
return myBypassState; }
 
  335                                     { 
return (myBypassState != eBypassNone); }
 
  342     bool                        isCooked() 
const;
 
  347     void                        dirty(
bool remove_outputs);
 
  373     virtual bool                deserializeWorkItem(
PDG_WorkItem* work_item);
 
  388     int                         reserveIndexBlock(
int number);
 
  406                                             bool filter_bypassed=
true,
 
  407                                             bool filter_reference=
true) 
const;
 
  411                                             bool filter_bypassed=
true,
 
  412                                             bool filter_reference=
true) 
const;
 
  415                                             bool filter_bypassed=
true,
 
  416                                             bool filter_reference=
true) 
const;
 
  417     void                        connectedAncestors(
 
  420                                             bool filter_bypassed=
true,
 
  421                                             bool filter_reference=
true);
 
  437                                 dependencies() 
const;
 
  440     void                        resolveDependencies();
 
  446                                     { 
return myWorkItems; }
 
  451                                     bool include_batches) 
const;
 
  456                                     bool include_batches) 
const;
 
  461     template <
typename Filter>
 
  468                                         for (
auto&& work_item : myWorkItems)
 
  470                                             if (work_item && 
filter(work_item))
 
  479     void                        removeWorkItems(
 
  486                                             bool localize) 
const;
 
  489     virtual void                queueWorkItemDeps(
 
  521     bool                        saveJSON(std::ostream &os, 
bool binary);
 
  530                                     bool skip_defaults) 
const;
 
  533     static bool                 fromJSON(
 
  556         inline 
bool isFirstGenerate()
 const { 
return myIsFirstGenerate; }
 
  561         bool        myIsFirstGenerate;
 
  626                                     { 
return myAttributeLock; }
 
  629                                     { 
return &myCanGenerateDep; }
 
  631                                     { 
return &myIsGeneratedDep; }
 
  633                                     { 
return &myIsCookedDep; }
 
  636                                     { 
return &myPropagateGroup; }
 
  641     void                        resetOwner() 
override;
 
  643     virtual int                 preCookLoop(
 
  646     virtual bool                preCook(
bool is_dirty, 
bool has_filter);
 
  647     virtual void                postCook();
 
  649     virtual void                clearAllWorkItems();
 
  650     virtual void                clearWorkItem(
const PDG_WorkItem* work_item);
 
  659     virtual bool                cookWorkItem(
 
  667     virtual bool                cacheBuiltinParms(
 
  670                                     bool dynamic_inputs);
 
  671     virtual void                addInputDeps(
PDG_Node* input_node);
 
  672     virtual void                addCommonDeps();
 
  674     virtual bool                requiresCookedInputs(
bool cook) 
const;
 
  682     void                        addPropagateDependencies(
 
  690     void                        queueWorkItemResolutions(
 
  694     void                        queueBatchWorkItemResolutions(
 
  710     void                        updateInputRegeneration();
 
  713     void                        prepareDirtyAll(
 
  715                                     bool remove_outputs);
 
  717     bool                        compactItems(
bool reset_index=
false);
 
  721                                         bool skip_failed=
false) 
const;
 
  722     bool                        downstreamItems(
 
  725     void                        clearOutputCache();
 
  726     void                        updateModTimeCache();
 
  728     template <
typename FieldType, 
typename EvalType=FieldType>
 
  733                                         const FieldType& default_value,
 
  734                                         bool set_dirty = 
true)
 
  736                                         FieldType field_value = default_value;
 
  738                                             paramValue(parm_name);
 
  743                                             port_value->
value(eval_value);
 
  745                                                 (FieldType)(eval_value);
 
  748                                         if (field == field_value)
 
  752                                         if (set_dirty && myHasCachedParms)
 
static const UT_StringHolder theNameKey
The key for the node name when writing the node to JSON. 
 
bool isBypassed() const 
Returns true if the node is bypassed. 
 
const UT_StringHolder & serviceName() const 
 
SYS_AtomicCounter myActiveGenerates
 
PDG_ServiceResetType myLoopResetType
 
PDG_SortOptions mySortOptions
 
GLuint GLsizei const GLchar * message
 
PDGE_Dependency * isCookedDep()
 
virtual bool queueWorkItem(PDG_WorkItem *work_item)
 
PDGE_Dependency myIsCookedDep
 
PDGE_Dependency myIsGeneratedDep
 
std::pair< iterator, bool > insert(const value_type &value)
 
RegenerateReason
Regeneration reasons. 
 
GLuint GLsizei const GLchar * label
 
RegenerateReason regenerateReason() const 
 
PDG_ServiceResetWhen myLoopResetWhen
 
UT_Array< PDG_Dependency * > myDependencies
 
virtual bool syncWorkItem(PDG_WorkItem *work_item, const PDG_WorkItem *parent, const PDG_WorkItem *clone_target)
 
UT_TBBSpinLock myModTimeCacheLock
 
UT_TBBSpinLock myOutputCacheLock
 
The node is not bypassed. 
 
PDG_File::Hash myLastStat
 
PDG_ServiceResetWhen loopResetWhen() const 
Returns the loop block's service reset conditoon. 
 
GLsizei const GLfloat * value
 
bool useServiceBlock() const 
 
void setIsErrorHandlerBranch(bool error_handler)
Sets the error handler branch flag on this node. 
 
const GLuint GLenum const void * binary
 
TargetedBy
Enumeration of targeting conditions. 
 
State
Evaluation context state. 
 
The item is uncooked and no cooked has been attempted yet. 
 
bool canHaveWorkItems() const 
 
void addSchedulerReference(PDG_Scheduler *scheduler)
 
void workItemsCopy(PDG_WorkItemArray &array, const Filter &filter) const 
 
PDG_GraphContext * context() const 
Returns the graph context that owns the node. 
 
void setBypassState(BypassState state)
Sets the bypassed flag on this node. 
 
bool isGenerating() const 
 
const UT_StringHolder & name() const 
Returns the node's unique name. 
 
const PDG_SchedulerSet & schedulerReferences() const 
 
Class which writes ASCII or binary JSON streams. 
 
bool isErrorHandlerBranch() const 
Returns true if the node is in an error handler branch. 
 
UT_StringHolder debugName() const override
 
PDG_NodeOptions myNodeOptions
 
virtual void addWarning(const UT_StringHolder &message) const 
Adds a warning to the node interface – implemented in subclasses. 
 
PDG_SchedulerSet mySchedulerReferences
 
UT_StringHolder myServiceName
 
UT_StringMap< ModTimeCacheEntry > myModTimeCache
 
PDG_WorkItemArray myWorkItems
 
PDGE_PropagateGroup * propagateGroup()
 
bool updateBypassState(BypassState state)
Updates the bypass flag of this node, if the new state is higher. 
 
PDG_NodeSet myStaticAncestors
 
bool isDynamicEval() const 
 
PDG_NodeCallbackPtr myCallback
 
PDG_NodeStats myNodeStats
 
void clearSchedulerReferences()
 
PDG_NodeType
Enumeration of node types in a PDG graph. 
 
int loopDepth() const 
Returns the loop dpeth of the node. 
 
void updateBuiltinField(PDG_NodeSet &dirty, const UT_StringHolder &parm_name, FieldType &field, const FieldType &default_value, bool set_dirty=true)
 
const PDG_SortOptions & sortOptions() const 
Returns the node's sort options struct. 
 
const PDG_NodeStats & stats() const 
Returns the node's stat object. 
 
UT_SharedPtr< PDG_NodeCallback > PDG_NodeCallbackPtr
 
const PDG_Node * myBeginNode
 
GLint GLint GLsizei GLint GLenum GLenum type
 
PDG_NodeArray myExtraInputs
 
bool isDynamicGeneration() const 
 
int64 Hash
The file hash/modtime type. 
 
RegenerateReason myRegenerateReason
 
bool isDynamicProp() const 
 
UT_RWLock & attributeLock() const 
 
PDG_NodeID getId() const 
Returns this node's id, it matches the TOP node id. 
 
void value(fpreal &value) const 
 
void setIsErrorHandler(bool error_handler)
Sets the error handler flag on this node. 
 
PDG_WorkItemState
Enum of possible work item states. 
 
static const UT_StringHolder theParametersKey
The key for the parameters when writing the node to JSON. 
 
constexpr auto set(type rhs) -> int
 
static const UT_StringHolder theSchedulerKey
The key for the scheduler name when writing the node to JSON. 
 
UT_StringHolder myServiceName
 
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class. 
 
PDG_ServiceResetWhen
When service clients should be reset. 
 
virtual void addError(const UT_StringHolder &message) const 
Adds an error to the node interface – implemented in subclasses. 
 
virtual PDG_WorkItemState updateOutputCache(PDG_WorkItem *work_item) const 
 
PDG_NodeState
Node state, used for UI/progress reporting. 
 
void applyDirty(bool remove_outputs)
Applies the stored dirty operation. 
 
virtual int64 getMemoryUsage(bool inclusive) const 
Returns the memory usage of this owner instance. 
 
The node is in a bypassed subnetwork. 
 
GLuint const GLchar * name
 
virtual const PDG_NodeInterface * templateInterface() const 
 
The node will be dirtied and caches invalidated. 
 
The node will be dirtied. 
 
SYS_AtomicCounter myTotalGenerates
 
static const UT_StringHolder theInputsKey
The key for the input nodes when writing the node to JSON. 
 
PDG_BatchWorkItemSet myBatchItems
 
Never queue work items in this node for cooking. 
 
BypassState
Bypass state for the node. 
 
PDG_GraphContext * myContext
 
bool myIsErrorHandlerBranch
 
BypassState bypassState() const 
 
virtual bool shouldSchedule(const PDG_WorkItem *work_item) const 
 
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
 
PDGE_Dependency * isGeneratedDep()
 
bool hasErrors() const 
Clears and checks the error flag. 
 
The node should regenerate work items. 
 
PDGE_PropagateGroup myPropagateGroup
 
int PDG_NodeID
Node ID type. 
 
void setCallback(PDG_NodeCallbackPtr callback)
 
UT_TBBSpinLock myWorkItemLock
 
UT_RWLock myAttributeLock
 
Class to store JSON objects as C++ objects. 
 
const PDG_WorkItemArray & workItems() const 
 
PDG_NodeSubtype
Enumeration of node subtypes. 
 
void updateRegenerateReason(RegenerateReason reason)
 
PDG_ServiceResetType myLoopResetType
 
PDGE_Dependency myCanGenerateDep
 
PDG_ServiceResetType loopResetType() const 
Returns the loop block's service reset type. 
 
PDG_ServiceResetWhen myLoopResetWhen
 
bool isErrorHandler() const 
Returns true if the node is an error handler. 
 
const PDG_NodeCallbackType * myTypeObject
 
No regeneration necessary. 
 
Reader/Writer mutex class. 
 
void setRegenerateReason(RegenerateReason reason)
 
PDGE_Dependency * canGenerateDep()
 
CookWhen
Enumerations of cook conditions. 
 
PDG_Scheduler * myScheduler
 
BypassState myBypassState
 
static const UT_StringHolder theTypeKey
The key for the node type when writing the node to JSON. 
 
UT_ArrayStringMap< PDG_CacheID > myOutputCache
 
PDG_PortType
Enumeration of node port types. 
 
virtual const PDG_EventFilter & supportedEventTypes() const =0
Returns the list of supported event types for this emitter. 
 
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
 
PDG_NodeCallback * callback() const