UM Java API  6.16
com.latencybusters.lbm.sdm.LBMSDMessage Class Reference
Inheritance diagram for com.latencybusters.lbm.sdm.LBMSDMessage:
com.latencybusters.lbm.sdm.LBMSDM

Public Member Functions

 LBMSDMessage ()
 
 LBMSDMessage (LBMSDMFieldsAttribute user_attr)
 
 LBMSDMessage (LBMSDMFields args)
 
void set (LBMSDMFields args)
 
void set (LBMSDMField newfield) throws LBMSDMException
 
void set (LBMSDMField newfield, int fieldidx) throws LBMSDMException
 
void set (LBMSDMField newfield, int fieldidx, int arrayidx) throws LBMSDMException
 
LBMSDMFields get_fset ()
 
LBMSDMFieldsAttribute get_attr ()
 
void add (LBMSDMField f) throws LBMSDMException
 
void remove (int pos)
 
void remove (String name)
 
void parse (byte[] buf, int offset) throws LBMSDMException
 
void parse (byte[] buf) throws LBMSDMException
 
byte[] data () throws IndexOutOfBoundsException,LBMSDMException
 
String toDbgString ()
 
String toString ()
 
LBMSDMessage clone () throws CloneNotSupportedException
 
boolean test_clone (LBMSDMessage m) throws LBMSDMException
 
LBMSDMField locate (String name)
 
int count ()
 
int length () throws IndexOutOfBoundsException,LBMSDMException
 
LBMSDMField get (int pos)
 
void set_debug_level (int level)
 
void log (String s)
 

Static Public Attributes

static final int DEBUG_BASIC = 1
 
static final int DEBUG_VERBOSE_PARSING = 2
 

Protected Attributes

int debug_level = 0
 

Detailed Description

LBMSDMessage is the main class for managing an LBM SDM message. It heavily relies on class LBMSDMFields to collect LBMSDMField and LBMSDMArray classes in to a message. LBMSDMessage is the primary interface for applications.

Constructor & Destructor Documentation

com.latencybusters.lbm.sdm.LBMSDMessage.LBMSDMessage ( )

Create an empty SDM message

Referenced by com.latencybusters.lbm.sdm.LBMSDMessage.clone().

com.latencybusters.lbm.sdm.LBMSDMessage.LBMSDMessage ( LBMSDMFieldsAttribute  user_attr)

Create an empty SDM message using a field set attribute

Parameters
user_attrA field set attribute object
com.latencybusters.lbm.sdm.LBMSDMessage.LBMSDMessage ( LBMSDMFields  args)

Create an SDM message with a predefined set of fields

Parameters
argsThe set of fields to be added to the SDM message

Member Function Documentation

void com.latencybusters.lbm.sdm.LBMSDMessage.add ( LBMSDMField  f) throws LBMSDMException

Add a field to a message - the field set will be automatically created if needed

Parameters
fThe LBMSDMField object to be added

References com.latencybusters.lbm.sdm.LBMSDMFields.add().

LBMSDMessage com.latencybusters.lbm.sdm.LBMSDMessage.clone ( ) throws CloneNotSupportedException
int com.latencybusters.lbm.sdm.LBMSDMessage.count ( )

Count the number of fields in a message

Returns
The number of fields in the message

References com.latencybusters.lbm.sdm.LBMSDMFields.length().

Referenced by com.latencybusters.lbm.sdm.LBMSDMessage.parse().

LBMSDMField com.latencybusters.lbm.sdm.LBMSDMessage.get ( int  pos)

Get a field by the index

Parameters
posThe index of the field required
Returns
The LBMSDMField object

References com.latencybusters.lbm.sdm.LBMSDMFields.get().

Referenced by com.latencybusters.lbm.sdm.LBMSDMArrayMessage.set().

LBMSDMFieldsAttribute com.latencybusters.lbm.sdm.LBMSDMessage.get_attr ( )

Get the field set attributes are associated with this message A copy is returned

Returns
LBMSDMFieldsAttribute object

References com.latencybusters.lbm.sdm.LBMSDMFields.get_attr().

LBMSDMFields com.latencybusters.lbm.sdm.LBMSDMessage.get_fset ( )

Get the field set that is associated with this message

Returns
LBMSDMFields object
int com.latencybusters.lbm.sdm.LBMSDMessage.length ( ) throws IndexOutOfBoundsException,LBMSDMException

Get the raw length of the message. This API will rebuild the message. It is more efficient to call data() and get the length of the returned array instead of calling data() and length()

Returns
The number of bytes the message will use

Referenced by com.latencybusters.lbm.sdm.LBMSDMArrayMessage.append(), com.latencybusters.lbm.sdm.LBMSDMArrayMessage.clone(), com.latencybusters.lbm.sdm.LBMSDMFieldMessage.format(), com.latencybusters.lbm.sdm.LBMSDMArrayMessage.get_len(), and com.latencybusters.lbm.sdm.LBMSDMArrayMessage.LBMSDMArrayMessage().

LBMSDMField com.latencybusters.lbm.sdm.LBMSDMessage.locate ( String  name)

Locate a field by name

Parameters
nameName of field being located
Returns
The relevant LBMSDMField or null

References com.latencybusters.lbm.sdm.LBMSDMFields.locate().

void com.latencybusters.lbm.sdm.LBMSDMessage.parse ( byte []  buf,
int  offset 
) throws LBMSDMException

Parse a byte buffer containing a raw SDM message (as received on a socket) to fill the SDM message object. The byte buffer must be in network order

Parameters
bufThe byte array (buffer) containing the raw SDM message to be parsed
offsetThe index in the array where parsing should start
Exceptions
LBMSDMExceptionif a problem occurs parsing the message buffer, for example if the message has bad data

References com.latencybusters.lbm.sdm.LBMSDMessage.count(), com.latencybusters.lbm.sdm.LBMSDM.debug_level, com.latencybusters.lbm.sdm.LBMSDMFieldUint16.get(), com.latencybusters.lbm.sdm.LBMSDMFieldString.get(), com.latencybusters.lbm.sdm.LBMSDMFieldUint32.get(), com.latencybusters.lbm.sdm.LBMSDMFieldUint32.parse(), com.latencybusters.lbm.sdm.LBMSDMFieldUint16.parse(), com.latencybusters.lbm.sdm.LBMSDMField.parse(), com.latencybusters.lbm.sdm.LBMSDMFieldString.parse_name(), com.latencybusters.lbm.sdm.LBMSDMField.toDbgString(), com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_BLOB, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_BOOLEAN, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_DECIMAL, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_DOUBLE, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_FLOAT, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_INT16, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_INT32, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_INT64, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_INT8, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_MESSAGE, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_STRING, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_TIMESTAMP, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_UINT16, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_UINT32, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_UINT64, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_UINT8, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_ARRAY_UNICODE, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_BLOB, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_BOOLEAN, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_DECIMAL, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_DOUBLE, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_FLOAT, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_INT16, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_INT32, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_INT64, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_INT8, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_MESSAGE, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_STRING, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_TIMESTAMP, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_UINT16, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_UINT32, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_UINT64, com.latencybusters.lbm.sdm.LBMSDMField.TYPE_UINT8, and com.latencybusters.lbm.sdm.LBMSDMField.TYPE_UNICODE.

Referenced by com.latencybusters.lbm.sdm.LBMSDMFieldMessage.clone(), com.latencybusters.lbm.sdm.LBMSDMFieldMessage.parse(), and com.latencybusters.lbm.sdm.LBMSDMessage.parse().

void com.latencybusters.lbm.sdm.LBMSDMessage.parse ( byte []  buf) throws LBMSDMException

Parse a byte buffer containing a raw SDM message (as received on a socket) to fill the SDM message object. The byte buffer must be in network order

Parameters
bufThe byte array (buffer) containing the raw SDM message to be parsed
Exceptions
LBMSDMExceptionif a problem occurs parsing the message buffer for example if the message has bad data

References com.latencybusters.lbm.sdm.LBMSDMessage.parse().

void com.latencybusters.lbm.sdm.LBMSDMessage.remove ( int  pos)

Remove a field by specifying the index

Parameters
posThe index of the field

References com.latencybusters.lbm.sdm.LBMSDMFields.remove().

void com.latencybusters.lbm.sdm.LBMSDMessage.remove ( String  name)

Remove a field by specifying the name

Parameters
nameThe field name to be removed

References com.latencybusters.lbm.sdm.LBMSDMFields.remove().

void com.latencybusters.lbm.sdm.LBMSDMessage.set ( LBMSDMFields  args)

Add to the SDM message a set of fields. This copies the reference, so the caller must retain the field set until the message no longer needs the field set.

Parameters
argsThe set of fields to be added to the SDM message
See also
LBMSDMFields
void com.latencybusters.lbm.sdm.LBMSDMessage.set ( LBMSDMField  newfield) throws LBMSDMException

Set an SDM message field. The field name must exist already.

Parameters
newfieldThe new field
Exceptions
LBMSDMAddingFieldExceptionwhen the field doesn't exist

References com.latencybusters.lbm.sdm.LBMSDMFields.set().

void com.latencybusters.lbm.sdm.LBMSDMessage.set ( LBMSDMField  newfield,
int  fieldidx 
) throws LBMSDMException

Set an SDM message field based on the message element index. The field must exist already.

Parameters
newfieldThe new field
fieldidxThe field index in the message
Exceptions
LBMSDMAddingFieldExceptionwhen the field doesn't exist

References com.latencybusters.lbm.sdm.LBMSDMFields.set().

void com.latencybusters.lbm.sdm.LBMSDMessage.set ( LBMSDMField  newfield,
int  fieldidx,
int  arrayidx 
) throws LBMSDMException

Set an SDM message field based on the message element index and the array index.

Parameters
newfieldThe new field
fieldidxThe field index in the message
arrayidxThe array index in the field
Exceptions
LBMSDMAddingFieldExceptionwhen the field doesn't exist

References com.latencybusters.lbm.sdm.LBMSDMFields.set().

void com.latencybusters.lbm.sdm.LBMSDM.set_debug_level ( int  level)
inherited

Set the debug level for processing this SDM message. Currently all debugs go to standard out.

boolean com.latencybusters.lbm.sdm.LBMSDMessage.test_clone ( LBMSDMessage  m) throws LBMSDMException

An api that is used during testing to ensure that cloned objects are truly cloned. This API is not for general use.

Parameters
mAn SDM message object to test against this object
Returns
true if fields are identical (should not be if correctly cloned)
String com.latencybusters.lbm.sdm.LBMSDMessage.toDbgString ( )

Dump an internal (ascii) representation of this message

Returns
A string containing the message

References com.latencybusters.lbm.sdm.LBMSDMFields.toDbgString().

Referenced by com.latencybusters.lbm.sdm.LBMSDMFieldMessage.toDbgString().

String com.latencybusters.lbm.sdm.LBMSDMessage.toString ( )

Dump a string (ascii) representation of this message

Returns
A string containing the message

References com.latencybusters.lbm.sdm.LBMSDMFields.toDbgString().

Member Data Documentation

final int com.latencybusters.lbm.sdm.LBMSDM.DEBUG_BASIC = 1
staticinherited

Debug flag for basic debug output

int com.latencybusters.lbm.sdm.LBMSDM.debug_level = 0
protectedinherited
final int com.latencybusters.lbm.sdm.LBMSDM.DEBUG_VERBOSE_PARSING = 2
staticinherited

Debug flag for verbose message parsing output


The documentation for this class was generated from the following file: