The main StreamLink Class.
To create an instance of this class, use the caplin.streamlink.StreamLinkFactory.
You can obtain an instance of this interface by calling the create()
method on the
caplin.streamlink.StreamLinkFactory object.
Attributes | Name and Description |
---|---|
|
caplin.streamlink.StreamLink()
|
Attributes | Name and Description |
---|---|
|
void
addConnectionListener(caplin.streamlink.ConnectionListener connectionListener)
Adds a connection listener with this StreamLink instance. |
|
void
connect()
Instructs this StreamLink instance to attempt to connect to the Liberator. |
|
void
create(String subject, Map
Creates a subject. |
|
caplin.streamlink.Channel
createChannel(String subject, caplin.streamlink.ChannelListener channelListener, Map
Creates a |
|
caplin.streamlink.JsonChannel
createJsonChannel(String subject, caplin.streamlink.JsonChannelListener channelListener, Map
Creates a |
|
caplin.streamlink.CommandSubscription
createSubject(String subject, caplin.streamlink.SubjectType subjectType, caplin.streamlink.CommandListener commandListener, Map
Creates a subject in the Liberator. |
|
caplin.streamlink.WebRequestParameters
createWebRequestParameters(String moduleName, Map
Creates a |
|
void
delete(String subject, Map
Deletes a subject. |
|
void
deleteSubject(String subject, caplin.streamlink.CommandListener commandListener)
Deletes a subject in the Liberator. |
|
void
disconnect()
Instructs this StreamLink instance to disconnect from the Liberator. |
|
caplin.streamlink.ConnectionCurrentState
getConnectionCurrentState()
Returns information about the state of the current connection. |
|
void
getLastLog()
Returns an array containing the last "log_buffer_size" log lines written by the current {caplin.streamlink.StreamLink} instance. |
|
caplin.streamlink.Logger
getLogger()
Returns the StreamLink logger object. |
|
void
getVersion()
Gets the version of StreamLink JavaScript. |
|
void
networkAvailable()
Informs StreamLink the network connection is available so can connect. |
|
void
networkUnavailable()
Informs StreamLink the network connection is unavailable so it will not try to connect. |
|
void
pause()
Pauses StreamLink so it does not receive new updates from the Liberator. |
|
void
publish(String subject, Map
Publishes data to a subject. |
|
caplin.streamlink.CommandSubscription
publishToJsonSubject(String subject, Object jsonObject, caplin.streamlink.CommandListener commandListener, Map
Publishes JSON data to a subject. |
|
caplin.streamlink.CommandSubscription
publishToSubject(String subject, Map
Publishes data to a subject. |
|
void
registerJsonProvider( pattern, provider, commandListener)
Registers a provider of json data for the given subject pattern. |
|
void
registerRecordProvider( pattern, provider, commandListener)
Registers a provider of record data for the given subject pattern. |
|
void
removeConnectionListener(caplin.streamlink.ConnectionListener connectionListener)
Removes a previously added caplin.streamlink.ConnectionListener from this StreamLink instance. |
|
void
resume()
Re-establishes the connection to the Liberator to receive updates. |
|
void
snapshot(String subject, caplin.streamlink.SubscriptionListener subscriptionListener, Map
Requests a single update from a subject. |
|
caplin.streamlink.Subscription
subscribe(String subject, caplin.streamlink.SubscriptionListener subscriptionListener, Map
Subscribes to a subject to receive updates. |
|
caplin.streamlink.CommandSubscription
throttleEverything(caplin.streamlink.ThrottleCommand throttleCommand, caplin.streamlink.CommandListener commandListener, Map
Throttles all the currently subscribed subjects, reducing the number of updates that are sent every second. |
|
caplin.streamlink.CommandSubscription
throttleSubject(String subject, caplin.streamlink.ThrottleCommand throttleCommand, caplin.streamlink.CommandListener commandListener, Map
Throttles the specified subject, reducing the number of updates that are sent every second. |
►
caplin.streamlink.StreamLink()
►
void
addConnectionListener(caplin.streamlink.ConnectionListener connectionListener)
Adds a connection listener with this StreamLink instance. This connectionListener
is called whenever a connection event occurs.
caplin.streamlink.ConnectionListener | connectionListener | The ConnectionListener to be added. |
►
void
connect()
Instructs this StreamLink instance to attempt to connect to the Liberator.
When a caplin.streamlink.ConnectionListener has been registered with this StreamLink instance, the listener's methods are called when the status of the connection changes.
►
void
create(String subject, Map
Creates a subject.
This method can be used to send a POST message to a configured REST endpoint.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
payload | object | null | Yes | The payload associated with this command, the payload should be of the type specified by the payloadType attribute. |
payloadType | PayloadType | caplin.streamlink.PayloadType.JSON | Yes | The type of the payload. |
persistent | boolean | false | Yes | When true, if the connection to the Liberator fails after publication, the data is resent when StreamLink reconnects. When false, if the connection to the Liberator fails after publication, the data is not resent when StreamLink reconnects. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
headers | [{header:"header1", value:"value1"}, {header:"header2", value:"value2"}, ...] | Array of HTTP headers applied to the mapped REST enndpoint. | Yes | Applies HTTP headers to the REST endpoint, applies only to subjects mapped to REST endpoints in the Liberator. |
String | subject | The subject to create. |
Map |
commandParameters | command parameters. |
CommandResultListener | commandListener | A listener that receives notification of the create command's success or failure plus any return value. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
caplin.streamlink.Channel
createChannel(String subject, caplin.streamlink.ChannelListener channelListener, Map
Creates a Channel
for the specified subject on the Liberator.
Use the returned channel to send and receive data as maps of name/value pairs.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | When true, the latest channel record data sent persists across a failure of the connection to Liberator and subsequent reconnection. When false, the record data only applies to the current Liberator session and does not persist following a connection failure. For a fuller explanation, see the 'Persistence' section of the StreamLink Overview document. |
cancellable | boolean | false | Yes | Sets the sending of record data associated with this channel to be cancelled in the event that the connection goes down before it is sent. |
String | subject | the Liberator subject that will be used for this channel. |
caplin.streamlink.ChannelListener | channelListener | to receive data, status and error messages from the channel. |
Map |
commandParameters | Optional JSON configuration attributes. |
►
caplin.streamlink.JsonChannel
createJsonChannel(String subject, caplin.streamlink.JsonChannelListener channelListener, Map
Creates a JsonChannel
for the specified subject on the Liberator.
Use the returned channel to send and receive JSON data.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | When true, the latest channel record data sent persists across a failure of the connection to Liberator and subsequent reconnection. When false, the record data only applies to the current Liberator session and does not persist following a connection failure. For a fuller explanation, see the 'Persistence' section of the StreamLink Overview document. |
cancellable | boolean | false | Yes | Sets the sending of record data associated with this channel to be cancelled in the event that the connection goes down before it is sent. |
String | subject | the Liberator subject that will be used for this channel. |
caplin.streamlink.JsonChannelListener | channelListener | to receive data, status and error messages from the channel. |
Map |
commandParameters | Optional JSON configuration attributes. |
►
caplin.streamlink.CommandSubscription
createSubject(String subject, caplin.streamlink.SubjectType subjectType, caplin.streamlink.CommandListener commandListener, Map
Creates a subject in the Liberator.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | Sets the command associated with these parameters to be persistent. This deals with the situation where the connection to the Liberator server has been lost, and on subsequent reconnection StreamLink must create a brand new user session and log in to Liberator again. When this happens, the "persistent" command is automatically re-sent to the Liberator. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
String | subject | The name of the subject to create. |
caplin.streamlink.SubjectType | subjectType | The type of subject to create. |
caplin.streamlink.CommandListener | commandListener | A listener that is called to provide information about the result of the "create subject" command. |
Map |
commandParameters | Optional JSON configuration attributes. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
caplin.streamlink.WebRequestParameters
createWebRequestParameters(String moduleName, Map
Creates a WebRequestParameters
object for the specified Liberator web module.
The returned WebRequestParameters
object contains the URL and HTTP post body that should be
used to access the required web module.
String | moduleName | the name of the Liberator web module. |
Map |
options | a map of named options that the web module accepts. |
►
void
delete(String subject, Map
Deletes a subject.
This method can be used to send a DELETE message to a configured REST endpoint.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
payload | object | null | Yes | The payload associated with this command, the payload should be of the type specified by the payloadType attribute. |
payloadType | PayloadType | caplin.streamlink.PayloadType.JSON | Yes | The type of the payload. |
headers | [{header:"header1", value:"value1"}, {header:"header2", value:"value2"}, ...] | Array of HTTP headers applied to the mapped REST enndpoint. | Yes | Applies HTTP headers to the REST endpoint, applies only to subjects mapped to REST endpoints in the Liberator. |
String | subject | The subject to delete. |
Map |
commandParameters | command parameters. |
CommandResultListener | commandListener | A listener that receives notification of the delete command's success or failure plus any return value. |
►
void
deleteSubject(String subject, caplin.streamlink.CommandListener commandListener)
Deletes a subject in the Liberator.
String | subject | The name of the subject to delete. |
caplin.streamlink.CommandListener | commandListener | A listener that is called to provide information about the result of the 'delete subject' command. |
►
void
disconnect()
Instructs this StreamLink instance to disconnect from the Liberator.
►
caplin.streamlink.ConnectionCurrentState
getConnectionCurrentState()
Returns information about the state of the current connection.
►
void
getLastLog()
Returns an array containing the last "log_buffer_size" log lines written by the current {caplin.streamlink.StreamLink} instance. If log_buffer_size is not set or <= 0 then the log buffer is disabled and this method will always return an empty array
►
caplin.streamlink.Logger
getLogger()
Returns the StreamLink logger object. You can receive StreamLink log messages by adding your own caplin.streamlink.LogListener to this object.
►
void
getVersion()
Gets the version of StreamLink JavaScript.
►
void
networkAvailable()
Informs StreamLink the network connection is available so can connect.
►
void
pause()
Pauses StreamLink so it does not receive new updates from the Liberator. The KeyMaster session will be kept alive.
This method can be used as part of your applications lifecycle to conserve battery life and reduce data usage by not receiving data when your application is in the background.
►
void
publish(String subject, Map
Publishes data to a subject.
This method can be used to send a PUT message to a configured REST endpoint.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
payload | object | null | Yes | The payload associated with this command, the payload should be of the type specified by the payloadType attribute. |
payloadType | PayloadType | caplin.streamlink.PayloadType.JSON | Yes | The type of the payload. |
persistent | boolean | false | Yes | When true, if the connection to the Liberator fails after publication, the data is resent when StreamLink reconnects. When false, if the connection to the Liberator fails after publication, the data is not resent when StreamLink reconnects. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
headers | [{header:"header1", value:"value1"}, {header:"header2", value:"value2"}, ...] | Array of HTTP headers applied to the mapped REST enndpoint. | Yes | Applies HTTP headers to the REST endpoint, applies only to subjects mapped to REST endpoints in the Liberator. |
String | subject | The subject to publish to. |
Map |
commandParameters | command parameters. |
CommandResultListener | commandListener | A listener that receives notification of the publish command's success or failure plus any return value. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
caplin.streamlink.CommandSubscription
publishToJsonSubject(String subject, Object jsonObject, caplin.streamlink.CommandListener commandListener, Map
Publishes JSON data to a subject.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | When true, if the connection to the Liberator fails after publication, the data is resent when StreamLink reconnects. When false, if the connection to the Liberator fails after publication, the data is not resent when StreamLink reconnects. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
String | subject | The subject to publish to. |
Object | jsonObject | The JS object to publish as JSON. |
caplin.streamlink.CommandListener | commandListener | A listener that receives notification of the publish command's success or failure. |
Map |
commandParameters | Optional JSON configuration attributes. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
caplin.streamlink.CommandSubscription
publishToSubject(String subject, Map
Publishes data to a subject.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | When true, if the connection to the Liberator fails after publication, the data is resent when StreamLink reconnects. When false, if the connection to the Liberator fails after publication, the data is not resent when StreamLink reconnects. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
String | subject | The subject to publish to. |
Map |
fieldData | The data, as key-value pairs, to be published to the subject. |
caplin.streamlink.CommandListener | commandListener | A listener that receives notification of the publish command's success or failure. |
Map |
commandParameters | Optional JSON configuration attributes. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
void
registerJsonProvider( pattern, provider, commandListener)
Registers a provider of json data for the given subject pattern.
pattern | the subject glob pattern | |
provider | the provider that will be called when requests for subjects matching the given pattern are received. | |
commandListener | A listener that is called to provide information about the result of the registration. |
►
void
registerRecordProvider( pattern, provider, commandListener)
Registers a provider of record data for the given subject pattern.
pattern | the subject glob pattern | |
provider | the provider that will be called when requests for subjects matching the given pattern are received. | |
commandListener | A listener that is called to provide information about the result of the registration. |
►
void
removeConnectionListener(caplin.streamlink.ConnectionListener connectionListener)
Removes a previously added caplin.streamlink.ConnectionListener from this StreamLink instance. After removal, no further callbacks are received by this ConnectionListener.
caplin.streamlink.ConnectionListener | connectionListener | The ConnectionListener to be removed. |
►
void
resume()
Re-establishes the connection to the Liberator to receive updates.
This method can be used as part of your applications lifecycle to conserve battery life and reduce data usage by not receiving data when your application is in the background.
►
void
snapshot(String subject, caplin.streamlink.SubscriptionListener subscriptionListener, Map
Requests a single update from a subject.
The subscriptionParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
structureonly | boolean | false | Yes | If this value is set, the subscription will not provide field data updates |
keepinaccessible | boolean | false | Yes | If this value is set, the container will keep elements that are unavailable. |
fields | [string] | All fields are subscribed to. | Yes | An array of the the fields to subscribe to.
For example: |
filter | {value: string, image: boolean} | No filter is applied. | Yes | A filter that restricts the number of field updates that will be received.
The When the |
window | {start: int, size: int} | Updates are returned for the whole container (subject to any filter applied). | Yes | When the subscription is to a container, this attribute defines a window that begins at the element defined by start ,
and is size elements long. Liberator only returns updates for the elements that are in the window.
The first element in a container starts at position 0 (zero). |
select | {where: string, orderby: string, groupby: string} | Updates are returned for the whole container in creation order. | Yes | When the subscription is to a container and the backend system is running Caplin Refiner, this attribute defines the selection
and sorting applied to the container.
Parameters:
|
freeform | [string] | Free form string parameters. | Yes | Freeform subscription parameters allows you to pass parameters to subscriptions for subject types that are not records or containers. They can be used to define filter expressions for filtering news headlines. For more information about news headlines, and the syntax and rules for defining news filter expressions, see the "News filtering" section of the StreamLink Overview |
json | [string] | jsonpath filter string parameter. | Yes | Sets the filter that restricts the the information returned by the subscription. The filtering is
performed by the Liberator, rather than the client, so that bandwidth and client side processing
are reduced.
For more details on the format of the filter string, please see https://goessner.net/articles/JsonPath/. |
headers | [{header:"header1", value:"value1"}, {header:"header2", value:"value2"}, ...] | Array of HTTP headers applied to the mapped REST enndpoint. | Yes | Applies HTTP headers to the REST endpoint, applies only to subjects mapped to REST endpoints in the Liberator. |
String | subject | The subject to subscribe to. |
caplin.streamlink.SubscriptionListener | subscriptionListener | A listener that is called to provide information about the result of the subscription request, the subscribed data, and subsequent updates to that data. |
Map |
subscriptionParameters | Optional JSON configuration attributes. |
►
caplin.streamlink.Subscription
subscribe(String subject, caplin.streamlink.SubscriptionListener subscriptionListener, Map
Subscribes to a subject to receive updates.
The subscriptionParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
fields | [string] | All fields are subscribed to. | Yes | An array of the the fields to subscribe to.
For example: |
filter | {value: string, image: boolean} | No filter is applied. | Yes | A filter that restricts the number of field updates that will be received.
The When the |
window | {start: int, size: int} | Updates are returned for the whole container (subject to any filter applied). | Yes | When the subscription is to a container, this attribute defines a window that begins at the element defined by start ,
and is size elements long. Liberator only returns updates for the elements that are in the window.
The first element in a container starts at position 0 (zero). |
freeform | [string] | Free form string parameters. | Yes | Freeform subscription parameters allows you to pass parameters to subscriptions for subject types that are not records or containers. They can be used to define filter expressions for filtering news headlines. For more information about news headlines, and the syntax and rules for defining news filter expressions, see the "News filtering" section of the StreamLink Overview |
json | [string] | jsonpath filter string parameter. | Yes | Sets the filter that restricts the the information returned by the subscription. The filtering is
performed by the Liberator, rather than the client, so that bandwidth and client side processing
are reduced.
For more details on the format of the filter string, please see https://goessner.net/articles/JsonPath/. |
headers | [{header:"header1", value:"value1"}, {header:"header2", value:"value2"}, ...] | Array of HTTP headers applied to the mapped REST enndpoint. | Yes | Applies HTTP headers to the REST endpoint, applies only to subjects mapped to REST endpoints in the Liberator. |
select | {where: string, orderby: string, groupby: string} | Updates are returned for the whole container in creation order. | Yes | When the subscription is to a container and the backend system is running Caplin Refiner, this attribute defines the selection
and sorting applied to the container.
Parameters:
|
Container filtering example using the ContainerFilterFactory to build the where clause:
|
Note: if you subscribe to a container multiple times, then include one or both of the configuration attributes window
and select
in each
subscription to the container. The presence of either of these attributes indicates to StreamLink that the subject is a container, and
causes StreamLink to add a sequential container-instance identifier to the subscription request. Liberator uses this identifier to support
multiple subscriptions to the same container; without this identifier, only the first subscription to a container will have a container instance
and receive updates. If you don't want to window or filter a container, then specify a window with a large size, for
example window:{start:0, size:999999999}
.
String | subject | The subject to subscribe to. |
caplin.streamlink.SubscriptionListener | subscriptionListener | A listener that is called to provide information about the result of the subscription request, the subscribed data, and subsequent updates to that data. |
Map |
subscriptionParameters | Optional JSON configuration attributes. |
unsubscribe()
method on the returned Subscription
object.
►
caplin.streamlink.CommandSubscription
throttleEverything(caplin.streamlink.ThrottleCommand throttleCommand, caplin.streamlink.CommandListener commandListener, Map
Throttles all the currently subscribed subjects, reducing the number of updates that are sent every second.
For a fuller explanation of throttling, refer to the 'Throttling' section of the document StreamLink Overview.
caplin.streamlink.ThrottleCommand | throttleCommand | The throttle command to apply. |
caplin.streamlink.CommandListener | commandListener | A listener that is called to provide information about the result of the throttle command. |
Map |
commandParameters | Optional JSON configuration attributes; for details, see the commandParameters parameter of throttleSubject(). |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.
►
caplin.streamlink.CommandSubscription
throttleSubject(String subject, caplin.streamlink.ThrottleCommand throttleCommand, caplin.streamlink.CommandListener commandListener, Map
Throttles the specified subject, reducing the number of updates that are sent every second.
For a fuller explanation of throttling, refer to the 'Throttling' section of the document StreamLink Overview.
The commandParameters argument takes the following JSON configuration attributes:Attribute name | Type | Default | Optional | Description |
---|---|---|---|---|
persistent | boolean | false | Yes | When true, the throttle setting for this command persists across a failure of the connection to Liberator and subsequent reconnection. When false, the throttle setting only applies to the current Liberator session and does not persist following a connection failure. For a fuller explanation, see the 'Persistence' section of the StreamLink Overview document. |
cancellable | boolean | false | Yes | Sets the command associated with these parameters to be cancelled in the event that the connection goes down before it is sent. |
String | subject | The subject for which received data updates are to be throttled. |
caplin.streamlink.ThrottleCommand | throttleCommand | The Throttle command to apply. |
caplin.streamlink.CommandListener | commandListener | A listener that is called to provide information about the result of the throttle command. |
Map |
commandParameters | Optional JSON configuration attributes. |
commandParameters
made the command persistent, you can subsequently cancel this by calling the CommandSubscription
's unPersist()
method.