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 define vftable.iFpRun = _run; for an input node.

Return values

None. If an error occurs, the returnCode parameter indicates the reason for the error.