Subscription class

Class representing a Subscription to be submitted to a Lightstreamer Server.

It contains subscription details and the listeners needed to process the real-time data.
After the creation, a Subscription object is in the "inactive" state. When a Subscription object is subscribed to on a LightstreamerClient object, through the LightstreamerClient.subscribe method, its state becomes "active". This means that the client activates a subscription to the required items through Lightstreamer Server and the Subscription object begins to receive real-time events.
A Subscription can be configured to use either an Item Group or an Item List to specify the items to be subscribed to and using either a Field Schema or Field List to specify the fields.
"Item Group" and "Item List" are defined as follows:

  • "Item Group": an Item Group is a String identifier representing a list of items. Such Item Group has to be expanded into a list of items by the getItems method of the MetadataProvider of the associated Adapter Set. When using an Item Group, items in the subscription are identified by their 1-based index within the group.
    It is possible to configure the Subscription to use an "Item Group" using the [setItemGroup] method.
  • "Item List": an Item List is an array of Strings each one representing an item. For the Item List to be correctly interpreted a LiteralBasedProvider or a MetadataProvider with a compatible implementation of getItems has to be configured in the associated Adapter Set.
    Note that no item in the list can be empty, can contain spaces or can be a number.
    When using an Item List, items in the subscription are identified by their name or by their 1-based index within the list.
    It is possible to configure the Subscription to use an "Item List" using the [setItems] method or by specifying it in the constructor.
"Field Schema" and "Field List" are defined as follows:
  • "Field Schema": a Field Schema is a String identifier representing a list of fields. Such Field Schema has to be expanded into a list of fields by the getFields method of the MetadataProvider of the associated Adapter Set. When using a Field Schema, fields in the subscription are identified by their 1-based index within the schema.
    It is possible to configure the Subscription to use a "Field Schema" using the [setFieldSchema] method.
  • "Field List": a Field List is an array of Strings each one representing a field. For the Field List to be correctly interpreted a LiteralBasedProvider or a MetadataProvider with a compatible implementation of getFields has to be configured in the associated Adapter Set.
    Note that no field in the list can be empty or can contain spaces.
    When using a Field List, fields in the subscription are identified by their name or by their 1-based index within the list.
    It is possible to configure the Subscription to use a "Field List" using the [setFields] method or by specifying it in the constructor.

Constructors

Subscription(String mode, [List<String>? items, List<String>? fields])
Creates an object to be used to describe a Subscription that is going to be subscribed to through Lightstreamer Server.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addListener(SubscriptionListener listener) → void
Adds a listener that will receive events from the Subscription instance.
getCommandPosition() int?
Returns the position of the "command" field in a COMMAND Subscription.
getCommandSecondLevelDataAdapter() String?
Inquiry method that can be used to read the second-level Data Adapter name configured through setCommandSecondLevelDataAdapter.
getCommandSecondLevelFields() List<String>?
Inquiry method that can be used to read the "Field List" specified for second-level Subscriptions.
getCommandSecondLevelFieldSchema() String?
Inquiry method that can be used to read the "Field Schema" specified for second-level Subscriptions.
getCommandValue(String itemNameOrPosition, String keyValue, String fieldNameOrPosition) Future<String?>
Returns the latest value received for the specified item/key/field combination.
getDataAdapter() String?
Inquiry method that can be used to read the name of the Data Adapter specified for this Subscription through setDataAdapter.
getFields() List<String>?
Inquiry method that can be used to read the "Field List" specified for this Subscription.
getFieldSchema() String?
Inquiry method that can be used to read the field schema specified for this Subscription.
getItemGroup() String?
Inquiry method that can be used to read the item group specified for this Subscription.
getItems() List<String>?
Inquiry method that can be used to read the "Item List" specified for this Subscription.
getKeyPosition() int?
Returns the position of the "key" field in a COMMAND Subscription.
getListeners() List<SubscriptionListener>
Returns a list containing the SubscriptionListener instances that were added to this client.
getMode() String
Inquiry method that can be used to read the mode specified for this Subscription.
getRequestedBufferSize() String?
Inquiry method that can be used to read the buffer size, configured though setRequestedBufferSize, to be requested to the Server for this Subscription.
getRequestedMaxFrequency() String?
Inquiry method that can be used to read the max frequency, configured through setRequestedMaxFrequency, to be requested to the Server for this Subscription.
getRequestedSnapshot() String?
Inquiry method that can be used to read the snapshot preferences, configured through setRequestedSnapshot, to be requested to the Server for this Subscription.
getSelector() String?
Inquiry method that can be used to read the selector name
specified for this Subscription through setSelector.
getValue(String itemNameOrPosition, String fieldNameOrPosition) Future<String?>
Returns the latest value received for the specified item/field pair.
isActive() bool
Inquiry method that checks if the Subscription is currently "active" or not.
isSubscribed() bool
Inquiry method that checks if the Subscription is currently subscribed to through the server or not.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeListener(SubscriptionListener listener) → void
Removes a listener from the Subscription instance so that it will not receive events anymore.
setCommandSecondLevelDataAdapter(String? dataAdapter) → void
Setter method that sets the name of the second-level Data Adapter (within the Adapter Set used by the current session) that supplies all the second-level items.
setCommandSecondLevelFields(List<String>? fields) → void
Setter method that sets the "Field List" to be subscribed to through Lightstreamer Server for the second-level items.
setCommandSecondLevelFieldSchema(String? schemaName) → void
Setter method that sets the "Field Schema" to be subscribed to through Lightstreamer Server for the second-level items.
setDataAdapter(String? dataAdapter) → void
Setter method that sets the name of the Data Adapter (within the Adapter Set used by the current session) that supplies all the items for this Subscription.
setFields(List<String>? fields) → void
Setter method that sets the "Field List" to be subscribed to through Lightstreamer Server.
setFieldSchema(String? schemaName) → void
Setter method that sets the "Field Schema" to be subscribed to through Lightstreamer Server.
setItemGroup(String? groupName) → void
Setter method that sets the "Item Group" to be subscribed to through Lightstreamer Server.
setItems(List<String>? items) → void
Setter method that sets the "Item List" to be subscribed to through Lightstreamer Server.
setRequestedBufferSize(String? size) → void
Setter method that sets the length to be requested to Lightstreamer Server for the internal queuing buffers for the items in the Subscription.
setRequestedMaxFrequency(String? freq) Future<void>
Setter method that sets the maximum update frequency to be requested to Lightstreamer Server for all the items in the Subscription.
setRequestedSnapshot(String? isRequired) → void
Setter method that enables/disables snapshot delivery request for the items in the Subscription.
setSelector(String? selector) → void
Setter method that sets the selector name for all the items in the Subscription. The selector is a filter on the updates received.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited