Migrating .NET Clients

October 2011 Changes

The StreamBase .NET Client Library was rewritten in October 2011 to improve the performance of dequeuing and enqueuing tuples. These changes are found in StreamBase 7.2.0 and later releases.

To take advantage of these performance improvements:

  • Examine your .NET client code for changes in the API as described in the next few sections, and make any required changes.

  • Recompile your .NET client code with the libraries provided by StreamBase 7.6.0 or later.

The .NET Client Library is documented in an HTML Help file provided in Windows installations of StreamBase. Follow this path in the Windows Start menu to open the combined StreamBase and LiveView .NET documentation:

    StartTIBCOStreamBase n.m .NET API.

Changed Methods

The following method's behavior changed as of the October 2011 refresh:

  • StreamBase.SB.Tuple.GetBlobBuffer(), and all its overloads, now return a ByteArrayView instead of a byte[].

New Class

The following class is new to the StreamBase .NET API as of the October 2011 refresh:

  • StreamBase.SB.ByteArrayView, which provides a view to access parts of a backing byte[]. Use this class to manipulate fields of type Blob.

New Methods

The following methods are new to the StreamBase .NET API as of the October 2011 refresh:

  • StreamBase.SB.Client.DequeueResult.DequeueResult (DequeueResult, Tuple[])

  • StreamBase.SB.Client.DequeueResult.DequeueResult (DequeueResult, IList<T>)

  • StreamBase.SB.CompleteDataType.EqualTypes()

  • StreamBase.SB.CompleteDataType.ForSimpleType()

  • StreamBase.SB.CompleteDataType.IsSimpleType()

  • StreamBase.SB.CompleteDataType.IsTupleType()

  • StreamBase.SB.CompleteDataType.IsListType()

  • StreamBase.SB.CompleteDataType.ToString()

  • StreamBase.SB.DataType.IsSimpleType()

  • StreamBase.SB.Schema.Field.GetDescription()

  • StreamBase.SB.Schema.Field.GetNestedField()

  • StreamBase.SB.Schema.Field.GetNestedFields()

  • StreamBase.SB.Schema.Field.GetShortName()

  • StreamBase.SB.Schema.Field.ToStringWithFields()

  • StreamBase.SB.Tuple.GetTupleLength()

  • StreamBase.SB.Tuple.IsReadOnly()

  • StreamBase.SB.Tuple.SetBlobBuffer(Schema.Field field, ByteArrayView value)

  • StreamBase.SB.Tuple.SetBlobBuffer(int fieldIndex, ByteArrayView value)

  • StreamBase.SB.Tuple.SetBlobBuffer(String fieldName, ByteArrayView value)

  • StreamBase.SB.Tuple.ToString(Char cDelimiter, Char cQuote, String sNullString, bool bVerbose)

New Properties and Constants

The following properties and constants were added:

  • StreamBase.SB.CompleteDataType.VARIABLE_SIZE

  • StreamBase.SB.Schema.Field.Description

  • StreamBase.SB.Tuple.NULL_STRING

Methods Removed

The following methods were removed from the .NET API:

  • StreamBase.SB.CompleteDataType.Dispose()

  • StreamBase.SB.Tuple.Tuple(SB::Schema ^ schema). Construct Tuples now with Schema.CreateTuple().

  • The following overloads of CreateTuple() were removed, but the parameterless Schema.CreateTuple() remains:

    • StreamBase.SB.Schema.CreateTuple(String[] fieldValues, int nOffset, int nLength)

    • StreamBase.SB.Schema.CreateTuple(String[] fieldValues, int nOffset, int nLength, String sNullString)

    • StreamBase.SB.Schema.CreateTuple(byte[] sourceBuffer, SB.ByteOrder byteOrder)

  • StreamBase.SB.Schema.Field.AsXml()

  • StreamBase.SB.Schema.Schema(String xmlInput)

  • StreamBase.SB.Schema.Field.Field()

  • StreamBase.SB.StreamProperties.StreamProperties() and all its overloads. Do not construct StreamProperties objects manually. Instead, obtain this object through StreamBaseClient or DequeueResult method calls.

Deprecated Methods Removed

The following methods were marked as deprecated in prior releases and are now removed:

  • StreamBase.SB.Client.DequeueResult.ReuseTuple()

  • StreamBase.SB.Schema.Field.Field(String name, DataType type, unsigned int size)

  • StreamBase.SB.Tuple.GetStringBytes() and all its overloads.

  • StreamBase.SB.Tuple.SetString(Schema.Field field, String sValue, bool bTruncate)

  • StreamBase.SB.Tuple.SetString(int fieldIndex, String sValue, bool bTruncate)

  • StreamBase.SB.Tuple.SetString(String fieldName, String sValue, bool bTruncate)

  • StreamBase.SB.Tuple.SetStringBytes() and all its overloads