C# 클래스 Opc.Ua.Server.SubscriptionManager

A generic session manager object for a server.
상속: IDisposable, ISubscriptionManager
파일 보기 프로젝트 열기: OPCFoundation/UA-.NET 1 사용 예제들

공개 메소드들

메소드 설명
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.

보호된 메소드들

메소드 설명
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.

비공개 메소드들

메소드 설명
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.

메소드 상세

CalculateKeepAliveCount() 보호된 메소드

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

CalculateLifetimeCount() 보호된 메소드

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

CalculateMaxNotificationsPerPublish() 보호된 메소드

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

CalculatePublishingInterval() 보호된 메소드

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

CompletePublish() 공개 메소드

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

ConditionRefresh() 공개 메소드

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

CreateMonitoredItems() 공개 메소드

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
리턴 void

CreateSubscription() 보호된 메소드

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
리턴 Subscription

CreateSubscription() 공개 메소드

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
리턴 void

DeleteMonitoredItems() 공개 메소드

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
리턴 void

DeleteSubscription() 공개 메소드

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

DeleteSubscriptions() 공개 메소드

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

Dispose() 공개 메소드

Frees any unmanaged resources.
public Dispose ( ) : void
리턴 void

Dispose() 보호된 메소드

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

GetNextMessage() 공개 메소드

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
리턴 NotificationMessage

GetSubscriptions() 공개 메소드

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

ModifyMonitoredItems() 공개 메소드

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
리턴 void

ModifySubscription() 공개 메소드

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
리턴 void

Publish() 공개 메소드

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
리턴 NotificationMessage

RaiseSubscriptionEvent() 보호된 메소드

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

Republish() 공개 메소드

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

SessionClosing() 공개 메소드

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

SetMonitoringMode() 공개 메소드

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
리턴 void

SetPublishingMode() 공개 메소드

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
리턴 void

SetTriggering() 공개 메소드

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
리턴 void

Shutdown() 공개 메소드

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

Startup() 공개 메소드

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

SubscriptionManager() 공개 메소드

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

TransferSubscriptions() 공개 메소드

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
리턴 void