9 #ifndef __PDG_PROCESSOR_H__
10 #define __PDG_PROCESSOR_H__
115 bool inclusive)
const override;
120 {
return myPriorityType; }
124 {
return myCookType; }
130 return (myServiceStatus ==
131 eServiceStatusStarted);
136 {
return myServiceResetWhen; }
140 {
return myServiceResetType; }
151 void injectStaticItems(
162 PriorityType priority_type)
const;
187 bool has_filter)
override;
227 bool dynamic_inputs)
override;
243 eServiceStatusUnstarted,
246 eServiceStatusStarted,
249 eServiceStatusFailed,
252 eServiceStatusUnused,
257 bool workItemsForParent(
263 bool generateFromUpstream(
269 void addInternalDependencies(
282 void setWorkItemLabel(
287 void configureWorkItems(
292 void configureServices();
296 void checkDuplicateOutputs()
const;
302 PriorityType myPriorityType;
303 LabelType myLabelType;
304 GenerateWhen myGenerateWhen;
305 CacheMode myCacheMode;
308 ServiceStatus myServiceStatus;
312 mutable UT_Lock myServiceStatusLock;
315 bool myUseScheduleCondition;
PDG_ServiceResetType serviceResetType() const
Returns the reset type for service clients used by this node.
Automatic - checks if the file exists and uses it if it does.
LabelType
Labeling scheme that node can use when generating work item.
virtual PDGE_Dependency::State evalPartial(PDGE_Resolutions &, const PDGE_Evaluator &, PDGE_Dependency *, const Array &)
virtual bool deserializeWorkItem(PDG_WorkItem *work_item)
State
Evaluation context state.
PriorityType
Prioritization schemes that node can use when generating work items.
virtual void clearAllWorkItems()
friend class PDG_Processor
PDG_WorkItemCookType
Enumeration of work item cook types.
PDG_WorkItemCookType cookType() const
Returns the cook type for work items created by this node.
GenerateWhen
Enumeration of generation conditions.
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Generate work items when all inputs work items are generated.
Inherit the label from the parent item.
Generate work items when all inputs work items are cooked.
GLuint const GLchar * name
PDG_WorkItemState
Enum of possible work item states.
Set the priority based on an expression.
virtual void syncWorkItem(PDG_WorkItem *work_item, const PDG_WorkItem *clone_target)
Syncs data for the work item, using node-specific logic.
virtual void addInputDeps(PDG_Node *input_node)
**Note that the tasks the is the thread number *for the or if it s being executed by a non pool thread(this *can happen in cases where the whole pool is occupied and the calling *thread contributes to running the work load).**Thread pool.Have fun
PriorityType prioritizeBy() const
Set the label based on an expression.
bool preCook(PDG_NodeSet &dirty, PDG_NodeSet &visited, bool &save_scene, bool has_filter)
Runs precook logic for this node and recurses into input nodes.
virtual void commitWorkItem(PDG_WorkItem *work_item)
Called after a work item is completely deserialized.
~PDG_Processor() override
virtual bool shouldSchedule(const PDG_WorkItem *work_item) const
Generate work items each time an input work item cooks.
PDG_ServiceResetWhen
When service clients should be reset.
virtual PDGE_Dependency::State evalResolve(PDGE_Resolutions &, const PDGE_Evaluator &, PDGE_Dependency *)
Called when a dependency owned by this object is resolved.
PDG_ServiceResetWhen serviceResetWhen() const
Returns the condition when this node resets service clients.
virtual bool cacheBuiltinParms(PDG_NodeSet &dirty, bool dynamic_inputs)
void resetOwner() override
Resets the owner.
void addWorkItems(const PDG_WorkItemArray &work_items, PDG_EvaluationContext::State state, bool sort_items, bool add_batches)
virtual void clearWorkItem(PDG_WorkItem *work_item)
virtual void addWorkItem(PDG_WorkItem *work_item)
Automatic generation mode.
virtual void memoryInfo(PDG_MemoryInfo &memory_info, bool inclusive) const
Returns the memory usage as a PDG_MemoryInfo struct.
virtual PDG_WorkItemState isOutputCached(PDG_WorkItem *work_item) const