MPNSubscriptionDelegate
public protocol MPNSubscriptionDelegate
Protocol to be implemented to receive MPNSubscription events including subscription/unsubscription, triggering and status change.
Events for these delegates are dispatched by a different thread than the one that generates them. This means that, upon reception of an event,
it is possible that the internal state of the client has changed. On the other hand, all the notifications for a single LightstreamerClient, including
notifications to ClientDelegate, SubscriptionDelegate, ClientMessageDelegate, MPNDeviceDelegate and MPNSubscriptionDelegate will be dispatched by the same thread.
-
Event handler called when the MPNSubscriptionDelegate instance is added to an
MPNSubscriptionthroughMPNSubscription.addDelegate(_:).This is the first event to be fired on the delegate.
Declaration
Swift
func mpnSubscriptionDidAddDelegate(_ subscription: MPNSubscription)Parameters
subscriptionThe
MPNSubscriptionthis instance was added to. -
Event handler called when the MPNSubscriptionDelegate instance is removed from an
MPNSubscriptionthroughMPNSubscription.removeDelegate(_:).This is the last event to be fired on the delegate.
Declaration
Swift
func mpnSubscriptionDidRemoveDelegate(_ subscription: MPNSubscription)Parameters
subscriptionThe
MPNSubscriptionthis instance was removed from. -
Event handler called when an
MPNSubscriptionhas been successfully subscribed to on the server’s MPN Module.This event handler is always called before other events related to the same subscription.
Note that this event can be called multiple times in the life of an
MPNSubscriptioninstance only in case it is subscribed multiple times throughLightstreamerClient.unsubscribeMPN(_:)andLightstreamerClient.subscribeMPN(_:coalescing:). Two consecutive calls to this method are not possible, as before a secondmpnSubscriptionDidSubscribe:event anmpnSubscriptionDidUnsubscribe(_:)event is always fired.Declaration
Swift
func mpnSubscriptionDidSubscribe(_ subscription: MPNSubscription)Parameters
subscriptionThe
MPNSubscriptioninvolved. -
Event handler called when an
MPNSubscriptionhas been successfully unsubscribed from on the server’s MPN Module.After this call no more events can be received until a new
mpnSubscriptionDidSubscribe(_:)event.Note that this event can be called multiple times in the life of an
MPNSubscriptioninstance only in case it is subscribed multiple times throughLightstreamerClient.unsubscribeMPN(_:)andLightstreamerClient.subscribeMPN(_:coalescing:). Two consecutive calls to this method are not possible, as before a secondmpnSubscriptionDidUnsubscribe:event anmpnSubscriptionDidSubscribe(_:)event is always fired.Declaration
Swift
func mpnSubscriptionDidUnsubscribe(_ subscription: MPNSubscription)Parameters
subscriptionThe
MPNSubscriptioninvolved. -
Event handler called when the server notifies an error while subscribing to an
MPNSubscription.By implementing this method it is possible to perform recovery actions.
The error code can be one of the following:
17 - bad Data Adapter name or default Data Adapter not defined for the current Adapter Set.
21 - bad Group name.
22 - bad Group name for this Schema.
23 - bad Schema name.
24 - mode not allowed for an Item.
30 - subscriptions are not allowed by the current license terms (for special licenses only).
40 - the MPN Module is disabled, either by configuration or by license restrictions.
41 - the request failed because of some internal resource error (e.g. database connection, timeout etc.).
43 - invalid or unknown application ID.
44 - invalid syntax in trigger expression.
45 - invalid or unknown MPN device ID.
46 - invalid or unknown MPN subscription ID (for MPN subscription modifications).
47 - invalid argument name in notification format or trigger expression.
48 - MPN device suspended.
49 - one or more subscription properties exceed maximum size.
50 - no items or fields have been specified.
52 - the notification format is not a valid JSON structure.
53 - the notification format is empty.
66 - an unexpected exception was thrown by the Metadata Adapter while authorizing the connection.
68 - the Server could not fulfill the request because of an internal error.
<= 0 - the Metadata Adapter has refused the subscription request; the code value is dependent on the specific Metadata Adapter implementation.
Declaration
Swift
func mpnSubscription(_ subscription: MPNSubscription, didFailSubscriptionWithErrorCode code: Int, message: String?)Parameters
subscriptionThe
MPNSubscriptioninvolved.codeThe error code sent by the Server.
messageThe description of the error sent by the Server; it can be nil.
-
Event handler called when the server notifies an error while unsubscribing from an
MPNSubscription.By implementing this method it is possible to perform recovery actions.
The error code can be one of the following:
30 - subscriptions are not allowed by the current license terms (for special licenses only).
40 - the MPN Module is disabled, either by configuration or by license restrictions.
41 - the request failed because of some internal resource error (e.g. database connection, timeout etc.).
43 - invalid or unknown application ID.
45 - invalid or unknown MPN device ID.
46 - invalid or unknown MPN subscription ID.
48 - MPN device suspended.
66 - an unexpected exception was thrown by the Metadata Adapter while authorizing the connection.
68 - the Server could not fulfill the request because of an internal error.
<= 0 - the Metadata Adapter has refused the unsubscription request; the code value is dependent on the specific Metadata Adapter implementation.
Declaration
Swift
func mpnSubscription(_ subscription: MPNSubscription, didFailUnsubscriptionWithErrorCode code: Int, message: String?)Parameters
subscriptionThe
MPNSubscriptioninvolved.codeThe error code sent by the Server.
messageThe description of the error sent by the Server; it can be nil.
-
Event handler called when the server notifies that an
MPNSubscriptiondid trigger.For this event to be called the
MPNSubscriptionmust have aMPNSubscription.triggerExpressionset and it must have been evaluated to true at least once.Note that this event can be called multiple times in the life of an
MPNSubscriptioninstance only in case it is subscribed multiple times throughLightstreamerClient.unsubscribeMPN(_:)andLightstreamerClient.subscribeMPN(_:coalescing:). Two consecutive calls to this method are not possible.Note also that in some server clustering configurations this event may not be called. The corrisponding push notification is always sent, though.
See also
Declaration
Swift
func mpnSubscriptionDidTrigger(_ subscription: MPNSubscription)Parameters
subscriptionThe
MPNSubscriptioninvolved. -
Event handler called when the server notifies that an
MPNSubscriptionchanged its status.Note that in some server clustering configurations the status change for the MPN subscription’s trigger event may not be called. The corrisponding push notification is always sent, though.
See also
See also
Declaration
Swift
func mpnSubscription(_ subscription: MPNSubscription, didChangeStatus status: MPNSubscription.Status, timestamp: Int64)Parameters
subscriptionThe
MPNSubscriptioninvolved.statusThe new status of the MPN subscription.
timestampThe server-side timestamp of the new subscription status.
-
Event handler called each time the value of a property of
MPNSubscriptionis changed.Properties can be modified by direct calls to them or by server sent events. A propery may be changed by a server sent event when the MPN subscription is modified, or when two MPN subscriptions coalesce (see
LightstreamerClient.subscribeMPN(_:coalescing:)).Possible property names are the following:
modegroupschemaadapternotification_formattriggerrequested_buffer_sizerequested_max_frequencystatus_timestamp
Declaration
Swift
func mpnSubscription(_ subscription: MPNSubscription, didChangeProperty property: String)Parameters
subscriptionThe
MPNSubscriptioninvolved.propertyThe name of the changed property.
-
Event handler called when the server notifies an error while modifying the trigger expression or the notification format of an
MPNSubscription.By implementing this method it is possible to perform recovery actions.
The error code can be one of the following:
3 - Protocol mismatch.
22 - bad Group name for this Schema.
23 - bad Schema name.
40 - the MPN Module is disabled, either by configuration or by license restrictions.
41 - the request failed because of some internal resource error (e.g. database connection, timeout etc.).
44 - invalid syntax in trigger expression.
45 - invalid or unknown MPN device ID.
46 - invalid or unknown MPN subscription ID (for MPN subscription modifications).
47 - invalid argument name in notification format or trigger expression.
48 - MPN device suspended.
49 - one or more subscription properties exceed maximum size.
50 - no items or fields have been specified.
52 - the notification format is not a valid JSON structure.
53 - the notification format is empty.
56 - MPN subscription to be modified had changed.
66 - an unexpected exception was thrown by the Metadata Adapter while authorizing the connection.
68 - the Server could not fulfill the request because of an internal error.
<= 0 - the Metadata Adapter has refused the subscription request; the code value is dependent on the specific Metadata Adapter implementation.
See also
See also
Declaration
Swift
func mpnSubscription(_ subscription: MPNSubscription, didFailModificationWithErrorCode code: Int, message: String?, property: String)Parameters
subscriptionThe
MPNSubscriptioninvolved.codeThe error code sent by the Server.
messageThe description of the error sent by the Server.
propertyThe name of the property which raised the error. It can be either
notification_formatortrigger.
MPNSubscriptionDelegate Protocol Reference