openDAQ
Open data acquisition platform
IProcedure Struct Referenceabstract

Holds a callback function without return value. More...

+ Inheritance diagram for IProcedure:
+ Collaboration diagram for IProcedure:

Detailed Description

Holds a callback function without return value.

Represents a callable object without return value. The openDAQ SDK uses this interface when it needs to make a call back to the client.

Although the implementation of this interface is provided by openDAQ, C++ and other bindings provide their implementation which allows passing function as a lambda functions and other constructs.

Available factories:

// Creates a new Procedure object. Throws exception if not successful.
IFunction* Procedure_Create(ProcCall value)
// Creates a new Procedure object. Returns error code if not successful.
ErrCode createProcedure(IFuncObject** obj, ProcCall value)

Public Member Functions

virtual ErrCode INTERFACE_FUNC dispatch (IBaseObject *params)=0
 Calls the stored callback. More...
 
- Public Member Functions inherited from IBaseObject
virtual ErrCode INTERFACE_FUNC borrowInterface (const IntfID &intfID, void **obj) const =0
 Returns another interface which is supported by the object without incrementing the reference count. More...
 
virtual ErrCode INTERFACE_FUNC dispose ()=0
 Disposes all references held by the object. More...
 
virtual ErrCode INTERFACE_FUNC getHashCode (SizeT *hashCode)=0
 Returns hash code of the object. More...
 
virtual ErrCode INTERFACE_FUNC equals (IBaseObject *other, Bool *equal) const =0
 Compares object to another object for equality. More...
 
virtual ErrCode INTERFACE_FUNC toString (CharPtr *str)=0
 Returns a string representation of the object. More...
 
- Public Member Functions inherited from IUnknown
virtual ErrCode INTERFACE_FUNC queryInterface (const IntfID &intfID, void **obj)=0
 Returns another interface which is supported by the object and increments the reference count. More...
 
virtual int INTERFACE_FUNC addRef ()=0
 Increments the reference count for an interface on an object. More...
 
virtual int INTERFACE_FUNC releaseRef ()=0
 Decrements the reference count for an interface on an object. More...
 

Member Function Documentation

◆ dispatch()

virtual ErrCode INTERFACE_FUNC dispatch ( IBaseObject params)
pure virtual

Calls the stored callback.

Parameters
paramsParameters passed to the callback.

If the callback expects no parameters, the params parameter has to be nullptr. If it expects a single parameter, pass any openDAQ object as the params parameter. If it expects multiple parameters, pass an IList<IBaseObject> as the params parameter.

IFunction
Holds a callback function.
Definition: function.h:51
ProcCall
ErrCode(* ProcCall)(IBaseObject *)
Function pointer to callback without return value.
Definition: procedure.h:30
ErrCode
BEGIN_NAMESPACE_OPENDAQ typedef uint32_t ErrCode
Definition: common.h:60