J-Integra® Espresso Programming Documentation (API)

ORB.create_recursive_tc Method

Creates a recursive TypeCode object. The parameter passed to create_recursive_tc specifies the repository id of the recursive type. Any TypeCode that contains a recursion always requires a corresponding enclosing TypeCode to be a valid. Otherwise a BAD_TYPECODE exception is thrown.

Example:

    
   struct GraphNode 
   {
     sequence<GraphNode> nodes;
   };
		    

The following code sample demonstrates the creation of a TypeCode for struct GraphNode:

 
 string node_id = "IDL:GraphNode:1.0";
 Ics.CORBA.TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(node_id));
 Ics.CORBA.StructMember[] members = { new Ics.CORBA.StructMember("nodes", recursiveSeqTC, null) };
 Ics.CORBA.TypeCode structGraphNodeTC = orb.create_struct_tc(node_id, "GraphNode", members);
			

The following recursion is illegal:

    
    Struct GraphNode
    {
      GraphNode next;
    };
			

Recursive types can only appear within sequences.

Ics.CORBA.TypeCode create_recursive_tc(
 string id,
);

Parameters

id
the repository id of the referenced type.

Return Value

the newly-created TypeCode object describing a recursive type.

Remarks

none

Exceptions

none

See Also

ORB Interface | ORB Members | Ics Namespace