C# Class Opc.Ua.Server.SubscriptionManager

A generic session manager object for a server.
Inheritance: IDisposable, ISubscriptionManager
Afficher le fichier Open project: OPCFoundation/UA-.NET Class Usage Examples

Méthodes publiques

Méthode Description
CompletePublish ( OperationContext context, AsyncPublishOperation operation ) : bool

Completes the publish.

ConditionRefresh ( OperationContext context, uint subscriptionId ) : void

Refreshes the conditions for the specified subscription.

CreateMonitoredItems ( OperationContext context, uint subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Adds monitored items to a subscription.

CreateSubscription ( OperationContext context, double requestedPublishingInterval, uint requestedLifetimeCount, uint requestedMaxKeepAliveCount, uint maxNotificationsPerPublish, bool publishingEnabled, byte priority, uint &subscriptionId, double &revisedPublishingInterval, uint &revisedLifetimeCount, uint &revisedMaxKeepAliveCount ) : void

Creates a new subscription.

DeleteMonitoredItems ( OperationContext context, uint subscriptionId, UInt32Collection monitoredItemIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Deletes the monitored items in a subscription.

DeleteSubscription ( OperationContext context, uint subscriptionId ) : StatusCode

Deletes the specified subscription.

DeleteSubscriptions ( OperationContext context, UInt32Collection subscriptionIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Deletes group of subscriptions.

Dispose ( ) : void

Frees any unmanaged resources.

GetNextMessage ( OperationContext context, SessionPublishQueue queue, AsyncPublishOperation operation, uint &subscriptionId, UInt32Collection &availableSequenceNumbers, bool &moreNotifications ) : NotificationMessage

Publishes a subscription.

GetSubscriptions ( ) : IList

Returns all of the subscriptions known to the subscription manager.

ModifyMonitoredItems ( OperationContext context, uint subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemModifyRequestCollection itemsToModify, MonitoredItemModifyResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Modifies monitored items in a subscription.

ModifySubscription ( OperationContext context, uint subscriptionId, double requestedPublishingInterval, uint requestedLifetimeCount, uint requestedMaxKeepAliveCount, uint maxNotificationsPerPublish, byte priority, double &revisedPublishingInterval, uint &revisedLifetimeCount, uint &revisedMaxKeepAliveCount ) : void

Modifies an existing subscription.

Publish ( OperationContext context, SubscriptionAcknowledgementCollection subscriptionAcknowledgements, AsyncPublishOperation operation, uint &subscriptionId, UInt32Collection &availableSequenceNumbers, bool &moreNotifications, StatusCodeCollection &acknowledgeResults, DiagnosticInfoCollection &acknowledgeDiagnosticInfos ) : NotificationMessage

Publishes a subscription.

Republish ( OperationContext context, uint subscriptionId, uint retransmitSequenceNumber ) : NotificationMessage

Republishes a previously published notification message.

SessionClosing ( OperationContext context, NodeId sessionId, bool deleteSubscriptions ) : void

Signals that a session is closing.

SetMonitoringMode ( OperationContext context, uint subscriptionId, MonitoringMode monitoringMode, UInt32Collection monitoredItemIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Changes the monitoring mode for a set of items.

SetPublishingMode ( OperationContext context, bool publishingEnabled, UInt32Collection subscriptionIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Sets the publishing mode for a set of subscriptions.

SetTriggering ( OperationContext context, uint subscriptionId, uint triggeringItemId, UInt32Collection linksToAdd, UInt32Collection linksToRemove, StatusCodeCollection &addResults, DiagnosticInfoCollection &addDiagnosticInfos, StatusCodeCollection &removeResults, DiagnosticInfoCollection &removeDiagnosticInfos ) : void

Updates the triggers for the monitored item.

Shutdown ( ) : void

Closes all subscriptions and rejects any new requests.

Startup ( ) : void

Starts up the manager makes it ready to create subscriptions.

SubscriptionManager ( IServerInternal server, ApplicationConfiguration configuration ) : System

Initializes the manager with its configuration.

TransferSubscriptions ( OperationContext context, UInt32Collection subscriptionIds, TransferResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void

Attaches a groups a subscriptions to a different sesssion.

Méthodes protégées

Méthode Description
CalculateKeepAliveCount ( double publishingInterval, uint keepAliveCount ) : uint

Calculates the keep alive count.

CalculateLifetimeCount ( double publishingInterval, uint keepAliveCount, uint lifetimeCount ) : uint

Calculates the lifetime count.

CalculateMaxNotificationsPerPublish ( uint maxNotificationsPerPublish ) : uint

Calculates the maximum number of notifications per publish.

CalculatePublishingInterval ( double publishingInterval ) : double

Calculates the publishing interval.

CreateSubscription ( OperationContext context, uint subscriptionId, double publishingInterval, uint lifetimeCount, uint keepAliveCount, uint maxNotificationsPerPublish, byte priority, bool publishingEnabled ) : Subscription

Creates a new instance of a subscription.

Dispose ( bool disposing ) : void

An overrideable version of the Dispose.

RaiseSubscriptionEvent ( Subscription subscription, bool deleted ) : void

Raises an event related to a subscription.

Private Methods

Méthode Description
CleanupSubscriptions ( IServerInternal server, IList subscriptionsToDelete ) : void

Cleanups the subscriptions.

CleanupSubscriptions ( object data ) : void

Deletes any expired subscriptions.

DoConditionRefresh ( object state ) : void

Completes a refresh conditions request.

GetPublishingIntervalCount ( ) : uint

Gets the total number of publishing intervals in use.

PublishSubscriptions ( object data ) : void

Periodically checks if the sessions have timed out.

SubscriptionExpired ( Subscription subscription ) : void

Called when a subscription expires.

UpdateCurrentMonitoredItemsCount ( SessionDiagnosticsDataType diagnostics, int change ) : void

Updates the current monitored item count for the session.

Method Details

CalculateKeepAliveCount() protected méthode

Calculates the keep alive count.
protected CalculateKeepAliveCount ( double publishingInterval, uint keepAliveCount ) : uint
publishingInterval double
keepAliveCount uint
Résultat uint

CalculateLifetimeCount() protected méthode

Calculates the lifetime count.
protected CalculateLifetimeCount ( double publishingInterval, uint keepAliveCount, uint lifetimeCount ) : uint
publishingInterval double
keepAliveCount uint
lifetimeCount uint
Résultat uint

CalculateMaxNotificationsPerPublish() protected méthode

Calculates the maximum number of notifications per publish.
protected CalculateMaxNotificationsPerPublish ( uint maxNotificationsPerPublish ) : uint
maxNotificationsPerPublish uint
Résultat uint

CalculatePublishingInterval() protected méthode

Calculates the publishing interval.
protected CalculatePublishingInterval ( double publishingInterval ) : double
publishingInterval double
Résultat double

CompletePublish() public méthode

Completes the publish.
public CompletePublish ( OperationContext context, AsyncPublishOperation operation ) : bool
context OperationContext The context.
operation AsyncPublishOperation The asynchronous operation.
Résultat bool

ConditionRefresh() public méthode

Refreshes the conditions for the specified subscription.
public ConditionRefresh ( OperationContext context, uint subscriptionId ) : void
context OperationContext
subscriptionId uint
Résultat void

CreateMonitoredItems() public méthode

Adds monitored items to a subscription.
public CreateMonitoredItems ( OperationContext context, uint subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionId uint
timestampsToReturn TimestampsToReturn
itemsToCreate MonitoredItemCreateRequestCollection
results MonitoredItemCreateResultCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

CreateSubscription() protected méthode

Creates a new instance of a subscription.
protected CreateSubscription ( OperationContext context, uint subscriptionId, double publishingInterval, uint lifetimeCount, uint keepAliveCount, uint maxNotificationsPerPublish, byte priority, bool publishingEnabled ) : Subscription
context OperationContext
subscriptionId uint
publishingInterval double
lifetimeCount uint
keepAliveCount uint
maxNotificationsPerPublish uint
priority byte
publishingEnabled bool
Résultat Subscription

CreateSubscription() public méthode

Creates a new subscription.
public CreateSubscription ( OperationContext context, double requestedPublishingInterval, uint requestedLifetimeCount, uint requestedMaxKeepAliveCount, uint maxNotificationsPerPublish, bool publishingEnabled, byte priority, uint &subscriptionId, double &revisedPublishingInterval, uint &revisedLifetimeCount, uint &revisedMaxKeepAliveCount ) : void
context OperationContext
requestedPublishingInterval double
requestedLifetimeCount uint
requestedMaxKeepAliveCount uint
maxNotificationsPerPublish uint
publishingEnabled bool
priority byte
subscriptionId uint
revisedPublishingInterval double
revisedLifetimeCount uint
revisedMaxKeepAliveCount uint
Résultat void

DeleteMonitoredItems() public méthode

Deletes the monitored items in a subscription.
public DeleteMonitoredItems ( OperationContext context, uint subscriptionId, UInt32Collection monitoredItemIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionId uint
monitoredItemIds UInt32Collection
results StatusCodeCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

DeleteSubscription() public méthode

Deletes the specified subscription.
public DeleteSubscription ( OperationContext context, uint subscriptionId ) : StatusCode
context OperationContext
subscriptionId uint
Résultat StatusCode

DeleteSubscriptions() public méthode

Deletes group of subscriptions.
public DeleteSubscriptions ( OperationContext context, UInt32Collection subscriptionIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionIds UInt32Collection
results StatusCodeCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

Dispose() public méthode

Frees any unmanaged resources.
public Dispose ( ) : void
Résultat void

Dispose() protected méthode

An overrideable version of the Dispose.
protected Dispose ( bool disposing ) : void
disposing bool
Résultat void

GetNextMessage() public méthode

Publishes a subscription.
public GetNextMessage ( OperationContext context, SessionPublishQueue queue, AsyncPublishOperation operation, uint &subscriptionId, UInt32Collection &availableSequenceNumbers, bool &moreNotifications ) : NotificationMessage
context OperationContext
queue SessionPublishQueue
operation AsyncPublishOperation
subscriptionId uint
availableSequenceNumbers UInt32Collection
moreNotifications bool
Résultat NotificationMessage

GetSubscriptions() public méthode

Returns all of the subscriptions known to the subscription manager.
public GetSubscriptions ( ) : IList
Résultat IList

ModifyMonitoredItems() public méthode

Modifies monitored items in a subscription.
public ModifyMonitoredItems ( OperationContext context, uint subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemModifyRequestCollection itemsToModify, MonitoredItemModifyResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionId uint
timestampsToReturn TimestampsToReturn
itemsToModify MonitoredItemModifyRequestCollection
results MonitoredItemModifyResultCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

ModifySubscription() public méthode

Modifies an existing subscription.
public ModifySubscription ( OperationContext context, uint subscriptionId, double requestedPublishingInterval, uint requestedLifetimeCount, uint requestedMaxKeepAliveCount, uint maxNotificationsPerPublish, byte priority, double &revisedPublishingInterval, uint &revisedLifetimeCount, uint &revisedMaxKeepAliveCount ) : void
context OperationContext
subscriptionId uint
requestedPublishingInterval double
requestedLifetimeCount uint
requestedMaxKeepAliveCount uint
maxNotificationsPerPublish uint
priority byte
revisedPublishingInterval double
revisedLifetimeCount uint
revisedMaxKeepAliveCount uint
Résultat void

Publish() public méthode

Publishes a subscription.
public Publish ( OperationContext context, SubscriptionAcknowledgementCollection subscriptionAcknowledgements, AsyncPublishOperation operation, uint &subscriptionId, UInt32Collection &availableSequenceNumbers, bool &moreNotifications, StatusCodeCollection &acknowledgeResults, DiagnosticInfoCollection &acknowledgeDiagnosticInfos ) : NotificationMessage
context OperationContext
subscriptionAcknowledgements SubscriptionAcknowledgementCollection
operation AsyncPublishOperation
subscriptionId uint
availableSequenceNumbers UInt32Collection
moreNotifications bool
acknowledgeResults StatusCodeCollection
acknowledgeDiagnosticInfos DiagnosticInfoCollection
Résultat NotificationMessage

RaiseSubscriptionEvent() protected méthode

Raises an event related to a subscription.
protected RaiseSubscriptionEvent ( Subscription subscription, bool deleted ) : void
subscription Subscription
deleted bool
Résultat void

Republish() public méthode

Republishes a previously published notification message.
public Republish ( OperationContext context, uint subscriptionId, uint retransmitSequenceNumber ) : NotificationMessage
context OperationContext
subscriptionId uint
retransmitSequenceNumber uint
Résultat NotificationMessage

SessionClosing() public méthode

Signals that a session is closing.
public SessionClosing ( OperationContext context, NodeId sessionId, bool deleteSubscriptions ) : void
context OperationContext
sessionId NodeId
deleteSubscriptions bool
Résultat void

SetMonitoringMode() public méthode

Changes the monitoring mode for a set of items.
public SetMonitoringMode ( OperationContext context, uint subscriptionId, MonitoringMode monitoringMode, UInt32Collection monitoredItemIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionId uint
monitoringMode MonitoringMode
monitoredItemIds UInt32Collection
results StatusCodeCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

SetPublishingMode() public méthode

Sets the publishing mode for a set of subscriptions.
public SetPublishingMode ( OperationContext context, bool publishingEnabled, UInt32Collection subscriptionIds, StatusCodeCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
publishingEnabled bool
subscriptionIds UInt32Collection
results StatusCodeCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void

SetTriggering() public méthode

Updates the triggers for the monitored item.
public SetTriggering ( OperationContext context, uint subscriptionId, uint triggeringItemId, UInt32Collection linksToAdd, UInt32Collection linksToRemove, StatusCodeCollection &addResults, DiagnosticInfoCollection &addDiagnosticInfos, StatusCodeCollection &removeResults, DiagnosticInfoCollection &removeDiagnosticInfos ) : void
context OperationContext
subscriptionId uint
triggeringItemId uint
linksToAdd UInt32Collection
linksToRemove UInt32Collection
addResults StatusCodeCollection
addDiagnosticInfos DiagnosticInfoCollection
removeResults StatusCodeCollection
removeDiagnosticInfos DiagnosticInfoCollection
Résultat void

Shutdown() public méthode

Closes all subscriptions and rejects any new requests.
public Shutdown ( ) : void
Résultat void

Startup() public méthode

Starts up the manager makes it ready to create subscriptions.
public Startup ( ) : void
Résultat void

SubscriptionManager() public méthode

Initializes the manager with its configuration.
public SubscriptionManager ( IServerInternal server, ApplicationConfiguration configuration ) : System
server IServerInternal
configuration ApplicationConfiguration
Résultat System

TransferSubscriptions() public méthode

Attaches a groups a subscriptions to a different sesssion.
public TransferSubscriptions ( OperationContext context, UInt32Collection subscriptionIds, TransferResultCollection &results, DiagnosticInfoCollection &diagnosticInfos ) : void
context OperationContext
subscriptionIds UInt32Collection
results TransferResultCollection
diagnosticInfos DiagnosticInfoCollection
Résultat void