IMapContainer Interface

Solclient

IMapContainer Interface
version: 7.2.1.27
Represents a Structured Data Type (SDT) map container.

Very similar to a hash map with one notable exception. IMapContainer does not detect duplicate key names on 'add'. If a field is added to the map with a key name that already exist, both fields will be present in the map. Only one field can be retrieved by that key name and it is not defined which field will be retrieved.

The key name field in Solace maps is case sensitive. For example, adding a field with the name key "field_1" and a field with name key "FIELD_1" will create two distinct fields that can both be retrieved.

Namespace: SolaceSystems.Solclient.Messaging.SDT
Assembly: SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 7.2.1.27 (7.2.1.27)
Syntax
public interface IMapContainer : ISDTContainer, 
	IDisposable
Public Interface IMapContainer
	Inherits ISDTContainer, IDisposable
public interface class IMapContainer : ISDTContainer, 
	IDisposable

The IMapContainer type exposes the following members.

Methods
  NameDescription
Public methodAddBool
Adds a bool field with the given name.
Public methodAddByteArray
Adds a byte array field with the given name.
Public methodAddChar
Adds a char field with the given name.
Public methodAddDestination
Adds a IDestination instance field with the given name.
Public methodAddDouble
Adds a double field with the given name.
Public methodAddFloat
Adds a float field with the given name.
Public methodAddInt16
Adds a Int16 field with the given name.
Public methodAddInt32
Adds a Int32 field with the given name.
Public methodAddInt64
Adds a Int64 field with the given name.
Public methodAddInt8
Adds a Int8 field with the given name.
Public methodAddNull
Adds a null field with the given name.
Public methodAddSDTContainer
Adds a ISDTContainer field with the given name to this map container.
Public methodAddSmfMsg
Adds a ISmfMessage field with the given name.
Public methodAddString
Adds a string field with the given name.
Public methodAddUInt16
Adds a UInt16 field with the given name.
Public methodAddUInt32
Adds a UInt32 field with the given name.
Public methodAddUInt64
Adds a UInt64 field with the given name.
Public methodAddUInt8
Adds a UInt8 field with the given name.
Public methodAddUnknownField
Adds a IUnknownSDTField field with a given name.

An unknown field is by definition a valid SDT field, that's not known to the current version of the API.

Public methodClose
Closes the ISDTContainer, making it unusable for read or write operations.

It is an error to invoke this method in the following cases (An OperationErrorException will be thrown):

  • The IMessage holding this container is already sent (after calling Send(IMessage)).
  • The ISDTContainer holding this container is already closed (after calling Close).
  • (Inherited from ISDTContainer.)
    Public methodCreateMap
    Creates a submap with the given name. The returned IMapContainer is ready for read and write operations. It is recommended to Close the IMapContainer when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed.

    Whether it is explicitly closed by the client application, or implicitly by the API, any attempt to use this container will result in an OperationErrorException with ParamNullReference error subcode.

    Public methodCreateStream
    Creates a substream with the given name. The returned IStreamContainer is ready for read and write operations. It is recommended to Close the IStreamContainer when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed.

    Whether it is explicitly closed by the client application, or implicitly by the API, any attempt to use this container will result in an OperationErrorException with ParamNullReference error subcode.

    Public methodDeleteField
    Deletes the named field from the map.
    Public methodDispose
    Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
    (Inherited from IDisposable.)
    Public methodGetBool
    Gets the field with the given name as a boolean.
    Public methodGetByteArray
    Gets the field with the given name as a byte array.
    Public methodGetChar
    Gets the field with the given name as a Char.
    Public methodGetDestination
    Gets the field with the given name as a IDestination.
    Public methodGetDouble
    Gets the field with the given name as a double.
    Public methodGetField
    This method returns a field of the given name.

    If the returned ISDTField is of type SDTFieldType.MAP or SDTFieldType.STREAM, it is recommended to Close the container when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed. Whether it is explicitly closed by the client application, or implicitly by the API, any attempt to use this container results in an OperationErrorException with ParamNullReference error subcode.

    Public methodGetFloat
    Gets the field with the given name as a float.
    Public methodGetInt16
    Gets the field with the given name as a Int16.
    Public methodGetInt32
    Gets the field with the given name as a Int32.
    Public methodGetInt64
    Gets the field with a given name as a Int64.
    Public methodGetInt8
    Gets the field with the given name as a Int8.(converted to Int16)
    Public methodGetMap
    Opens the contained submap with the given name. The returned IMapContainer is ready for read/write operations. It is recommended to Close the IMapContainer when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed.

    Whether it is explicitly closed by the client application, or implicitly by the API, any attempt to use this container will result in an OperationErrorException with ParamNullReference error subcode.

    Public methodGetNext
    Gets the next KeyValuePair(where key is a String and value is a ISDTField). If the returned ISDTField is of type SDTFieldType.MAP or SDTFieldType.STREAM, it is recommended to close the container when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed.
    Public methodGetNull
    Gets the field with the given name as a null. This is a special accessor; any SDT type with the inclusion of map and stream can be read as null.
    Public methodGetSmfMsg
    Gets the field with the given name as a ISmfMessage.
    Public methodGetStream
    Opens the contained substream with the given name. The returned IStreamContainer is ready for read and write operations. It is recommended to Close the IStreamContainer when done. If it is not explicitly closed, the container is automatically closed when the associated parent container is closed or the associated message (if it is a message-dependent container) is disposed.

    Whether it is explicitly closed by the client application, or implicitly by the API, any attempt to use this container will result in an OperationErrorException with ParamNullReference error subcode.

    Public methodGetString
    Gets the field with the given name as a string.
    Public methodGetUInt16
    Gets the field with the given name as a UInt16 (converted to Int32).
    Public methodGetUInt32
    Gets the field with the given name as a UInt32 (converted to Int64).
    Public methodGetUInt64
    Gets the field with the given name as a UInt64 (converted to Int64, therefore there could be loss of precision).
    Public methodGetUInt8
    Gets the field with the given name as a Byte (UInt8).
    Public methodHasNext
    When iterating through a container (map or stream), this method will return false when the end of the container is reached without advancing the read cursor. It will return true otherwise.
    (Inherited from ISDTContainer.)
    Public methodRewind
    Rewinds the container. Normally when HasNext returns false, client applications must call Rewind if they want to reiterate over the container's fields.
    (Inherited from ISDTContainer.)
    Top
    See Also