UM .NET API
6.16.1
|
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. More...
Public Member Functions | |
LBMSDMessage () | |
Create an empty SDM message. | |
LBMSDMessage (LBMSDMFieldsAttribute user_attr) | |
Create an empty SDM message using a field set attribute. More... | |
LBMSDMessage (LBMSDMFields args) | |
Create an SDM message with a predefined set of fields. More... | |
virtual void | 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. More... | |
virtual void | set (LBMSDMField newfield) |
Set an SDM message field. The field name must exist already. More... | |
virtual void | set (LBMSDMField newfield, int fieldidx) |
Set an SDM message field based on the message element index. The field must exist already. More... | |
virtual void | set (LBMSDMField newfield, int fieldidx, int arrayidx) |
Set an SDM message field based on the message element index and the array index. More... | |
virtual LBMSDMFields | get_fset () |
Get the field set that is associated with this message. More... | |
virtual LBMSDMFieldsAttribute | get_attr () |
Get the field set attributes are associated with this message A copy is returned. More... | |
virtual void | add (LBMSDMField f) |
Add a field to a message - the field set will be automatically created if needed. More... | |
virtual void | remove (int pos) |
Remove a field by specifying the index. More... | |
virtual void | remove (System.String name) |
Remove a field by specifying the name. More... | |
virtual void | parse (byte[] buf, int offset) |
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. More... | |
virtual void | parse (byte[] buf) |
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. More... | |
virtual byte[] | data () |
Get a byte buffer (array) to a raw SDM message in network order. This buffer can be transmitted, for example via a socket. More... | |
virtual System.String | toDbgString () |
Dump an internal (ascii) representation of this message. More... | |
override System.String | ToString () |
Dump a string (ascii) representation of this message. More... | |
virtual new System.Object | Clone () |
Clone an SDM message. More... | |
virtual bool | test_clone (LBMSDMessage m) |
An api that is used during testing to ensure that cloned objects are truly cloned. This API is not for general use. More... | |
virtual LBMSDMField | locate (System.String name) |
Locate a field by name. More... | |
virtual int | count () |
Count the number of fields in a message. More... | |
virtual int | length () |
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() More... | |
virtual LBMSDMField | get (int pos) |
Get a field by the index. More... | |
virtual void | set_debug_level (int level) |
Set the debug level for processing this SDM message. Currently all debugs go to standard out. More... | |
virtual void | log (System.String s) |
Log an event. If debug level is set greater than 0, output to stderr. More... | |
Public Attributes | |
const int | DEBUG_BASIC = 1 |
Debug flag for basic debug output. | |
const int | DEBUG_VERBOSE_PARSING = 2 |
Debug flag for verbose message parsing output. | |
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.
com.latencybusters.lbm.sdm.LBMSDMessage.LBMSDMessage | ( | LBMSDMFieldsAttribute | user_attr | ) |
Create an empty SDM message using a field set attribute.
user_attr | A field set attribute object |
com.latencybusters.lbm.sdm.LBMSDMessage.LBMSDMessage | ( | LBMSDMFields | args | ) |
Create an SDM message with a predefined set of fields.
args | The set of fields to be added to the SDM message |
|
virtual |
Add a field to a message - the field set will be automatically created if needed.
f | The LBMSDMField object to be added |
References com.latencybusters.lbm.sdm.LBMSDMFields.add().
|
virtual |
Clone an SDM message.
CloneNotSupportedException which should not happen :-)
References com.latencybusters.lbm.sdm.LBMSDMFields.Clone(), and com.latencybusters.lbm.sdm.LBMSDMessage.Clone().
Referenced by com.latencybusters.lbm.sdm.LBMSDMessage.Clone(), com.latencybusters.lbm.sdm.LBMSDMFieldMessage.set(), and com.latencybusters.lbm.sdm.LBMSDMArrayMessage.set().
|
virtual |
Count the number of fields in a message.
References com.latencybusters.lbm.sdm.LBMSDMFields.length().
|
virtual |
Get a byte buffer (array) to a raw SDM message in network order. This buffer can be transmitted, for example via a socket.
IndexOutOfBoundsException if the byte buffer can not be build
LBMSDMException when an unexpected error occurs within LBMSDM
References com.latencybusters.lbm.sdm.LBMSDMFieldIterator.Current, com.latencybusters.lbm.sdm.LBMSDMRawUint32.format(), com.latencybusters.lbm.sdm.LBMSDMField.format(), com.latencybusters.lbm.sdm.LBMSDMField.format_name(), com.latencybusters.lbm.sdm.LBMSDMField.format_type(), com.latencybusters.lbm.sdm.LBMSDMField.get_len(), com.latencybusters.lbm.sdm.LBMSDMField.get_name(), com.latencybusters.lbm.sdm.LBMSDMRawUint32.length, com.latencybusters.lbm.sdm.LBMSDMFields.length(), com.latencybusters.lbm.sdm.LBMSDMFieldIterator.MoveNext(), com.latencybusters.lbm.sdm.LBMSDMField.name_len(), and com.latencybusters.lbm.sdm.LBMSDMField.type_len().
Referenced by com.latencybusters.lbm.sdm.LBMSDMFieldMessage.Clone(), com.latencybusters.lbm.sdm.LBMSDMFieldMessage.get_len(), and com.latencybusters.lbm.sdm.LBMSDMFieldMessage.toDbgString().
|
virtual |
Get a field by the index.
pos | The index of the field required |
References com.latencybusters.lbm.sdm.LBMSDMFields.get().
Referenced by com.latencybusters.lbm.sdm.LBMSDMArrayMessage.set().
|
virtual |
Get the field set attributes are associated with this message A copy is returned.
References com.latencybusters.lbm.sdm.LBMSDMFields.get_attr().
|
virtual |
Get the field set that is associated with this message.
|
virtual |
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()
Referenced by com.latencybusters.lbm.sdm.LBMSDMArrayMessage.get_len(), and com.latencybusters.lbm.sdm.LBMSDMFieldMessage.toDbgString().
|
virtual |
Locate a field by name.
name | Name of field being located |
References com.latencybusters.lbm.sdm.LBMSDMFields.locate().
|
virtualinherited |
Log an event. If debug level is set greater than 0, output to stderr.
s | String containing the event to log |
|
virtual |
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.
for example if the message has bad data
LBMSDMException if a problem occurs parsing the message buffer,
buf | The byte array (buffer) containing the raw SDM message to be parsed |
offset | The index in the array where parsing should start |
References com.latencybusters.lbm.sdm.LBMSDMFieldUint16.get(), com.latencybusters.lbm.sdm.LBMSDMFieldUint32.get(), com.latencybusters.lbm.sdm.LBMSDMFieldString.get(), com.latencybusters.lbm.sdm.LBMSDMFieldUint16.parse(), com.latencybusters.lbm.sdm.LBMSDMFieldUint32.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(), and com.latencybusters.lbm.sdm.LBMSDMFieldMessage.parse().
|
virtual |
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.
for example if the message has bad data
LBMSDMException if a problem occurs parsing the message buffer
buf | The byte array (buffer) containing the raw SDM message to be parsed |
|
virtual |
Remove a field by specifying the index.
pos | The index of the field |
References com.latencybusters.lbm.sdm.LBMSDMFields.remove().
|
virtual |
Remove a field by specifying the name.
name | The field name to be removed |
References com.latencybusters.lbm.sdm.LBMSDMFields.remove().
|
virtual |
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.
args | The set of fields to be added to the SDM message |
|
virtual |
Set an SDM message field. The field name must exist already.
LBMSDMAddingFieldException when the field doesn't exist
newfield | The new field |
References com.latencybusters.lbm.sdm.LBMSDMFields.set().
|
virtual |
Set an SDM message field based on the message element index. The field must exist already.
LBMSDMAddingFieldException when the field doesn't exist
newfield | The new field |
fieldidx | The field index in the message |
References com.latencybusters.lbm.sdm.LBMSDMFields.set().
|
virtual |
Set an SDM message field based on the message element index and the array index.
LBMSDMAddingFieldException when the field doesn't exist
newfield | The new field |
fieldidx | The field index in the message |
arrayidx | The array index in the field |
References com.latencybusters.lbm.sdm.LBMSDMFields.set().
|
virtualinherited |
Set the debug level for processing this SDM message. Currently all debugs go to standard out.
level | Debug level to set |
|
virtual |
An api that is used during testing to ensure that cloned objects are truly cloned. This API is not for general use.
m | An SDM message object to test against this object |
|
virtual |
Dump an internal (ascii) representation of this message.
References com.latencybusters.lbm.sdm.LBMSDMFields.toDbgString().
Referenced by com.latencybusters.lbm.sdm.LBMSDMFieldMessage.toDbgString().
override System.String com.latencybusters.lbm.sdm.LBMSDMessage.ToString | ( | ) |
Dump a string (ascii) representation of this message.
References com.latencybusters.lbm.sdm.LBMSDMFields.toDbgString().