#ifndef PXR_EXEC_VDF_NODE_PROCESS_INVALIDATION_INTERFACE_H
#define PXR_EXEC_VDF_NODE_PROCESS_INVALIDATION_INTERFACE_H
#include "pxr/pxr.h"
#include "pxr/exec/vdf/api.h"
#include "pxr/exec/vdf/types.h"
PXR_NAMESPACE_OPEN_SCOPE
class VdfExecutorInterface;
class VdfInputSpecs;
class VdfNetwork;
class VDF_API_TYPE VdfNodeProcessInvalidationInterface
{
public:
VDF_API
static void ProcessInvalidation(
const VdfExecutorInterface *executor,
const VdfNodeToInputPtrVectorMap &inputs);
VDF_API
static void ProcessInvalidation(
const VdfExecutorInterface *executor,
const VdfNodeProcessInvalidationInterface &node,
const VdfInputPtrVector &inputs);
protected:
virtual void _ProcessInvalidation(
const VdfInputPtrVector *inputs,
const VdfExecutorInterface *executor) const = 0;
VDF_API
static void _ProcessInvalidationForEntry(
const VdfExecutorInterface *executor,
const VdfNodeToInputPtrVectorMap::value_type &entry);
VDF_API
virtual ~VdfNodeProcessInvalidationInterface();
};
PXR_NAMESPACE_CLOSE_SCOPE
#endif