HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PDG_NodeCallback.h File Reference
#include "PDG_API.h"
#include "PDG_LogUtils.h"
#include "PDG_Node.h"
#include "PDG_Types.h"
#include <UT/UT_ParallelUtil.h>
#include <UT/UT_PerfMonAutoEvent.h>
#include <UT/UT_Performance.h>
#include <UT/UT_WorkBuffer.h>
+ Include dependency graph for PDG_NodeCallback.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PDG_NodeCallback
 

Macros

#define _PDG_INVOKE_CALLBACK(result, type, state, node, item,...)
 
#define PDG_NODE_CALLBACK(result, type, state, node,...)
 
#define PDG_TASK_CALLBACK(result, type, item)
 

Macro Definition Documentation

#define _PDG_INVOKE_CALLBACK (   result,
  type,
  state,
  node,
  item,
  ... 
)
Value:
{ \
PDG_LogUtils::eNodeDebugCallback, node, "CALLBACK on" #type, \
UT_WorkBuffer _event_path; \
bool path_has_item = node->performancePath(_event_path, #type, item); \
UT_PerfMonAutoPDGCookEvent event( \
_event_path.buffer(), (path_has_item ? nullptr : #type)); \
PDG_EvaluationContext::StateScope scope(SYSgetSTID(), state, \
false, node, item, node->context()); \
UTisolate([&]() \
{ \
try \
{\
result = node->callback()->postInvoke( \
node->callback()->on ## type (__VA_ARGS__)); \
} \
catch (...) \
{ \
}\
});\
}
static void nodeLog(NodeDebug level, const PDG_Node *node, const UT_StringHolder &tag, const UT_StringHolder &message)
Writes a verbose node output message to stdout.
**But if you need a result
Definition: thread.h:613
struct _cl_event * event
Definition: glcorearb.h:2961
Log node status + errors + warning + callback invocations.
Definition: PDG_LogUtils.h:84
The callback failed to execute.
static const UT_StringHolder theEmptyString
SYS_API int SYSgetSTID()
type
Definition: core.h:1059

Definition at line 23 of file PDG_NodeCallback.h.

#define PDG_NODE_CALLBACK (   result,
  type,
  state,
  node,
  ... 
)
Value:
{ \
if (node->callback()->hasCallback(PDG_NodeCallback::e ## type))\
{\
result, type, state, node, nullptr, __VA_ARGS__); \
}\
}
#define _PDG_INVOKE_CALLBACK(result, type, state, node, item,...)
**But if you need a result
Definition: thread.h:613
The callback is missing or undefined.
if(num_boxed_items<=0)
Definition: UT_RTreeImpl.h:697
type
Definition: core.h:1059

Definition at line 48 of file PDG_NodeCallback.h.

#define PDG_TASK_CALLBACK (   result,
  type,
  item 
)
Value:
{ \
if (item->node()->callback()->hasCallback(PDG_NodeCallback::e ## type)) \
{\
PDG_AttributeMap::ScopedLock<false> auto_lock(item->attributes()); \
item->node(), item, item); \
} \
}
#define _PDG_INVOKE_CALLBACK(result, type, state, node, item,...)
**But if you need a result
Definition: thread.h:613
The callback is missing or undefined.
if(num_boxed_items<=0)
Definition: UT_RTreeImpl.h:697
type
Definition: core.h:1059

Definition at line 58 of file PDG_NodeCallback.h.