C# Class Opc.Ua.Server.SubscriptionManager

A generic session manager object for a server.
Inheritance: IDisposable, ISubscriptionManager
ファイルを表示 Open project: OPCFoundation/UA-.NET Class Usage Examples

Public Methods

Method 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.

Protected Methods

Method 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

Method 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 method

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

CalculateLifetimeCount() protected method

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

CalculateMaxNotificationsPerPublish() protected method

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

CalculatePublishingInterval() protected method

Calculates the publishing interval.
protected CalculatePublishingInterval ( double publishingInterval ) : double
publishingInterval double
return double

CompletePublish() public method

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

ConditionRefresh() public method

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

CreateMonitoredItems() public method

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
return void

CreateSubscription() protected method

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
return Subscription

CreateSubscription() public method

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
return void

DeleteMonitoredItems() public method

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
return void

DeleteSubscription() public method

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

DeleteSubscriptions() public method

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

Dispose() public method

Frees any unmanaged resources.
public Dispose ( ) : void
return void

Dispose() protected method

An overrideable version of the Dispose.
protected Dispose ( bool disposing ) : void
disposing bool
return void

GetNextMessage() public method

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
return NotificationMessage

GetSubscriptions() public method

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

ModifyMonitoredItems() public method

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
return void

ModifySubscription() public method

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
return void

Publish() public method

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
return NotificationMessage

RaiseSubscriptionEvent() protected method

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

Republish() public method

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

SessionClosing() public method

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

SetMonitoringMode() public method

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
return void

SetPublishingMode() public method

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
return void

SetTriggering() public method

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
return void

Shutdown() public method

Closes all subscriptions and rejects any new requests.
public Shutdown ( ) : void
return void

Startup() public method

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

SubscriptionManager() public method

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

TransferSubscriptions() public method

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
return void