cniDefineNodeClass
Use this function to define a node class, as specified by the name parameter, which is supported by the node factory specified as thefactoryObject parameter.
This function is called by the node during execution of bipGetMessageFlowNodeFactory, when the LIL file is loaded.
If both cniGetAttribute and cniGetAttribute2, or cniGetAttributeName and cniGetAttributeName2 are implemented, cniDefineNodeClass fails with CCI_INV_IMPL_FUNCTION.
Syntax
void cniDefineNodeClass(
int* returnCode,
CciFactory* factoryObject,
CciChar* name,
CNI_VFT* functbl);
Parameters
returnCode
- The return code from the function (output). Possible return codes are:
- CCI_SUCCESS
- CCI_EXCEPTION
- CCI_INV_FACTORY_OBJECT
- CCI_INV_NODE_NAME
- CCI_INV_OBJECT_NAME
- CCI_INV_VFTP
- CCI_MISSING_IMPL_FUNCTION
- CCI_NAME_EXISTS
factoryObject
- The address of the factory object that supports the named node. The address is returned from cniCreateNodeFactory (input).
name
- The name of the node to be defined. The name of the node must
end with the word
Node
(input).For example, if you have assigned the name as Basic in the IBM® App Connect Enterprise Toolkit, the class name of the node must be BasicNode.
functbl
- The address of the CNI_VFT structure that contains pointers to
the node implementation functions (input). Here is an example of a
function table:
vftable.iFpCreateNodeContext = _Transform_createNodeContext; vftable.iFpDeleteNodeContext = _deleteNodeContext; vftable.iFpGetAttributeName2 = _getAttributeName2; vftable.iFpSetAttribute = _setAttribute; vftable.iFpGetAttribute2 = _getAttribute2; vftable.iFpEvaluate = _Transform_evaluate; /* if not an input node */ vftable.iFRun = _run /* if an input node */
You would typically define only one of the last 2 entries, that is, you define
vftable.iFpEvaluate = _Transform_evaluate;
for a message processing node, or you definevftable.iFpRun = _run;
for an input node.
Return values
None. If an error occurs, the returnCode parameter indicates the reason for the error.