RTI Connext Java API  Version 5.0.0
TypeCode Class Reference

The definition of a particular data type, which you can use to inspect the name, members, and other properties of types generated with rtiddsgen or to modify types you define yourself at runtime. More...

Inherits Serializable.

Public Member Functions

TCKind kind ()
 Gets the com.rti.dds.typecode.TCKind value of a type code.
 
ExtensibilityKind extensibility_kind ()
 Gets the com.rti.dds.typecode.ExtensibilityKind value of a type code.
 
boolean equal (TypeCode tc)
 Compares two com.rti.dds.typecode.TypeCode objects for equality.
 
boolean equals (Object tc)
 Compares two com.rti.dds.typecode.TypeCode objects for equality.
 
boolean assignable (TypeCode from)
 Checks if this com.rti.dds.typecode.TypeCode is assignable from the input com.rti.dds.typecode.TypeCode.
 
int length () throws BadKind
 Returns the number of elements in the type described by this type code.
 
String name () throws BadKind
 Retrieves the simple name identifying this com.rti.dds.typecode.TypeCode object within its enclosing scope.
 
boolean is_alias_pointer () throws BadKind
 Function that tells if an alias is a pointer or not.
 
short type_modifier () throws BadKind
 Returns a constant indicating the modifier of the value type that this com.rti.dds.typecode.TypeCode object describes.
 
TypeCode concrete_base_type () throws BadKind
 Returns the com.rti.dds.typecode.TypeCode that describes the concrete base type of the value type that this com.rti.dds.typecode.TypeCode object describes.
 
TypeCode content_type () throws BadKind
 Returns the com.rti.dds.typecode.TypeCode object representing the type for the members of the object described by this com.rti.dds.typecode.TypeCode object.
 
int array_dimension_count () throws BadKind
 This function returns the number of dimensions of an array type code.
 
int array_dimension (int index) throws BadKind,Bounds
 This function returns the index-th dimension of an array type code.
 
int element_count () throws BadKind
 The number of elements in an array.
 
int member_count () throws BadKind
 Returns the number of members of the type code.
 
String member_name (int index) throws BadKind,Bounds
 Returns the name of a type code member identified by the given index.
 
TypeCode member_type (int index) throws BadKind,Bounds
 Retrieves the com.rti.dds.typecode.TypeCode object describing the type of the member identified by the given index.
 
int member_id (int index) throws BadKind,Bounds
 Returns the ID of a sparse type code member identified by the given index.
 
int member_label_count (int index) throws BadKind,Bounds
 Returns the number of labels associated to the index-th union member.
 
int member_label (int member_index, int label_index) throws BadKind,Bounds
 Return the label_index-th label associated to the member_index-th member.
 
int member_ordinal (int index) throws BadKind,Bounds
 Returns the ordinal that corresponds to the index-th enum value.
 
boolean is_member_key (int index) throws BadKind,Bounds
 Function that tells if a member is a key or not.
 
boolean is_member_required (int index) throws BadKind,Bounds
 Indicates whether a given member of a type is required to be present in every sample of that type.
 
boolean is_member_pointer (int index) throws BadKind,Bounds
 Function that tells if a member is a pointer or not.
 
boolean is_member_bitfield (int index) throws BadKind,Bounds
 Function that tells if a member is a bitfield or not.
 
short member_bitfield_bits (int index) throws BadKind,Bounds
 Returns the number of bits of a bitfield member.
 
short member_visibility (int index) throws BadKind,Bounds
 Returns the constant that indicates the visibility of the index-th member.
 
TypeCode discriminator_type () throws BadKind
 Returns the discriminator type code.
 
int default_index () throws BadKind
 Returns the index of the default member, or -1 if there is no default member.
 
int find_member_by_id (int id) throws BadKind
 Get the index of the member of the given ID.
 
int find_member_by_name (String name) throws BadKind
 Get the index of the member of the given name.
 
void print_IDL (int indent)
 Prints a com.rti.dds.typecode.TypeCode in a pseudo-IDL notation.
 
void print_IDL (int indent, java.io.Writer out) throws IOException
 Prints a com.rti.dds.typecode.TypeCode in a pseudo-IDL notation.
 
int add_member (String name, int id, TypeCode tc, byte member_flags) throws BadKind,BadMemberName,BadMemberId
 Add a new member to this com.rti.dds.typecode.TypeCode.
 
synchronized int add_member (String name, int id, TypeCode tc, byte member_flags, short visibility, boolean is_pointer, short bits) throws BadKind,BadMemberName,BadMemberId,BAD_PARAM,IllegalStateException
 Add a new member to this com.rti.dds.typecode.TypeCode.
 
synchronized int add_member_to_enum (String name, int ordinal) throws BadKind,BadMemberName
 Add a new enumerated constant to this enum com.rti.dds.typecode.TypeCode.
 
String signature () throws RETCODE_ERROR
 Gets an MD5 signature of the com.rti.dds.typecode.TypeCode.
 

Static Public Attributes

static final TypeCode TC_NULL
 Basic null type.
 
static final TypeCode TC_SHORT
 Basic 16-bit signed integer type.
 
static final TypeCode TC_LONG
 Basic 32-bit signed integer type.
 
static final TypeCode TC_USHORT
 Basic unsigned 16-bit integer type.
 
static final TypeCode TC_ULONG
 Basic unsigned 32-bit integer type.
 
static final TypeCode TC_FLOAT
 Basic 32-bit floating point type.
 
static final TypeCode TC_DOUBLE
 Basic 64-bit floating point type.
 
static final TypeCode TC_BOOLEAN
 Basic Boolean type.
 
static final TypeCode TC_CHAR
 Basic single-byte character type.
 
static final TypeCode TC_OCTET
 Basic octet/byte type.
 
static final TypeCode TC_LONGLONG
 Basic 64-bit integer type.
 
static final TypeCode TC_ULONGLONG
 Basic unsigned 64-bit integer type.
 
static final TypeCode TC_LONGDOUBLE
 Basic 128-bit floating point type.
 
static final TypeCode TC_WCHAR
 Basic four-byte character type.
 
static final int MEMBER_ID_INVALID
 A sentinel indicating an invalid com.rti.dds.typecode.TypeCode member ID.
 
static final int MEMBER_ID_SPARSE_UNSPECIFIED = 0
 
static final int INDEX_INVALID
 A sentinel indicating an invalid com.rti.dds.typecode.TypeCode member index.
 
static final byte NONKEY_MEMBER
 A flag indicating that a type member is optional and not part of the key.
 
static final byte KEY_MEMBER
 A flag indicating that a type member is part of the key for that type, and therefore required.
 
static final byte NONKEY_REQUIRED_MEMBER
 A flag indicating that a type member is not part of the key but is nevertheless required.
 
static final short NOT_BITFIELD
 Indicates that a member of a type is not a bitfield.
 

Detailed Description

The definition of a particular data type, which you can use to inspect the name, members, and other properties of types generated with rtiddsgen or to modify types you define yourself at runtime.

You create com.rti.dds.typecode.TypeCode objects using the com.rti.dds.typecode.TypeCodeFactory singleton. Then you can use the methods on this class to inspect and modify the data type definition.

This class is based on a similar class from CORBA.

MT Safety:
SAFE for read-only access, UNSAFE for modification. Modifying a single com.rti.dds.typecode.TypeCode object concurrently from multiple threads is unsafe. Modifying a com.rti.dds.typecode.TypeCode from a single thread while concurrently reading the state of that com.rti.dds.typecode.TypeCode from another thread is also unsafe. However, reading the state of a com.rti.dds.typecode.TypeCode concurrently from multiple threads, without any modification, is safe.
See Also
http://java.sun.com/javase/6/docs/api/org/omg/CORBA/TypeCode.html

Member Function Documentation

TCKind kind ( )

Gets the com.rti.dds.typecode.TCKind value of a type code.

Retrieves the kind of this com.rti.dds.typecode.TypeCode object. The kind of a type code determines which com.rti.dds.typecode.TypeCode methods may legally be invoked on it.

MT Safety:
SAFE.
Returns
The type code kind.
ExtensibilityKind extensibility_kind ( )

Gets the com.rti.dds.typecode.ExtensibilityKind value of a type code.

Retrieves the extensibility kind of this com.rti.dds.typecode.TypeCode object.

In some cases, it is desirable for types to evolve without breaking interoperability with deployed components already using those types. For example:

  • A new set of applications to be integrated into an existing system may want to introduce additional fields into a structure. These new fields can be safely ignored by already deployed applications, but applications that do understand the new fields can benefit from their presence.

  • A new set of applications to be integrated into an existing system may want to increase the maximum size of some sequence or string in a Type. Existing applications can receive data samples from these new applications as long as the actual number of elements (or length of the strings) in the received data sample does not exceed what the receiving applications expects. If a received data sample exceeds the limits expected by the receiving application, then the sample can be safely ignored (filtered out) by the receiver.

In order to support use cases such as these, the type system introduces the concept of extensible and mutable types.

  • A type may be final, indicating that the range of its possible data values is strictly defined. In particular, it is not possible to add elements to members of collection or aggregated types while maintaining type assignability.

  • A type may be extensible, indicating that two types, where one contains all of the elements/members of the other plus additional elements/members appended to the end, may remain assignable.

  • A type may be mutable, indicating that two types may differ from one another in the additional, removal, and/or transposition of elements/members while remaining assignable.

The extensibility of com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION, com.rti.dds.typecode.TCKind.TK_VALUE, and com.rti.dds.typecode.TCKind.TK_ENUM can be change using the built-in “Extensibility” annotation when the type is declared.

IDL example:

struct MyType {
long member_1;
} //@Extensibility EXTENSIBLE_EXTENSIBILITY

XML example:

<struct name="MyType" extensibility="extensible">
<member name="member_1" type="long"/>
</struct>

XSD example:

<xsd:complexType name="MyType">
<xsd:sequence>
<xsd:element name="member_1" minOccurs="1" maxOccurs="1" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<!-- @struct true -->
<!-- @extensibility EXTENSIBLE_EXTENSIBILITY -->

For TypeCodes built at run-time using the com.rti.dds.typecode.TypeCodeFactory API, the extensibility can be provided as a parameter of the following APIs:

See Also
com.rti.dds.typecode.ExtensibilityKind
MT Safety:
SAFE.
Returns
The type code extensibility kind.
boolean equal ( TypeCode  tc)

Compares two com.rti.dds.typecode.TypeCode objects for equality.

MT Safety:
SAFE.

For equality and assignability purposes, com.rti.dds.typecode.TCKind.TK_STRUCT and com.rti.dds.typecode.TCKind.TK_VALUE are considered equivalent.

The com.rti.dds.typecode.TypeCode of structs inheriting from other structs has a com.rti.dds.typecode.TCKind.TK_VALUE kind.

For example:

struct MyStruct: MyBaseStruct {
long member_1;
};

The code generation for the previous type will generate a com.rti.dds.typecode.TypeCode with com.rti.dds.typecode.TCKind.TK_VALUE kind.

Parameters
tc<<in>> Type code that will be compared with this com.rti.dds.typecode.TypeCode.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BAD_PARAMif tc is null.
Returns
com.rti.dds.infrastructure.true if the type codes are equal. Otherwise, com.rti.dds.infrastructure.false.
See Also
http://java.sun.com/javase/6/docs/api/org/omg/CORBA/TypeCode.html#equal(org.omg.CORBA.TypeCode)
boolean equals ( Object  tc)

Compares two com.rti.dds.typecode.TypeCode objects for equality.

MT Safety:
SAFE.
Parameters
tc<<in>> Type code that will be compared with this com.rti.dds.typecode.TypeCode.
Returns
com.rti.dds.infrastructure.true if the type codes are equal. Otherwise, com.rti.dds.infrastructure.false.
See Also
http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals(java.lang.Object)
boolean assignable ( TypeCode  from)

Checks if this com.rti.dds.typecode.TypeCode is assignable from the input com.rti.dds.typecode.TypeCode.

MT Safety:
SAFE.

This method checks if this type code is assignable from the type code provided as a parameter.

In order to maintain the loose coupling between data producers and consumers, especially as systems change over time, it is desirable that the two be permitted to use slightly different versions of a type, and that the infrastructure perform any necessary translation. To support type evolution and inheritance the type system defines the “is-assignable-from” directed binary relationship between every pair of types in the Type System.

Intuitively, if T1 is-assignable-from T2, it means that in general it is possible, in a structural way, to set the contents of an object of type T1 to the contents of an object of T2 (or perhaps a subset of those contents) without leading to incorrect interpretations of that information.

For example:

struct MyBaseType {
long member_1;
};
struct MyDerivedType: MyBaseType {
long member_2;
};

The previous two types that are related to each other by an inheritance relationship are assignable.

For additional information on type assignability refer to the OMG Extensible and Dynamic Topic Types for DDS Specification.

Parameters
from<<in>> From type code
Returns
com.rti.dds.infrastructure.true if the "this" is assignable from "from". Otherwise, com.rti.dds.infrastructure.false.
int length ( ) throws BadKind

Returns the number of elements in the type described by this type code.

Length is:

  • The maximum length of the string for string type codes.
  • The maximum length of the sequence for sequence type codes.
  • The first dimension of the array for array type codes.
Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ARRAY, com.rti.dds.typecode.TCKind.TK_SEQUENCE, com.rti.dds.typecode.TCKind.TK_STRING or com.rti.dds.typecode.TCKind.TK_WSTRING.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
The bound for strings and sequences, or the number of elements for arrays if no errors.
String name ( ) throws BadKind

Retrieves the simple name identifying this com.rti.dds.typecode.TypeCode object within its enclosing scope.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION, com.rti.dds.typecode.TCKind.TK_ENUM, com.rti.dds.typecode.TCKind.TK_VALUE, com.rti.dds.typecode.TCKind.TK_SPARSE or com.rti.dds.typecode.TCKind.TK_ALIAS.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
Name of the type code if no errors.
boolean is_alias_pointer ( ) throws BadKind

Function that tells if an alias is a pointer or not.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ALIAS.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
com.rti.dds.infrastructure.true if an alias is a pointer to the aliased type. Otherwise, com.rti.dds.infrastructure.false.
short type_modifier ( ) throws BadKind

Returns a constant indicating the modifier of the value type that this com.rti.dds.typecode.TypeCode object describes.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_VALUE, com.rti.dds.typecode.TCKind.TK_STRUCT, or com.rti.dds.typecode.TCKind.TK_SPARSE.

For com.rti.dds.typecode.TCKind.TK_STRUCT, this method always returns com.rti.dds.typecode.ValueModifier.VM_NONE.

MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
One of the following type modifiers: com.rti.dds.typecode.ValueModifier.VM_NONE, com.rti.dds.typecode.ValueModifier.VM_ABSTRACT, com.rti.dds.typecode.ValueModifier.VM_CUSTOM or com.rti.dds.typecode.ValueModifier.VM_TRUNCATABLE.
TypeCode concrete_base_type ( ) throws BadKind

Returns the com.rti.dds.typecode.TypeCode that describes the concrete base type of the value type that this com.rti.dds.typecode.TypeCode object describes.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_VALUE, com.rti.dds.typecode.TCKind.TK_STRUCT, or com.rti.dds.typecode.TCKind.TK_SPARSE.
MT Safety:
SAFE.

For com.rti.dds.typecode.TCKind.TK_STRUCT, this method always returns com.rti.dds.typecode.TCKind.TK_NULL.

The com.rti.dds.typecode.TypeCode of structs inheriting from other structs has a com.rti.dds.typecode.TCKind.TK_VALUE kind.

For example:

struct MyStruct: MyBaseStruct {
long member_1;
};

The code generation for the previous type will generate a com.rti.dds.typecode.TypeCode with com.rti.dds.typecode.TCKind.TK_VALUE kind.

Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
com.rti.dds.typecode.TypeCode that describes the concrete base type or null if there is no a concrete base type.
TypeCode content_type ( ) throws BadKind

Returns the com.rti.dds.typecode.TypeCode object representing the type for the members of the object described by this com.rti.dds.typecode.TypeCode object.

For sequences and arrays, it returns the element type. For aliases, it returns the original type.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ARRAY, com.rti.dds.typecode.TCKind.TK_SEQUENCE or com.rti.dds.typecode.TCKind.TK_ALIAS.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
A com.rti.dds.typecode.TypeCode object representing the element type for sequences and arrays, and the original type for aliases.
int array_dimension_count ( ) throws BadKind

This function returns the number of dimensions of an array type code.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ARRAY.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
Number of dimensions if no errors.
int array_dimension ( int  index) throws BadKind,Bounds

This function returns the index-th dimension of an array type code.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ARRAY.
Dimension index in the interval [0,(dimensions count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Dimension index in the interval [0,(dimensions count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
Requested dimension if no errors.
int element_count ( ) throws BadKind

The number of elements in an array.

This operation isn't relevant for other kinds of types.

MT Safety:
SAFE.
int member_count ( ) throws BadKind

Returns the number of members of the type code.

The method member_count can be invoked on structure, union, and enumeration com.rti.dds.typecode.TypeCode objects.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION, com.rti.dds.typecode.TCKind.TK_ENUM, com.rti.dds.typecode.TCKind.TK_VALUE or com.rti.dds.typecode.TCKind.TK_SPARSE.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
The number of members constituting the type described by this com.rti.dds.typecode.TypeCode object if no errors.
String member_name ( int  index) throws BadKind,Bounds

Returns the name of a type code member identified by the given index.

The method member_name can be invoked on structure, union, and enumeration com.rti.dds.typecode.TypeCode objects.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION, com.rti.dds.typecode.TCKind.TK_ENUM, com.rti.dds.typecode.TCKind.TK_VALUE or com.rti.dds.typecode.TCKind.TK_SPARSE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
Name of the member if no errors.
TypeCode member_type ( int  index) throws BadKind,Bounds

Retrieves the com.rti.dds.typecode.TypeCode object describing the type of the member identified by the given index.

The method member_type can be invoked on structure and union type codes.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION, com.rti.dds.typecode.TCKind.TK_VALUE or com.rti.dds.typecode.TCKind.TK_SPARSE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
The com.rti.dds.typecode.TypeCode object describing the member at the given index if no errors.
int member_id ( int  index) throws BadKind,Bounds

Returns the ID of a sparse type code member identified by the given index.

The method can be invoked on sparse com.rti.dds.typecode.TypeCode objects.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_SPARSE.
Member index in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
ID of the member if no errors.
int member_label_count ( int  index) throws BadKind,Bounds

Returns the number of labels associated to the index-th union member.

The method can be invoked on union com.rti.dds.typecode.TypeCode objects.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_UNION.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
Number of labels if no errors.
int member_label ( int  member_index,
int  label_index 
) throws BadKind,Bounds

Return the label_index-th label associated to the member_index-th member.

This method has been modified for RTI Connext from the CORBA Type code Specification.

Example:
  case 1: Label index 0
  case 2: Label index 1
    short short_member;

The method can be invoked on union com.rti.dds.typecode.TypeCode objects.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_UNION.
The member_index param must be in the interval [0,(member count-1)].
The label_index param must be in the interval [0,(member labels count-1)].
MT Safety:
SAFE.
Parameters
member_index<<in>> Member index.
label_index<<in>> Label index.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
The evaluated value of the label if no errors.
int member_ordinal ( int  index) throws BadKind,Bounds

Returns the ordinal that corresponds to the index-th enum value.

The method can be invoked on enum com.rti.dds.typecode.TypeCode objects.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_ENUM.
Member index in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
Ordinal that corresponds to the index-th enumerator if no errors.
boolean is_member_key ( int  index) throws BadKind,Bounds

Function that tells if a member is a key or not.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_VALUE or com.rti.dds.typecode.TCKind.TK_SPARSE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
com.rti.dds.infrastructure.true if the member is a key. Otherwise, com.rti.dds.infrastructure.false.
boolean is_member_required ( int  index) throws BadKind,Bounds

Indicates whether a given member of a type is required to be present in every sample of that type.

Which fields are required depends on the com.rti.dds.typecode.TCKind of the type. For example, in a type of kind com.rti.dds.typecode.TCKind.TK_SPARSE, key fields are required. In com.rti.dds.typecode.TCKind.TK_STRUCT and com.rti.dds.typecode.TCKind.TK_VALUE types, all fields are required.

MT Safety:
SAFE.
boolean is_member_pointer ( int  index) throws BadKind,Bounds

Function that tells if a member is a pointer or not.

The method is_member_pointer can be invoked on union and structs type objects

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT, com.rti.dds.typecode.TCKind.TK_UNION or com.rti.dds.typecode.TCKind.TK_VALUE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Index of the member for which type information is begin requested.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
com.rti.dds.infrastructure.true if the member is a pointer. Otherwise, com.rti.dds.infrastructure.false.
boolean is_member_bitfield ( int  index) throws BadKind,Bounds

Function that tells if a member is a bitfield or not.

The method can be invoked on struct type objects.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT or com.rti.dds.typecode.TCKind.TK_VALUE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
com.rti.dds.infrastructure.true if the member is a bitfield. Otherwise, com.rti.dds.infrastructure.false.
short member_bitfield_bits ( int  index) throws BadKind,Bounds

Returns the number of bits of a bitfield member.

The method can be invoked on struct type objects.

This function is an RTI Connext extension to the CORBA Type Code Specification.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_STRUCT or com.rti.dds.typecode.TCKind.TK_VALUE.
The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.
Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
The number of bits of the bitfield or com.rti.dds.typecode.TypeCode.NOT_BITFIELD if the member is not a bitfield.
short member_visibility ( int  index) throws BadKind,Bounds

Returns the constant that indicates the visibility of the index-th member.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_VALUE, com.rti.dds.typecode.TCKind.TK_STRUCT or com.rti.dds.typecode.TCKind.TK_SPARSE. The index param must be in the interval [0,(member count-1)].
MT Safety:
SAFE.

For com.rti.dds.typecode.TCKind.TK_STRUCT, this method always returns com.rti.dds.typecode.Visibility.PUBLIC_MEMBER.

Parameters
index<<in>> Member index in the interval [0,(member count-1)].
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
com.rti.dds.infrastructure.ExceptionCode_t.Bounds- if the index parameter/s are out of range.
Returns
One of the following constants: com.rti.dds.typecode.Visibility.PRIVATE_MEMBER or com.rti.dds.typecode.Visibility.PUBLIC_MEMBER.
TypeCode discriminator_type ( ) throws BadKind

Returns the discriminator type code.

The method discriminator_type can be invoked only on union com.rti.dds.typecode.TypeCode objects.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_UNION.
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
com.rti.dds.typecode.TypeCode object describing the discriminator of the union type if no errors.
int default_index ( ) throws BadKind

Returns the index of the default member, or -1 if there is no default member.

The method default_index can be invoked only on union com.rti.dds.typecode.TypeCode objects.

Precondition
self kind is com.rti.dds.typecode.TCKind.TK_UNION
MT Safety:
SAFE.
Exceptions
com.rti.dds.infrastructure.ExceptionCode_t.BadKindif the method is invoked on an inappropriate kind of TypeCode object.
Returns
The index of the default member, or -1 if there is no default member.
int find_member_by_id ( int  id) throws BadKind

Get the index of the member of the given ID.

MT Safety:
SAFE.
int find_member_by_name ( String  name) throws BadKind

Get the index of the member of the given name.

MT Safety:
SAFE.
void print_IDL ( int  indent)

Prints a com.rti.dds.typecode.TypeCode in a pseudo-IDL notation.

MT Safety:
SAFE.
Parameters
indent<<in>> Indent.
void print_IDL ( int  indent,
java.io.Writer  out 
) throws IOException

Prints a com.rti.dds.typecode.TypeCode in a pseudo-IDL notation.

MT Safety:
SAFE.
Parameters
indent<<in>> Indent.
out<<out>> Output stream.
int add_member ( String  name,
int  id,
TypeCode  tc,
byte  member_flags 
) throws BadKind,BadMemberName,BadMemberId

Add a new member to this com.rti.dds.typecode.TypeCode.

This method is applicable to com.rti.dds.typecode.TypeCode objects representing structures (com.rti.dds.typecode.TCKind.TK_STRUCT), value types (com.rti.dds.typecode.TCKind.TK_VALUE), sparse value types (com.rti.dds.typecode.TCKind.TK_SPARSE), and unions (com.rti.dds.typecode.TCKind.TK_UNION). To add a constant to an enumeration, see com.rti.dds.typecode.TypeCode.add_member_to_enum.

Modifying a com.rti.dds.typecode.TypeCode – such as by adding a member – is important if you are using the Dynamic Data APIs.

Here's a simple code example that adds two fields to a data type, one an integer and another a sequence of integers.

// Integer:
myTypeCode.add_member(
"myFieldName",
// If the type is sparse, specify an ID. Otherwise, use this sentinel:
TypeCode.MEMBER_ID_INVALID,
TypeCode.TC_LONG,
// New field is not a key:
TypeCode.NONKEY_REQUIRED_MEMBER);
// Sequence of 10 or fewer integers:
myTypeCode.add_member(
"myFieldName",
// If the type is sparse, specify an ID. Otherwise, use this sentinel:
TypeCode.MEMBER_ID_INVALID,
TypeCodeFactory.get_instance().create_sequence_tc(10, TypeCode.TC_LONG),
// New field is not a key:
TypeCode.NONKEY_REQUIRED_MEMBER);
MT Safety:
UNSAFE.
Parameters
name<<in>> The name of the new member.
id<<in>> The ID of the new member. This should only be specified for members of kind com.rti.dds.typecode.TCKind.TK_SPARSE and com.rti.dds.typecode.TCKind.TK_UNION; otherwise, it should be com.rti.dds.typecode.TypeCode.MEMBER_ID_INVALID.
tc<<in>> The type of the new member. You can get or create this com.rti.dds.typecode.TypeCode with the com.rti.dds.typecode.TypeCodeFactory.
member_flags<<in>> Indicates whether the member is part of the key and whether it is required.
Returns
The zero-based index of the new member relative to any other members that previously existed.
See Also
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.add_member_to_enum
com.rti.dds.typecode.TypeCodeFactory
com.rti.dds.typecode.TypeCode.NONKEY_MEMBER
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER
synchronized int add_member ( String  name,
int  id,
TypeCode  tc,
byte  member_flags,
short  visibility,
boolean  is_pointer,
short  bits 
) throws BadKind,BadMemberName,BadMemberId,BAD_PARAM,IllegalStateException

Add a new member to this com.rti.dds.typecode.TypeCode.

Modifying a com.rti.dds.typecode.TypeCode – such as by adding a member – is important if you are using the Dynamic Data APIs.

MT Safety:
UNSAFE.
Parameters
name<<in>> The name of the new member.
id<<in>> The ID of the new member. This should only be specified for members of kind com.rti.dds.typecode.TCKind.TK_SPARSE and com.rti.dds.typecode.TCKind.TK_UNION; otherwise, it should be com.rti.dds.typecode.TypeCode.MEMBER_ID_INVALID.
tc<<in>> The type of the new member. You can get or create this com.rti.dds.typecode.TypeCode with the com.rti.dds.typecode.TypeCodeFactory.
member_flags<<in>> Indicates whether the member is part of the key and whether it is required.
visibility<<in>> Whether the new member is public or private. Non-public members are only relevant for types of kind com.rti.dds.typecode.TCKind.TK_VALUE and com.rti.dds.typecode.TCKind.TK_SPARSE. Possible values include:
  • com.rti.dds.typecode.Visibility.PRIVATE_MEMBER
  • com.rti.dds.typecode.Visibility.PUBLIC_MEMBER
is_pointer<<in>> Whether the data member, in its deserialized form, should be stored by pointer as opposed to by value.
bits<<in>> The number of bits, if this new member is a bit field, or com.rti.dds.typecode.TypeCode.NOT_BITFIELD.
Returns
The zero-based index of the new member relative to any other members that previously existed.
See Also
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCodeFactory
com.rti.dds.typecode.TypeCode.NONKEY_MEMBER
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER
synchronized int add_member_to_enum ( String  name,
int  ordinal 
) throws BadKind,BadMemberName

Add a new enumerated constant to this enum com.rti.dds.typecode.TypeCode.

This method is applicable to com.rti.dds.typecode.TypeCode objects representing enumerations (com.rti.dds.typecode.TCKind.TK_ENUM). To add a field to a structured type, see com.rti.dds.typecode.TypeCode.add_member_to_enum.

Modifying a com.rti.dds.typecode.TypeCode – such as by adding a member – is important if you are using the Dynamic Data APIs.

MT Safety:
UNSAFE.
Parameters
name<<in>> The name of the new member. This string must be unique within this type and must not be null.
ordinal<<in>> The relative order of the new member in this enum or a custom integer value. The value must be unique within the type.
Returns
The zero-based index of the new member relative to any other members that previously existed.
See Also
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCodeFactory
String signature ( ) throws RETCODE_ERROR

Gets an MD5 signature of the com.rti.dds.typecode.TypeCode.

MT Safety:
SAFE.
Returns
MD5 signature.

Member Data Documentation

final TypeCode TC_NULL
static
final TypeCode TC_SHORT
static

Basic 16-bit signed integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_LONG
static

Basic 32-bit signed integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_USHORT
static

Basic unsigned 16-bit integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_ULONG
static

Basic unsigned 32-bit integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_FLOAT
static

Basic 32-bit floating point type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_DOUBLE
static

Basic 64-bit floating point type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_BOOLEAN
static
final TypeCode TC_CHAR
static

Basic single-byte character type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_OCTET
static
final TypeCode TC_LONGLONG
static

Basic 64-bit integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_ULONGLONG
static

Basic unsigned 64-bit integer type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_LONGDOUBLE
static

Basic 128-bit floating point type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final TypeCode TC_WCHAR
static

Basic four-byte character type.

See Also
com.rti.dds.typecode.TypeCodeFactory.get_primitive_tc
final int MEMBER_ID_INVALID
static

A sentinel indicating an invalid com.rti.dds.typecode.TypeCode member ID.

final int MEMBER_ID_SPARSE_UNSPECIFIED = 0
static
final int INDEX_INVALID
static

A sentinel indicating an invalid com.rti.dds.typecode.TypeCode member index.

final byte NONKEY_MEMBER
static

A flag indicating that a type member is optional and not part of the key.

Only sparse value types (i.e. types of com.rti.dds.typecode.TCKind com.rti.dds.typecode.TCKind.TK_SPARSE) support this flag. Non-key members of other type kinds should use the flag com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER.

If a type is used with the Dynamic Data facility, a com.rti.dds.dynamicdata.DynamicData sample of the type will only contain a value for a com.rti.dds.typecode.TypeCode.NONKEY_MEMBER field if one has been explicitly set (see, for example, com.rti.dds.dynamicdata.DynamicData.DynamicData.set_int). The middleware will not assume any default value.

See Also
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.is_member_key
com.rti.dds.typecode.TypeCode.is_member_required
com.rti.dds.typecode.StructMember.is_key
com.rti.dds.typecode.ValueMember.is_key
final byte KEY_MEMBER
static

A flag indicating that a type member is part of the key for that type, and therefore required.

If a type is used with the Dynamic Data facility, all com.rti.dds.dynamicdata.DynamicData samples of the type will contain a value for all com.rti.dds.typecode.TypeCode.KEY_MEMBER fields, even if the type is a sparse value type (i.e. of kind com.rti.dds.typecode.TCKind.TK_SPARSE). If you do not set a value of the member explicitly (see, for example, com.rti.dds.dynamicdata.DynamicData.DynamicData.set_int), the middleware will assume a default "zero" value: numeric values will be set to zero; strings and sequences will be of zero length.

See Also
com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER
com.rti.dds.typecode.TypeCode.NONKEY_MEMBER
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.is_member_key
com.rti.dds.typecode.TypeCode.is_member_required
com.rti.dds.typecode.StructMember.is_key
com.rti.dds.typecode.ValueMember.is_key
final byte NONKEY_REQUIRED_MEMBER
static

A flag indicating that a type member is not part of the key but is nevertheless required.

This is the most common kind of member.

If a type is used with the Dynamic Data facility, all com.rti.dds.dynamicdata.DynamicData samples of the type will contain a value for all com.rti.dds.typecode.TypeCode.NONKEY_REQUIRED_MEMBER fields, even if the type is a sparse value type (i.e. of kind com.rti.dds.typecode.TCKind.TK_SPARSE). If you do not set a value of the member explicitly (see, for example, com.rti.dds.dynamicdata.DynamicData.DynamicData.set_int), the middleware will assume a default "zero" value: numeric values will be set to zero; strings and sequences will be of zero length.

See Also
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.NONKEY_MEMBER
com.rti.dds.typecode.TypeCode.KEY_MEMBER
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.add_member
com.rti.dds.typecode.TypeCode.is_member_key
com.rti.dds.typecode.TypeCode.is_member_required
com.rti.dds.typecode.StructMember.is_key
com.rti.dds.typecode.ValueMember.is_key
final short NOT_BITFIELD
static

Indicates that a member of a type is not a bitfield.


RTI Connext Java API Version 5.0.0 Copyright © Thu Aug 30 2012 Real-Time Innovations, Inc