Lightstreamer .Net Adapter 1.11.0
ContentsIndexHome
PreviousUpNext
IMetadataProvider Methods

The methods of the IMetadataProvider class are listed here.

 
Name 
Description 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the maximum size allowed for the buffer internally used to enqueue subsequent ItemUpdates for the same Item. If this buffer is more than 1 element deep, a short burst of ItemEvents from the Data Adapter can be forwarded to the Client without losses, though with some delay. The buffer size is specified in the Request. Its maximum allowed size can be different for different Users. Such buffering applies only to Items requested with publishing Mode MERGE or DISTINCT. However, if the Item has been requested with unfiltered dispatching, then... more 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the bandwidth level to be allowed to a User for a push Session.
This method runs in the Server authentication thread pool, if defined.
Edition Note: Bandwidth Control is an optional feature, available depending on Edition and License Type.
 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the ItemUpdate frequency to be allowed to a User for a specific Item. An unlimited frequency can also be specified. Such filtering applies only to Items requested with publishing Mode MERGE, DISTINCT and COMMAND (in the latter case, the frequency limitation applies to the UPDATE events for each single key). If an Item is requested with publishing Mode MERGE, DISTINCT or COMMAND and unfiltered dispatching has been specified, then returning any limited maximum frequency will cause the refusal of the request by the Kernel.
This method runs in the... more 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the maximum allowed length for a Snapshot of an Item that has been requested with publishing Mode DISTINCT. In fact, in DISTINCT publishing Mode, the Snapshot for an Item is made by the last events received for the Item and the Client can specify how many events it would like to receive. Thus, Lightstreamer Kernel must always keep a buffer with some of the last events received for the Item and the length of the buffer is limited by the value returned by this method. The maximum Snapshot... more 
 
Called by Lightstreamer Kernel through the Remote Server to resolve an Item Group name (or Item List specification) supplied in a Request. The names of the Items in the Group must be returned. For instance, the client could be allowed to specify the "NASDAQ100" Group name and, upon that, the list of all items corresponding to the stocks included in that index could be returned.
Possibly, the content of an Item Group may be dependant on the User who is issuing the Request or on the specific Session instance.
When an Item List specification is supplied, it is made of... more 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the minimum ItemEvent frequency from the Data Adapter at which the events for an Item are guaranteed to be delivered to the Clients without loss of information. In case of an incoming ItemEvent frequency greater than this value, Lightstreamer Kernel may prefilter the events. Such prefiltering applies only for Items requested with publishing Mode MERGE or DISTINCT. The frequency set should be greater than the ItemUpdate frequencies allowed to the different Users for that Item. Moreover, because this filtering is made without buffers, the frequency set should be far... more 
 
Called by Lightstreamer Kernel through the Remote Server to resolve a Field Schema name (or Field List specification) supplied in a Request. The names of the Fields in the Schema must be returned.
Possibly, the content of a Field Schema may be dependant on the User who is issuing the Request, on the specific Session instance or on the Item Group (or Item List) to which the Request is related.
When a A Field List specification is supplied, it is made of a space-separated list of the names of the Fields in the Schema. This convention is used by some... more 
 
Init 
Called by the Remote Server to provide initialization information to the Metadata Adapter. If an exception occurs in this method, Lightstreamer Kernel can't complete the startup and must exit. The initialization information can be supplied in different ways, depending on the way the Remote Server is launched.
The call must not be blocking; any polling cycle or similar must be started in a different thread. Any delay in returning from this call will in turn delay the Server initialization. If an exception occurs in this method, Lightstreamer Server can't complete the startup and must exit.
 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the allowance of a publishing Mode for an Item. A publishing Mode can or cannot be allowed depending on the User. The Metadata Adapter should ensure that conflicting Modes are not both allowed for the same Item (even for different Users), otherwise some Requests will be eventually refused by Lightstreamer Kernel. The conflicting Modes are MERGE, DISTINCT and COMMAND.
This method runs in the Server thread pool specific for the Data Adapter that supplies the involved items, if defined.
 
 
Called by Lightstreamer Kernel through the Remote Server to ask for the allowance of a publishing Mode for an Item (for at least one User). The Metadata Adapter should ensure that conflicting Modes are not both allowed for the same Item. The conflicting Modes are MERGE, DISTINCT and COMMAND.
This method runs in the Server thread pool specific for the Data Adapter that supplies the involved items, if defined.
 
 
Called by Lightstreamer Kernel to check that a User is enabled to access the specified MPN device. The success of this method call is a prerequisite for all MPN operations, including the activation of a subscription, the deactivation of a subscription, the change of a device token, etc. Some of these operations have a subsequent specific notification, i.e. NotifyMpnSubscriptionActivation and NotifyMpnDeviceTokenChange.
Take particular precautions when authorizing device access, if possible ensure the user is entitled to the specific platform, device token and application ID.
Push Notifications is an optional feature, available depending on Edition and License Type. 
 
Called by Lightstreamer Kernel to check that a User is enabled to change the token of an MPN device. If the check succeeds, this also notifies the Metadata Adapter that future client requests should be issued by specifying the new device token.
Take particular precautions when authorizing device token changes, if possible ensure the user is entitled to the new device token.
Push Notifications is an optional feature, available depending on Edition and License Type. 
 
Called by Lightstreamer Kernel to check that a User is enabled to activate a Push Notification subscription. If the check succeeds, this also notifies the Metadata Adapter that Push Notifications are being activated.
Take particular precautions when authorizing subscriptions, if possible check for validity the trigger expression reported by MpnSubscriptionInfo.Trigger, as it may contain maliciously crafted code. The MPN notifiers configuration file contains a first-line validation mechanism based on regular expression that may also be used for this purpose.
Push Notifications is an optional feature, available depending on Edition and License Type. 
 
Called by Lightstreamer Kernel through the Remote Server to check that a User is enabled to open a new push Session. If the check succeeds, this also notifies the Metadata Adapter that the Session is being assigned to the User.
Request context information is also available; this allows for differentiating group, schema and message management based on specific Request characteristics.
This method runs in the Server thread pool specific for the Adapter Set, if defined.
 
 
Called by Lightstreamer Kernel through the Remote Server to check that a User is enabled to add some Tables (i.e. Subscriptions) to a push Session. If the check succeeds, this also notifies the Metadata Adapter that the Tables are being added to the Session.
The method is invoked only if enabled for the User through WantsTablesNotification.
This method runs in the Server thread pool specific for the Data Adapter that supplies the involved items, if defined.
 
 
Called by Lightstreamer Kernel through the Remote Server to notify the Metadata Adapter that a push Session has been closed.
This method is called by the Server asynchronously and does not consume a pooled thread on the Server. As a consequence, it is not guaranteed that no more calls related with this sessionID, like notifyNewTables, notifyTablesClose, and getItems can occur after its invocation on parallel threads. Accepting them would have no effect. However, if the method may have side-effects on the Adapter, like notifyUserMessage, the Adapter is responsible for checking if the session is still valid.
 
 
Called by Lightstreamer Kernel through the Remote Server to notify the Metadata Adapter that some Tables (i.e. Subscriptions) have been removed from a push Session.
The method is invoked only if enabled for the User through WantsTablesNotification.
This method is called by the Server asynchronously and does not consume a pooled thread on the Server.
 
 
This is the overview for the NotifyUser method overload. 
 
Called by Lightstreamer Kernel through the Remote Server to forward a message received by a User. The interpretation of the message is up to the Metadata Adapter. A message can also be refused.
This method runs in the Server thread pool specific for the Adapter Set, if defined.
 
 
Called by Lightstreamer Kernel through the Remote Server to know whether the Metadata Adapter must or must not be notified any time a Table (i.e. Subscription) is added or removed from a push Session owned by a supplied User. If this method returns false, the methods NotifyNewTables and NotifyTablesClose will never be called for this User, saving some processing time. In this case, the User will be allowed to add to his Sessions any Tables (i.e. Subscriptions) he wants.
This method runs in the Server authentication thread pool, if defined.