HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_OpCaller Class Referenceabstract

#include <UT_OpCaller.h>

+ Inheritance diagram for UT_OpCaller:

Public Member Functions

 UT_OpCaller ()
 
virtual ~UT_OpCaller ()
 
virtual int getOpId ()=0
 Callee's might want to find out the unique id of the caller. The /. More...
 
virtual void referenceOtherOp (int opid, UT_OpCallee *cache, bool flaginterest, bool spareinterest=false)=0
 
virtual void referenceOtherParameter (int opid, int pi, int vi, bool add_timedep=true)=0
 Reference a specific parameter. More...
 
void notifyCalleeWhenDone (UT_OpCallee *cache)
 
bool willNotifyCalleeWhenDone (UT_OpCallee *cache)
 Checks if this caller will notify the given callee when done with VEX. More...
 

Protected Member Functions

void notifyCalleesThatDone ()
 Notify the callees that the caller object is done with VEX. More...
 

Detailed Description

General documentation for the UT_OpCaller class.

In some cases during the cook of an OP Node, calls will be made into low level libraries. These libraries may have callback mechanisms to reference data from other existing OPs, but without any dependencies on OPs themselves. For example, in resolving the "op:some-op-path" paths, the low level libraries don't actually know about OPs, but rely on callbacks to perform the evaluation.

However, the caller OP (the OP cooking) isn't notified of these additional dependencies and so doesn't end up cooking properly. This pair of classes provides a mechanism for implementing the appropriate dependencies. Prior to cooking, the OP can create a UT_Caller class which acts as a sink for all the OP references which get made. At the conclusion of the cook, the OP can then call back to all the classes which made the references (the OP_Callee classes) and notify them that the data they built is no longer required.

This class is primarily used by VEX at the current time.

Definition at line 39 of file UT_OpCaller.h.

Constructor & Destructor Documentation

UT_OpCaller::UT_OpCaller ( )

This class provides a virtual interface to OP_Nodes so that they can query the op-node which is being evaluated.

virtual UT_OpCaller::~UT_OpCaller ( )
virtual

Member Function Documentation

virtual int UT_OpCaller::getOpId ( )
pure virtual

Callee's might want to find out the unique id of the caller. The /.

Implemented in OP_Caller.

void UT_OpCaller::notifyCalleesThatDone ( )
protected

Notify the callees that the caller object is done with VEX.

void UT_OpCaller::notifyCalleeWhenDone ( UT_OpCallee cache)

Registers an interest of the callee to be notified by calling its virtual done() method, when the caller is done with all VEX data.

virtual void UT_OpCaller::referenceOtherOp ( int  opid,
UT_OpCallee cache,
bool  flaginterest,
bool  spareinterest = false 
)
pure virtual

The referenceOtherOp() method is called when a callee magically references another operator. This might happen when referencing a file using the "op:soppath" syntax. At the conclusion of cooking, this cache should be notified that the OP is done with the data.

Implemented in OP_Caller.

virtual void UT_OpCaller::referenceOtherParameter ( int  opid,
int  pi,
int  vi,
bool  add_timedep = true 
)
pure virtual

Reference a specific parameter.

Implemented in OP_Caller.

bool UT_OpCaller::willNotifyCalleeWhenDone ( UT_OpCallee cache)

Checks if this caller will notify the given callee when done with VEX.


The documentation for this class was generated from the following file: