Opc.Ua.Server Calculates the value of an aggregate. Creates a default aggregator. Initializes the calculation stream. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Initializes the calculation stream. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. The aggregate function applied by the calculator. Queues a raw value for processing. The data value to process. True if successful, false if the timestamp has been superceeded by values already in the stream. Returns the next processed value. If true a partial interval should be processed. The processed value. Null if nothing available and returnPartial is false. Returns true if the specified time is later than the end of the current interval. Return true if time flows forward and the time is later than the end time. The start time for the request. The end time for the request. The processing interval for the request. True if the data series requires stepped interpolation. The configuration to use when processing. Whether to use the server timestamp for all processing. True if data is being processed in reverse order. Whether to use the server timestamp for all processing. True if all values required for the request have been received and processed True if the GetProcessedValue method should set the Partial bit when appropriate. True if data is extrapolated after the end of data. Compares timestamps for two DataValues according to the current UseServerTimestamp setting. The first value to compare. The second value to compare. Less than 0 if value1 is earlier than value2; 0 if they are equal; Greater than zero otherwise. Compares timestamps for two DataValues according to the current UseServerTimestamp setting. The first value to compare. The second value to compare. Less than 0 if value1 is earlier than value2; 0 if they are equal; Greater than zero otherwise. Compares timestamps for two DataValues according to the current UseServerTimestamp setting. The first value to compare. The second value to compare. Less than 0 if value1 is earlier than value2; 0 if they are equal; Greater than zero otherwise. Compares timestamps for a timestamp to a DataValue according to the current UseServerTimestamp setting. The timestamp to compare. The data value to compare. Less than 0 if value1 is earlier than value2; 0 if they are equal; Greater than zero otherwise. Checks if the value is good according to the configuration rules. The value to test. True if the value is good. Stores information about a slice of data to be processed. The start time for the slice. The end time for the slice. True if the slice is a partial interval. True if all of the data required to process the slice has been collected. True if the slice includes times that are outside of the available dataset. The first early bound for the slice. The second early bound for the slice (always earlier than the first). The beginning of the slice. The end of the slice. The late bound for the slice. The last value which was processed. Creates a new time slice to process. The previous processed slice. The new time slice. Creates a new time slice to process. The slice to update. True if the slice is complete. Calculates the value for the timeslice. The slice to process. The processed value. Calculate the interpolate aggregate for the timeslice. Return a value indicating there is no data in the time slice. Returns the timestamp to use for the slice value. Return a value indicating there is no data in the time slice. Interpolates a value at the timestamp. The timestamp. The timeslice that contains the timestamp. The interpolated value. Calculate the value at the timestamp using slopped interpolation. Calculate the value at the timestamp using slopped interpolation. Converts the value to a double for use in calculations (throws exceptions if conversion fails). Converts the value back to its original type (throws exceptions if conversion fails). Returns the simple bound for the timestamp. Returns the values in the list with simple bounds. Returns the values between the start time and the end time for the slice. Returns the values in the list with interpolated bounds. A subset of a slice bounded by two raw data points. The value at the start of the region. The value at the end of the region. The timestamp at the start of the region. The length of the region. The status for the region. The data point at the start of the region. Returns the values in the list with simple bounds. Calculates the value based status code for the slice Calculates the status code for the slice Calculates the status code for the slice An object that manages aggregate factories supported by the server. Initilizes the manager. Frees any unmanaged resources. An overrideable version of the Dispose. Checks if the aggregate is supported by the server. The id of the aggregate function. True if the aggregate is supported. The minimum processing interval for any aggregate calculation. Returns the default configuration for the specified variable id. The id of history data node. The configuration. Sets the default aggregate configuration. The default aggregate configuration.. Creates a new aggregate calculator. The id of the aggregate function. When to start processing. When to stop processing. The processing interval. Whether stepped interpolation should be used. The configuaration to use. Registers an aggregate factory. The id of the aggregate function. The id of the aggregate name. The factory used to create calculators. Unregisters an aggregate factory. The id of the aggregate function. Creates a new instance of an aggregate factory. The set of built-in aggregate factories. Stores the mapping for a aggregate id to the calculator. Mapping for all of the standard aggregates. Returns the name for a standard aggregates. Returns the id for a standard aggregates. Creates a calculator for one of the standard aggregates. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculates the RegSlope, RegConst and RegStdDev aggregates for the timeslice. Calculates the StdDev, Variance, StdDev2 and Variance2 aggregates for the timeslice. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculates the Count aggregate for the timeslice. Calculates the AnnotationCount aggregate for the timeslice. Calculates the DurationInStateZero and DurationInStateNonZero aggregates for the timeslice. Calculates the Count aggregate for the timeslice. An interface that captures the original active API of the AggregateCalculator class required to integrate with the subscription code. The aggregate function applied by the calculator. Pushes the next raw value into the stream. The data value to append to the stream. True if successful, false if the source timestamp has been superceeded by values already in the stream. Returns the next processed value. If true a partial interval should be processed. The processed value. Null if nothing available and returnPartial is false. Returns true if the specified time is later than the end of the current interval. Return true if time flows forward and the time is later than the end time. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculate the Minimum, Maximum, MinimumActualTime and MaximumActualTime aggregates for the timeslice. Calculate the Minimum2, Maximum2, MinimumActualTime2, MaximumActualTime2 and Range2 aggregates for the timeslice. A aggregate filter with additional state information. Whether the variable requires stepped interpolation. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculate the Start and End aggregates for the timeslice. Calculates the Delta aggregate for the timeslice. Calculate the Start2 and End2 aggregates for the timeslice. Calculates the Delta2 aggregate for the timeslice. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculates the DurationGood and DurationBad aggregates for the timeslice. Calculates the DurationGood and DurationBad aggregates for the timeslice. Calculates the value of an aggregate. Initializes the aggregate calculator. The aggregate function to apply. The start time. The end time. The processing interval. Whether to use stepped interpolation. The aggregate configuration. Computes the value for the timeslice. Calculates the RegSlope, RegConst and RegStdDev aggregates for the timeslice. Calculates the StdDev, Variance, StdDev2 and Variance2 aggregates for the timeslice. Priviledged identity which can access the system configuration. Create a user identity with the priviledge to modify the system configuration. The user identity. The Server Configuration Node Manager. Initializes the configuration and diagnostics manager. Replaces the generic node with a node specific to the model. Creates the configuration node for the server. Gets and returns the node associated with the specified NamespaceUri Gets or creates the node for the specified NamespaceUri. Determine if the impersonated user has admin access. Finds the node for the specified NamespaceUri. Clear NamespaceMetadata nodes cache in case nodes are added or deleted The implementation of a server trustlist. Initialize the trustlist with default values. Delegate to validate the access to the trust list. A sample implementation of the INodeManager interface. This node manager is a base class used in multiple samples. It implements the INodeManager interface and allows sub-classes to override only the methods that they need. This example is not part of the SDK because most real implementations of a INodeManager will need to modify the behavior of the base class. Initializes the node manager. Initializes the node manager. Frees any unmanaged resources. An overrideable version of the Dispose. Creates the NodeId for the specified node. The context. The node. The new NodeId. Acquires the lock on the node manager. Gets the server that the node manager belongs to. The default context to use. Gets the default index for the node manager's namespace. Gets the namespace indexes owned by the node manager. The namespace indexes. Gets or sets the maximum size of a monitored item queue. The maximum size of a monitored item queue. The root for the alias assigned to the node manager. The predefined nodes managed by the node manager. The root notifiers for the node manager. Gets the table of monitored items. Gets the table of nodes being monitored. Sets the namespaces supported by the NodeManager. The namespace uris. Sets the namespace indexes supported by the NodeManager. Returns true if the namespace for the node id is one of the namespaces managed by the node manager. The node id to check. True if the namespace is one of the nodes. Returns the node if the handle refers to a node managed by this manager. The handle to check. Non-null if the handle belongs to the node manager. Returns the state object for the specified node if it exists. Creates a new instance and assigns unique identifiers to all children. The operation context. An optional parent identifier. The reference type from the parent. The browse name. The instance to create. The new node id. Deletes a node and all of its children. Searches the node id in all node managers Returns the namespaces used by the node manager. All NodeIds exposed by the node manager must be qualified by a namespace URI. This property returns the URIs used by the node manager. In this example all NodeIds use a single URI. Does any initialization required before the address space can be used. The externalReferences is an out parameter that allows the node manager to link to nodes in other node managers. For example, the 'Objects' node is managed by the CoreNodeManager and should have a reference to the root folder node(s) exposed by this node manager. Loads a node set from a file or resource and addes them to the set of predefined nodes. Loads a node set from a file or resource and addes them to the set of predefined nodes. Loads a node set from a file or resource and addes them to the set of predefined nodes. Replaces the generic node with a node specific to the model. Recursively indexes the node and its children. Recursively indexes the node and its children. Called after a node has been deleted. Ensures that all reverse references exist. A list of references to add to external targets. Adds an external reference to the dictionary. Recursively adds the types to the type tree. Recursively adds the types to the type tree. Finds the specified and checks if it is of the expected type. Returns null if not found or not of the correct type. Frees any resources allocated for the address space. Returns a unique handle for the node. This must efficiently determine whether the node belongs to the node manager. If it does belong to NodeManager it should return a handle that does not require the NodeId to be validated again when the handle is passed into other methods such as 'Read' or 'Write'. Returns a unique handle for the node. This method is used to add bi-directional references to nodes from other node managers. The additional references are optional, however, the NodeManager should support them. This method is used to delete bi-directional references to nodes from other node managers. Returns the basic metadata for the node. Returns null if the node does not exist. This method validates any placeholder handle. Browses the references from a node managed by the node manager. The continuation point is created for every browse operation and contains the browse parameters. The node manager can store its state information in the Data and Index properties. Validates the view description passed to a browse request (throws on error). Checks if the node is in the view. Checks if the node is in the view. Checks if the reference is in the view. Returns the references for the node that meets the criteria specified. Returns the target of the specified browse path fragment(s). If reference exists but the node manager does not know the browse name it must return the NodeId as an unresolvedTargetIds. The caller will try to check the browse name. Reads the value for the specified attribute. Finds a node in the dynamic cache. The current context. The node handle. The cache to search. The node if found. Null otherwise. Marks the handle as validated and saves the node in the dynamic cache. Verifies that the specified node exists. Validates the nodes and reads the values from the underlying source. The context. The nodes to read. The values. The errors. The nodes to validate. The cache. Writes the value for the specified attributes. Validates the nodes and writes the value to the underlying system. The context. The nodes to write. The errors. The nodes to validate. The cache. Reads the history for the specified nodes. Releases the continuation points. Reads raw history data. Reads processed history data. Reads history data at specified times. Reads history events. Validates the nodes and reads the values from the underlying source. Updates the history for the specified nodes. Validates the nodes and updates the history. Updates the data history for one or more nodes. Updates the structured data history for one or more nodes. Updates the event history for one or more nodes. Deletes the data history for one or more nodes. Deletes the data history for one or more nodes. Deletes the event history for one or more nodes. Calls a method on the specified nodes. Calls a method on an object. Subscribes or unsubscribes to events produced by the specified source. This method is called when a event subscription is created or deletes. The node manager must start/stop reporting events for the specified object and all objects below it in the notifier hierarchy. Subscribes or unsubscribes to events produced by all event sources. This method is called when a event subscription is created or deleted. The node manager must start/stop reporting events for all objects that it manages. Adds a root notifier. The notifier. A root notifier is a notifier owned by the NodeManager that is not the target of a HasNotifier reference. These nodes need to be linked directly to the Server object. Removes a root notifier previously added with AddRootNotifier. The notifier. Reports an event for a root notifier. Subscribes to events. The context. The source. The monitored item. if set to true [unsubscribe]. Any error code. Called after subscribing/unsubscribing to events. The context. The monitored node. if set to true unsubscribing. Tells the node manager to refresh any conditions associated with the specified monitored items. This method is called when the condition refresh method is called for a subscription. The node manager must create a refresh event for each condition monitored by the subscription. Creates a new set of monitored items for a set of variables. This method only handles data change subscriptions. Event subscriptions are created by the SDK. Called when a batch of monitored items has been created. Creates a new set of monitored items for a set of variables. This method only handles data change subscriptions. Event subscriptions are created by the SDK. Reads the initial value for a monitored item. The context. The item handle. The monitored item. Called after creating a MonitoredItem. The context. The handle for the node. The monitored item. Validates Role permissions for the specified NodeId Validates the monitoring filter specified by the client. Revises an aggregate filter (may require knowledge of the variable being used). The context. The handle. The sampling interval for the monitored item. The queue size for the monitored item. The filter to revise. Good if the Modifies the parameters for a set of monitored items. Called when a batch of monitored items has been modified. Modifies the parameters for a monitored item. Called after modifying a MonitoredItem. The context. The handle for the node. The monitored item. Deletes a set of monitored items. Called when a batch of monitored items has been modified. Deletes a monitored item. Called after deleting a MonitoredItem. The context. The handle for the node. The monitored item. Changes the monitoring mode for a set of monitored items. The context. The monitoring mode. The set of monitoring items to update. Flags indicating which items have been processed. Any errors. Called when a batch of monitored items has their monitoring mode changed. Changes the monitoring mode for an item. Called after changing the MonitoringMode for a MonitoredItem. The context. The handle for the node. The monitored item. The previous monitoring mode. The current monitoring mode. Called when a session is closed. Returns true if a node is in a view. Stores a reference count for entries in the component cache. Looks up a component in cache. Removes a reference to a component in thecache. Adds a node to the component cache. A node manager the diagnostic information exposed by the server. Initializes the node manager. An overrideable version of the Dispose. Creates the NodeId for the specified node. The context. The node. The new NodeId. Does any initialization required before the address space can be used. The externalReferences is an out parameter that allows the node manager to link to nodes in other node managers. For example, the 'Objects' node is managed by the CoreNodeManager and should have a reference to the root folder node(s) exposed by this node manager. Called when a client locks the server. Called when a client locks the server. Called when a client locks the server. Loads a node set from a file or resource and addes them to the set of predefined nodes. Replaces the generic node with a node specific to the model. Handles a request to refresh conditions for a subscription. Returns true of the node is a diagnostics node. Returns true of the node is a diagnostics node. Force out of band diagnostics update after a change of diagnostics variables. True is diagnostics are currently enabled. Sets the flag controlling whether diagnostics is enabled for the server. Creates the diagnostics node for the server. Creates the diagnostics node for a subscription. Delete the diagnostics node for a session. Creates the diagnostics node for a subscription. Delete the diagnostics node for a subscription. Gets the default history capabilities object. Adds an aggregate function to the server capabilities object. Updates the server diagnostics summary structure. Updates the session diagnostics summary structure. Updates the session diagnostics summary structure. Updates the subscription diagnostics summary structure. Does a scan before the diagnostics are read. Does a scan before the diagnostics are read. Reports notifications for any monitored diagnostic nodes. Validates the view description passed to a browse request (throws on error). Called after creating a MonitoredItem. The context. The handle for the node. The monitored item. Called after deleting a MonitoredItem. The context. The handle for the node. The monitored item. Called after changing the MonitoringMode for a MonitoredItem. The context. The handle for the node. The monitored item. The previous monitoring mode. The current monitoring mode. Stores the callback information for a session diagnostics structures. Stores the callback information for a subscription diagnostics structure. Creates a new sampled item. Deletes a sampled item. Polls each monitored item which requires sample. Provides a queue for data changes. Creates an empty queue. The delegate for the discarded value handler. Gets the current queue size. Gets number of elements actually contained in value queue. Sets the sampling interval used when queuing values. The new sampling interval. Sets the queue size. The new queue size. Whether to discard the oldest values if the queue overflows. Specifies which diagnostics which should be kept in the queue. Adds the value to the queue. The value to queue. The error to queue. Publishes the oldest value in the queue. The value. The error associated with the value. True if a value was found. False if the queue is empty. Adds the value to the queue. Discards values if the queue is full. The value to add. The error to add. Removes a value and an error from the queue. The value removed from the queue. The error removed from the queue. True if a value was found. False if the queue is empty. Sets the overflow bit in the value and error. The value to update. The error to update. Stores the current set of MonitoredItems for a Node. An instance of this object is created the first time a MonitoredItem is created for any attribute of a Node. The object is deleted when the last MonitoredItem is deleted. Initializes a new instance of the class. The node manager. The node. Gets or sets the NodeManager which the MonitoredNode belongs to. Gets or sets the Node being monitored. Gets the current list of data change MonitoredItems. Gets the current list of event MonitoredItems. Gets a value indicating whether this instance has monitored items. true if this instance has monitored items; otherwise, false. Adds the specified data change monitored item. The monitored item. Removes the specified data change monitored item. The monitored item. Adds the specified event monitored item. The monitored item. Removes the specified event monitored item. The monitored item. Called when a Node produces an event. The system context. The affected node. The event. Called when the state of a Node changes. The system context. The affected node. The mask indicating what changes have occurred. Reads the value of an attribute and reports it to the MonitoredItem. Stores information about a NodeId specified by the client. A NodeHandle is created when GetManagerHandle is called and will only contain information found by parsing the NodeId. The ValidateNode method is used to verify that the NodeId refers to a real Node and find a NodeState object that can be used to access the Node. Initializes a new instance of the class. Initializes a new instance of the class. The node id. The node. The NodeId provided by the client. The parsed identifier (must not be null if Validated == False). A unique string identifier for the root of a complex object tree. A path to a component within the tree identified by the root id. An index associated with the handle. This is used to keep track of the position in the complete list of Nodes provided by the Client. Whether the handle has been validated. When validation is complete the Node property must have a valid object. An object that can be used to access the Node identified by the NodeId. Not set until after the handle is validated. An object that can be used to manage the items which are monitoring the node. Stores the elements of a NodeId after it is parsed. The NodeIds used by the samples are strings with an optional path appended. The RootType identifies the type of Root Node. The RootId is the unique identifier for the Root Node. The ComponentPath is constructed from the SymbolicNames of one or more children of the Root Node. The namespace index that qualified the NodeId. The identifier for the root of the NodeId. The type of root node. The relative path to the component identified by the NodeId. Parses the specified node identifier. The node identifier. The parsed node identifier. Null if the identifier cannot be parsed. Constructs a node identifier from the component pieces. Constructs a node identifier. The node identifier. Constructs a node identifier for a component with the specified name. The node identifier. Constructs the node identifier for a component. A node manager for a variety of test data. Initializes the node manager. Frees any unmanaged resources. An overrideable version of the Dispose. Creates the NodeId for the specified node. The context. The node. The new NodeId. Acquires the lock on the node manager. The server that the node manager belongs to. The default context to use. The predefined nodes managed by the node manager. The root notifiers for the node manager. Returns true if the namespace for the node id is one of the namespaces managed by the node manager. The node id to check. True if the namespace is one of the nodes. Returns the node if the handle refers to a node managed by this manager. The handle to check. Non-null if the handle belongs to the node manager. Returns the state object for the specified node if it exists. Creates a new instance and assigns unique identifiers to all children. The operation context. An optional parent identifier. The reference type from the parent. The browse name. The instance to create. The new node id. Deletes a node and all of its children. Returns the namespaces used by the node manager. All NodeIds exposed by the node manager must be qualified by a namespace URI. This property returns the URIs used by the node manager. In this example all NodeIds use a single URI. Does any initialization required before the address space can be used. The externalReferences is an out parameter that allows the node manager to link to nodes in other node managers. For example, the 'Objects' node is managed by the CoreNodeManager and should have a reference to the root folder node(s) exposed by this node manager. Loads a node set from a file or resource and addes them to the set of predefined nodes. Loads a node set from a file or resource and addes them to the set of predefined nodes. Loads a node set from a file or resource and addes them to the set of predefined nodes. Replaces the generic node with a node specific to the model. Recursively indexes the node and its children. Recursively indexes the node and its children. Called after a node has been deleted. Add the node to the set of root notifiers. Remove the node from the set of root notifiers. Ensures that all reverse references exist. A list of references to add to external targets. Adds an external reference to the dictionary. Recursively adds the types to the type tree. Recursively adds the types to the type tree. Finds the specified and checks if it is of the expected type. Returns null if not found or not of the correct type. Frees any resources allocated for the address space. Returns a unique handle for the node. This must efficiently determine whether the node belongs to the node manager. If it does belong to NodeManager it should return a handle that does not require the NodeId to be validated again when the handle is passed into other methods such as 'Read' or 'Write'. Returns a unique handle for the node. This must efficiently determine whether the node belongs to the node manager. If it does belong to NodeManager it should return a handle that does not require the NodeId to be validated again when the handle is passed into other methods such as 'Read' or 'Write'. This method is used to add bi-directional references to nodes from other node managers. The additional references are optional, however, the NodeManager should support them. This method is used to delete bi-directional references to nodes from other node managers. Returns the basic metadata for the node. Returns null if the node does not exist. This method validates any placeholder handle. Browses the references from a node managed by the node manager. The continuation point is created for every browse operation and contains the browse parameters. The node manager can store its state information in the Data and Index properties. Returns the references for the node that meets the criteria specified. Returns the target of the specified browse path fragment(s). If reference exists but the node manager does not know the browse name it must return the NodeId as an unresolvedTargetIds. The caller will try to check the browse name. Reads the value for the specified attribute. Stores the state of a call method operation. Verifies that the specified node exists. Reads the history for the specified nodes. Reads the history for a single node which has already been validated. Reads the raw history for the variable value. Reads the processed history for the variable value. Reads the history for the variable value. Writes the value for the specified attributes. Updates the history for the specified nodes. Calls a method on the specified nodes. Stores the state of a call method operation. Calls a method on an object. Subscribes or unsubscribes to events produced by the specified source. This method is called when a event subscription is created or deletes. The node manager must start/stop reporting events for the specified object and all objects below it in the notifier hierarchy. Subscribes or unsubscribes to events produced by all event sources. This method is called when a event subscription is created or deleted. The node manager must start/stop reporting events for all objects that it manages. Subscribes/unsubscribes to all events produced by the specified node. Does any processing after a monitored item is subscribed to. Does any processing after a monitored item is subscribed to. Tells the node manager to refresh any conditions associated with the specified monitored items. This method is called when the condition refresh method is called for a subscription. The node manager must create a refresh event for each condition monitored by the subscription. Creates a new set of monitored items for a set of variables. This method only handles data change subscriptions. Event subscriptions are created by the SDK. Validates a data change filter provided by the client. The system context. The node being monitored. The attribute being monitored. The requested monitoring filter. The validated data change filter. The EU range associated with the value if required by the filter. Any error condition. Good if no errors occurred. Creates a new set of monitored items for a set of variables. This method only handles data change subscriptions. Event subscriptions are created by the SDK. Calculates the sampling interval. Creates a new sampled item. Deletes a sampled item. Polls each monitored item which requires sample. Does any processing after a monitored item is created. Modifies the parameters for a set of monitored items. Modifies the parameters for a monitored item. Does any processing after a monitored item is created. Deletes a set of monitored items. Deletes a monitored item. Does any processing after a monitored item is deleted. Changes the monitoring mode for a set of monitored items. Changes the monitoring mode for an item. Does any processing after a monitored item is created. Provides a basic monitored item implementation which does not support queuing. Constructs a new instance. Constructs a new instance. Gets the id for the attribute being monitored. Gets the index range used to selected a subset of the value. Gets the data encoding to use when returning the value. Whether the monitored item should report a value without checking if it was changed. The number of milliseconds until the next sample. The monitoring mode. The sampling interval. Modifies the monitored item parameters, Modifies the monitored item parameters, Called when the attribute being monitored changed. Reads and queues the value. The node manager for the monitored item. The session for the monitored item. The identifier for the subscription that the monitored item belongs to. The unique identifier for the monitored item. The identifier for the client handle assigned to the monitored item. The callback to use to notify the subscription when values are ready to publish. The handle assigned to the monitored item by the node manager. The type of monitor item. Returns true if the item is ready to publish. Gets or Sets a value indicating whether the item is ready to trigger in case it has some linked items. Returns the results for the create request. Returns the results for the modify request. Queues a new data change. Sets a flag indicating that the semantics for the monitored node have changed. The StatusCode for next value reported by the monitored item will have the SemanticsChanged bit set. Sets a flag indicating that the structure of the monitored node has changed. The StatusCode for next value reported by the monitored item will have the StructureChanged bit set. Changes the monitoring mode. No filters supported. Increments the sample time to the next interval. Called by the subscription to publish any notification. Publishes a value. Keeps track of the monitored items for a single node. Initializes the instance with the context for the node being monitored. The server that the node belongs to. The node manager that the node belongs to. The node being monitored. Whether the node has any active monitored items for the specified attribute. Creates a new data change monitored item. The system context. The unique identifier for the monitiored item. The attribute to monitor. The index range to use for array values. The data encoding to return for structured values. The diagnostics masks to use. The timestamps to return. The initial monitoring mode. The handle assigned by the client. The sampling interval. The queue size. Whether to discard the oldest values when the queue overflows. The data change filter to use. The range to use when evaluating a percentage deadband filter. Whether the monitored item should skip the check for a change in value. The new monitored item. Creates a new data change monitored item. The system context. The unique identifier for the monitiored item. The attribute to monitor. The index range to use for array values. The data encoding to return for structured values. The diagnostics masks to use. The timestamps to return. The initial monitoring mode. The handle assigned by the client. The sampling interval. Whether the monitored item should skip the check for a change in value. The new monitored item. Deletes the monitored item. Handles change events raised by the node. The system context. The node that raised the event. What caused the event to be raised Subscribes to events produced by the node. Unsubscribes to events produced by the node. Handles events reported by the node. The system context. The node that raised the event. The event to report. Resends the events for any conditions belonging to the node or its children. The system context. The item to refresh. The Opc.Ua.Server namespace defines classes which can be used to implement a UA server. These classes manage session and subscriptions created by clients and provide a simplified API that can be used to provide access to data and events in an external system. The table of all reference types known to the server. This class is thread safe. Initializes the object with default values. Frees any unmanaged resources. An overrideable version of the Dispose. A unique identifier for the continuation point. The node manager that created the continuation point. The view being browsed. The node being browsed. The maximum number of results to return. What direction to follow the references. The reference type of the references to return. Whether subtypes of the reference type should be return as well. The node class of the target nodes for the references to return. The values to return. The index where browsing halted. Node manager specific data that is necessary to continue the browse. A node manager needs to hold onto unmanaged resources to continue the browse. If this is the case then the object stored here must implement the Idispose interface. This will ensure the unmanaged resources are freed if the continuation point expires. Whether the ReferenceTypeId should be returned in the result. Whether the IsForward flag should be returned in the result. Whether the NodeClass should be returned in the result. Whether the BrowseName should be returned in the result. Whether the DisplayName should be returned in the result. Whether the TypeDefinition should be returned in the result. False if it is not necessary to read the attributes a target node. This flag is true if the NodeClass filter is set or the target node attributes are returned in the result. The default node manager for the server. Every Server has one instance of this NodeManager. It stores objects that implement ILocalNode and indexes them by NodeId. Initializes the object with default values. Frees any unmanaged resources. An overrideable version of the Dispose. Acquires the lock on the node manager. Imports the nodes from a dictionary of NodeState objects. Imports the nodes from a dictionary of NodeState objects. Populates the NodeManager by loading the standard nodes from an XML file stored as an embedded resource. Disposes all of the nodes. Returns true is the target meets the filter criteria. This method must not be called without first acquiring Creates a set of monitored items. Modifies a set of monitored items. Deletes a set of monitored items. Changes the monitoring mode for a set of monitored items. Returns true if the node class matches the node class mask. The server that the node manager belongs to. Returns an index for the NamespaceURI (Adds it to the server namespace table if it does not already exist). Returns the server's default index (1) if the namespaceUri is empty or null. Returns all targets of the specified reference. Returns the id the first node with the specified browse name if it exists. null otherwise Returns the first target that matches the browse path. Returns a list of targets the match the browse path. Returns a list of targets the match the browse path. Returns a list of targets the match the browse path. Returns a list of targets the match the browse path. Registers a source for a node. The source could be one or more of IDataSource, IEventSource, ICallable, IHistorian or IViewManager Called when the source is no longer used. When a source disappears it must either delete all of its nodes from the address space or unregister itself their source by calling RegisterSource with source == null. After doing that the source must call this method. Applys the modelling rules to any existing instance. Returns true if a one-way reference to external nodes is permitted. Updates the type definition for a node. A node in the type system that is used to instantiate objects or variables. Builds the list of declaration nodes for a type definition. Builds a list of declarations from the nodes aggregated by a parent. Builds a table of instances indexed by browse path from the nodes aggregated by a parent Exports a node to a nodeset. Exports a node to a nodeset. Updates the attributes for the node. Deletes a node from the address sapce. Deletes a node from the address sapce. Deletes the external references to a node in a background thread. Verifies that the source and the target meet the restrictions imposed by the reference type. Adds a reference between two existing nodes. Ensures any changes to built-in nodes are reflected in the diagnostics node manager. Adds a reference between two existing nodes. Adds a reference to the address space. Adds a reference to the address space. Deletes a reference. Deletes a reference. Adds a node to the address space. Returns a node managed by the manager with the specified node id. Returns a node managed by the manager with the specified node id. Returns a node managed by the manager with the specified node id. Returns a list of nodes which are targets of the specified references. Returns a node managed by the manager that has the specified browse name. Returns a node managed by the manager that has the specified browse name. Attaches a node to the address space. Attaches a node to the address space. Creates a unique node identifier. Reads the EU Range for a variable. Validates a filter for a monitored item. Creates a new unique identifier for a node. An object that manages all events raised within the server. Creates a new instance of a sampling group. Frees any unmanaged resources. An overrideable version of the Dispose. Reports an event. Creates a set of monitored items. Creates a set of monitored items. Modifies a monitored item. Deletes a monitored item. Returns the currently active monitored items. An interface to an object that manages a set of nodes in the address space. Returns the NamespaceUris for the Nodes belonging to the NodeManager. By default the MasterNodeManager uses the namespaceIndex to determine who owns an Node. Servers that do not wish to partition their address space this way must provide their own implementation of MasterNodeManager.GetManagerHandle(). NodeManagers which depend on a custom partitioning scheme must return a null value. Creates the address space by loading any configuration information an connecting to an underlying system (if applicable). A table of references that need to be added to other node managers. A node manager owns a set of nodes. These nodes may be known in advance or they may be stored in an external system are retrived on demand. These nodes may have two way references to nodes that are owned by other node managers. In these cases, the node managers only manage one half of those references. The other half of the reference should be returned to the MasterNodeManager. Deletes the address by releasing all resources and disconnecting from any underlying system. Returns an opaque handle identifying to the node to the node manager. A node handle, null if the node manager does not recognize the node id. The method must not block by querying an underlying system. If the node manager wraps an underlying system then it must check to see if it recognizes the syntax of the node id. The handle in this case may simply be a partially parsed version of the node id. Adds references to the node manager. The node manager checks the dictionary for nodes that it owns and ensures the associated references exist. Deletes a reference. Returns the metadata associated with the node. Returns null if the node does not exist. Returns the set of references that meet the filter criteria. The context to used when processing the request. The continuation point that stores the state of the Browse operation. The list of references that meet the filter criteria. NodeManagers will likely have references to other NodeManagers which means they will not be able to apply the NodeClassMask or fill in the attributes for the target Node. In these cases the NodeManager must return a ReferenceDescription with the NodeId and ReferenceTypeId set. The caller will be responsible for filling in the target attributes. The references parameter may already contain references when the method is called. The implementer must include these references when calculating whether a continutation point must be returned. Thrown if the context, continuationPoint or references parameters are null. Thrown if an error occurs during processing. Finds the targets of the relative path from the source node. The context to used when processing the request. The handle for the source node. The relative path to follow. The NodeIds for any target at the end of the relative path. The NodeIds for any local target that is in another NodeManager. A null context indicates that the server's internal logic is making the call. The first target in the list must be the target that matches the instance declaration (if applicable). Any local targets that belong to other NodeManagers are returned as unresolvedTargetIds. The caller must check the BrowseName to determine if it matches the relativePath. The implementor must not throw an exception if the source or target nodes do not exist. Thrown if the sourceHandle, relativePath or targetIds parameters are null. Reads the attribute values for a set of nodes. The MasterNodeManager pre-processes the nodesToRead and ensures that: - the AttributeId is a known attribute. - the IndexRange, if specified, is valid. - the DataEncoding and the IndexRange are not specified if the AttributeId is not Value. The MasterNodeManager post-processes the values by: - sets values[ii].StatusCode to the value of errors[ii].Code - creates a instance of DataValue if one does not exist and an errors[ii] is bad. - removes timestamps from the DataValue if the client does not want them. The node manager must ignore ReadValueId with the Processed flag set to true. The node manager must set the Processed flag for any ReadValueId that it processes. Reads the history of a set of items. Writes a set of values. Each node manager should only process node ids that it recognizes. If it processes a value it must set the Processed flag in the WriteValue structure. Updates the history for a set of nodes. Calls a method defined on a object. Tells the NodeManager to report events from the specified notifier. This method may be called multiple times for the name monitoredItemId if the context for that MonitoredItem changes (i.e. UserIdentity and/or Locales). Tells the NodeManager to report events all events from all sources. This method may be called multiple times for the name monitoredItemId if the context for that MonitoredItem changes (i.e. UserIdentity and/or Locales). Tells the NodeManager to refresh any conditions. Creates a set of monitored items. Modifies a set of monitored items. Deletes a set of monitored items. Changes the monitoring mode for a set of monitored items. An interface to an object that manages a set of nodes in the address space. Called when the session is closed. Returns true if the node is in the view. Stores metadata required to process requests related to a node. Initializes the object with its handle and NodeId. The handle assigned by the NodeManager that owns the Node. The canonical NodeId for the Node. The NodeClass for the Node. The BrowseName for the Node. The DisplayName for the Node. The type definition for the Node (if one exists). The modelling for the Node (if one exists). Specifies which attributes are writeable. Whether the Node can be used with event subscriptions or for historial event queries. Whether the Node can be use to read or write current or historical values. Whether the Node is a Method that can be executed. The DataType of the Value attribute for Variable or VariableType nodes. The ValueRank for the Value attribute for Variable or VariableType nodes. The ArrayDimensions for the Value attribute for Variable or VariableType nodes. Specifies the AccessRestrictions that apply to a Node. The value reflects the DefaultAccessRestrictions Property of the NamespaceMetadata Object for the Namespace to which the Node belongs. The RolePermissions for the Node. Specifies the Permissions that apply to a Node for all Roles which have access to the Node. The DefaultRolePermissions of the Node's name-space meta-data The value reflects the DefaultRolePermissions Property from the NamespaceMetadata Object associated with the Node. The UserRolePermissions of the Node. Specifies the Permissions that apply to a Node for all Roles granted to current Session. The DefaultUserRolePermissions of the Node. The value reflects the DefaultUserRolePermissions Property from the NamespaceMetadata Object associated with the Node. The master node manager for the server. Initializes the object with default values. Registers the node manager with the master node manager. Frees any unmanaged resources. An overrideable version of the Dispose. Adds a reference to the table of external references. This is a convenience function used by custom NodeManagers. Determine the required history access permission depending on the HistoryUpdateDetails The HistoryUpdateDetails passed in The corresponding history access permission Determine the History PermissionType depending on PerformUpdateType The corresponding PermissionType Returns the core node manager. Returns the diagnostics node manager. Returns the configuration node manager. Creates the node managers and start them Signals that a session is closing. Shuts down the node managers a Registers the node manager as the node manager for Nodes in the specified namespace. The URI of the namespace. The NodeManager which owns node in the namespace. Multiple NodeManagers may register interest in a Namespace. The order in which this method is called determines the precedence if multiple NodeManagers exist. This method adds the namespaceUri to the Server's Namespace table if it does not already exist. This method is thread safe and can be called at anytime. This method does not have to be called for any namespaces that were in the NodeManager's NamespaceUri property when the MasterNodeManager was created. Throw if the namespaceUri or the nodeManager are null. Returns node handle and its node manager. Adds the references to the target. Deletes the references to the target. Deletes the specified references. Registers a set of node ids. Unregisters a set of node ids. Translates a start node id plus a relative paths into a node id. Updates the diagnostics return parameter. Translates a browse path. Recursively processes the elements in the RelativePath starting at the specified index. Returns the set of references that meet the filter criteria. Continues a browse operation that was previously halted. Returns the set of references that meet the filter criteria. Loops until browse is complete for max results reached. Updates the reference description with the node attributes. Reads a set of nodes Reads the history of a set of items. Writes a set of values. Updates the history for a set of nodes. Calls a method defined on a object. Handles condition refresh request. Creates a set of monitored items. Create monitored items for event subscriptions. Modifies a set of monitored items. Modify monitored items for event subscriptions. Deletes a set of monitored items. Delete monitored items for event subscriptions. Changes the monitoring mode for a set of items. Delete monitored items for event subscriptions. The server that the node manager belongs to. The node managers being managed. Validates a monitoring attributes parameter. Validates a monitoring filter. Validates a monitored item create request parameter. Validates a monitored item modify request parameter. Validates a call request item parameter. It validates also access rights and role permissions Validates a Read or MonitoredItemCreate request. It validates also access rights and role permissions Validates a Write request. It validates also access rights and role permissions Validates a HistoryRead request. It validates also access rights and role permissions Validates a HistoryUpdate request. It validates also access rights and role permissions Check if the Base NodeClass attributes and NameSpace meta-data attributes are valid for the given operation context of the specified node. The Operation Context The node whose attributes are validated The requested permission StatusCode Good if permission is granted, BadUserAccessDenied if not granted or a bad status code describing the validation process failure Check if the Base NodeClass attributes and NameSpace meta-data attributes are valid for the given operation context of the specified node. The Operation Context The node manager handling the nodeHandle The node handle of the node whose attributes are validated The requested permission StatusCode Good if permission is granted, BadUserAccessDenied if not granted or a bad status code describing the validation process failure Validate the AccessRestrictions attribute The Operation Context Good if the AccessRestrictions passes the validation Validates the role permissions Stores a reference between NodeManagers that is needs to be created or deleted. Initializes the reference. The source of the reference. The type of reference. True is the reference is an inverse reference. The target of the reference. An object that manages access to localized resources. Initializes the resource manager with the server instance that owns it. May be called by the application to clean up resources. Cleans up all resources held by the object. Translates a service result. Returns the locales supported by the resource manager. Returns the locales supported by the resource manager. Returns the localized form of the text that best matches the preferred locales. Adds a translation to the resource manager. Adds the translations to the resource manager. Adds the translations to the resource manager. Adds the translations to the resource manager. Uses reflection to load default text for standard StatusCodes. Returns the text for the specified locale (null if the locale is not supported). Translates the text provided. Stores the translations for a locale. Finds the translation table for the locale. Creates a new table if it does not exist. Finds the best translation for the requested locales. Translates a status code. Translates a symbolic id. An object which periodically reads the items and updates the cache. Creates a new instance of a sampling group. Frees any unmanaged resources. An overrideable version of the Dispose. Starts the sampling thread which periodically reads the items in the group. Stops the sampling thread. Checks if the monitored item can be handled by the group. True if the item was added to the group. The ApplyChanges() method must be called to actually start sampling the item. Checks if the monitored item can still be handled by the group. False if the item has be marked for removal from the group. The ApplyChanges() method must be called to actually stop sampling the item. Stops monitoring the item. Returns true if the items was marked for removal from the group. Updates the group by apply any pending changes. Returns true if the group has no more items and can be dropped. Checks if the item meets the group's criteria. Ensures the requested sampling interval lines up with one of the supported sampling rates. Periodically checks if the sessions have timed out. Samples the values of the items. An object that manages the sampling groups for a node manager. Creates a new instance of a sampling group. Frees any unmanaged resources. An overrideable version of the Dispose. Stops all sampling groups and clears all items. Creates a new monitored item and calls StartMonitoring(). Creates a new monitored item. The server. The node manager. The manager handle. The subscription id. The id. The session. The item to monitor. The diagnostics masks. The timestamps to return. The monitoring mode. The client handle. The original filter. The filter to use. The range. The sampling interval. Size of the queue. if set to true [discard oldest]. The minimum sampling interval. The monitored item. Modifies a monitored item and calls ModifyMonitoring(). Starts monitoring the item. It will use the external source for monitoring if the source accepts the item. The changes will not take affect until the ApplyChanges() method is called. Changes monitoring attributes the item. It will call the external source to change the monitoring if an external source was provided originally. The changes will not take affect until the ApplyChanges() method is called. Stops monitoring the item. It will call the external source to stop the monitoring if an external source was provided originally. The changes will not take affect until the ApplyChanges() method is called. Applies any pending changes caused by adding,changing or removing monitored items. The default sampling rates. A generic implementation for ISystemContext interface. Initializes a new instance of the class. The server. Initializes a new instance of the class. The server. The context. Initializes a new instance of the class. The server. The session. The operation context associated with system context. The operation context. Creates a copy of the context that can be used with the specified operation context. A copy of the system context. Creates a copy of the context that can be used with the specified operation context. The operation context to use. A copy of the system context that references the new operation context. Creates a copy of the context that can be used with the specified session. The session to use. A copy of the system context that references the new session. Creates a copy of the context that can be used with the specified server context. The server context to use. A copy of the system context that references the new server context. The interface that a server exposes to objects that it contains. Whether event queuing is enabled. Reports a value written. Reports a value queued. Reports a value excluded by the filter. Reports a value discarded because of queue overflow. Reports a value published. Reports a new monitored item. Reports a modified monitored item. Fills in the diagnostic information after an error. Fills in the diagnostic information after an error. Fills in the diagnostic information after an error. Creates a place holder in the lists for the results. Creates a collection of diagnostics from a set of errors. Creates a collection of status codes and diagnostics from a set of errors. Creates the diagnostic info and translates any strings. The server. The context containing the string stable. The error to translate. The diagnostics with references to the strings in the context string table. The interface that a server exposes to objects that it contains. The endpoint addresses used by the server. The endpoint addresses. The context to use when serializing/deserializing extension objects. The message context. The default system context for the server. The default system context. The table of namespace uris known to the server. The namespace URIs. The table of remote server uris known to the server. The server URIs. The factory used to create encodeable objects that the server understands. The factory. The datatypes, object types and variable types known to the server. The type tree. The type tree table is a global object that all components of a server have access to. Node managers must populate this table with all types that they define. This object is thread safe. The master node manager for the server. The node manager. The internal node manager for the servers. The core node manager. Returns the node manager that managers the server diagnostics. The diagnostics node manager. The manager for events that all components use to queue events that occur. The event manager. A manager for localized resources that components can use to localize text. The resource manager. A manager for outstanding requests that allows components to receive notifications if the timeout or are cancelled. The request manager. A manager for aggregate calculators supported by the server. The aggregate manager. The manager for active sessions. The session manager. The manager for active subscriptions. Whether the server is currently running. true if this instance is running; otherwise, false. This flag is set to false when the server shuts down. Threads running should check this flag whenever they return from a blocking operation. If it is false the thread should clean up and terminate. Returns the status object for the server. The status. Gets or sets the current state of the server. The state of the current. Returns the Server object node The Server object node. Used to synchronize access to the server diagnostics. The diagnostics lock. Used to synchronize write access to the server diagnostics. The diagnostics lock. Returns the diagnostics structure for the server. The server diagnostics. Whether the server is collecting diagnostics. true if diagnostics is enabled; otherwise, false. Closes the specified session. The context. The session identifier. if set to true subscriptions are to be deleted. Deletes the specified subscription. The subscription identifier. Called by any component to report a global event. The event. Called by any component to report a global event. The context. The event. Refreshes the conditions for the specified subscription. The context. The subscription identifier. Stores information used while a thread is completing an operation on behalf of a client. Initializes the context with a session. The request header. Type of the request. The identity used in the request. Initializes the context with a session. The request header. Type of the request. The session. Initializes the context with a session. The session. The diagnostics masks. Initializes the context with a monitored item. The monitored item. The context for the secure channel used to send the request. The channel context. The session associated with the context. The session. The security policy used for the secure channel. The security policy URI. The type of request. The type of the request. A unique identifier assigned to the request by the server. The request id. The handle assigned by the client to the request. The client handle. Updates the status code (thread safe). The status code. The identifier for the session (null if multiple sessions are associated with the operation). The session id. The identity context to use when processing the request. The user identity. The locales to use for the operation. The preferred locales. The diagnostics mask specified with the request. The diagnostics mask. A table of diagnostics strings to return in the response. The string table. This object is thread safe. When the request times out. The operation deadline. The current status of the request (used to check for timeouts/client cancel requests). The operation status. The audit log entry id provided by the client which must be included in an audit events generated by the server. The audit entry id. An object that manages requests from within the server. Initilizes the manager. Frees any unmanaged resources. An overrideable version of the Dispose. Raised when the status of an outstanding request changes. Called when a new request arrives. Called when a request completes (normally or abnormally). Called when the client wishes to cancel one or more requests. Checks for any expired requests and changes their status. Called when a request is cancelled. Reverse connection states. The connection is closed. The server is connecting. The server is connected with a client. The client rejected the connection with the server. An error occurred connecting with the client. Describes the properties of a server reverse connection. Initialize a reverse connect server property. The Url of the reverse connect client. The timeout to use for a reverse connect attempt. The maximum number of sessions allowed to the client. If this is an application configuration entry. If the connection is enabled. The Url of the reverse connect client. The timeout to use for a reverse connect attempt. If this is an application configuration entry. The service result of the last connection attempt. The last state of the reverse connection. The maximum number of sessions allowed to the client. If the connection is enabled. The time when the connection was rejected. The standard implementation of a UA server with reverse connect. The default reverse connect interval. The default reverse connect timeout. The default timeout after a rejected connection attempt. Creates a reverse connect server based on a StandardServer. Add a reverse connection url. Remove a reverse connection url. true if the reverse connection is found and removed Return a dictionary of configured reverse connection Urls. Timer callback to establish new reverse connections. Track reverse connection status. Restart the timer. Dispose the current timer. Remove a reverse connection url. Update the reverse connect configuration from the application configuration. A class that stores the globally accessible state of a server instance. This is a readonly class that is initialized when the server starts up. It provides access to global objects and data that different parts of the server may require. It also defines some global methods. This object is constructed is three steps: - the configuration is provided. - the node managers et. al. are provided. - the session/subscription managers are provided. The server is not running until all three steps are complete. The references returned from this object do not change after all three states are complete. This ensures the object is thread safe even though it does not use a lock. Objects returned from this object can be assumed to be threadsafe unless otherwise stated. Initializes the datastore with the server configuration. The server description. The configuration. The message context. The certificate validator. The instance certificate. Frees any unmanaged resources. An overrideable version of the Dispose. true to release both managed and unmanaged resources; false to release only unmanaged resources. The session manager to use with the server. The session manager. The subscription manager to use with the server. The subscription manager. Stores the MasterNodeManager and the CoreNodeManager The node manager. Sets the EventManager, the ResourceManager, the RequestManager and the AggregateManager. The event manager. The resource manager. The request manager. Stores the SessionManager, the SubscriptionManager in the datastore. The session manager. The subscription manager. The endpoint addresses used by the server. The endpoint addresses. The context to use when serializing/deserializing extension objects. The message context. The default system context for the server. The default system context. The table of namespace uris known to the server. The namespace URIs. The table of remote server uris known to the server. The server URIs. The factory used to create encodeable objects that the server understands. The factory. The datatypes, object types and variable types known to the server. The type tree. The type tree table is a global object that all components of a server have access to. Node managers must populate this table with all types that they define. This object is thread safe. The master node manager for the server. The node manager. The internal node manager for the servers. The core node manager. Returns the node manager that managers the server diagnostics. The diagnostics node manager. The manager for events that all components use to queue events that occur. The event manager. A manager for localized resources that components can use to localize text. The resource manager. A manager for outstanding requests that allows components to receive notifications if the timeout or are cancelled. The request manager. A manager for aggregate calculators supported by the server. The aggregate manager. The manager for active sessions. The session manager. The manager for active subscriptions. Returns the status object for the server. The status. Gets or sets the current state of the server. The state of the current. Returns the Server object node The Server object node. Used to synchronize access to the server diagnostics. The diagnostics lock. Used to synchronize write access to the server diagnostics. The diagnostics lock. Returns the diagnostics structure for the server. The server diagnostics. Whether the server is currently running. true if this instance is running; otherwise, false. This flag is set to false when the server shuts down. Threads running should check this flag whenever they return from a blocking operation. If it is false the thread should clean up and terminate. Whether the server is collecting diagnostics. true if diagnostics are enabled; otherwise, false. Closes the specified session. The context. The session identifier. if set to true subscriptions are to be deleted. Deletes the specified subscription. The subscription identifier. Called by any component to report a global event. The event. Called by any component to report a global event. The context. The event. Refreshes the conditions for the specified subscription. The context. The subscription identifier. Creates the ServerObject and attaches it to the NodeManager. Updates the server status before a read. Returns a copy of the namespace array. Returns a copy of the server array. Returns Diagnostics.EnabledFlag Sets the Diagnostics.EnabledFlag Returns a copy of the current diagnostics. The standard implementation of a UA server. Initializes the object with default values. An overrideable version of the Dispose. true to release both managed and unmanaged resources; false to release only unmanaged resources. Invokes the FindServers service. The request header. The endpoint URL. The locale ids. The server uris. List of Servers that meet criteria specified in the request. Returns a object Invokes the GetEndpoints service. The request header. The endpoint URL. The locale ids. The profile uris. The endpoints supported by the server. Returns a object Returns the endpoints that match the base addresss and endpoint url. Invokes the CreateSession service. The request header. Application description for the client application. The server URI. The endpoint URL. Name for the Session assigned by the client. The client nonce. The client certificate. The requested session timeout. Size of the max response message. The unique public identifier assigned by the Server to the Session. The unique private identifier assigned by the Server to the Session. The revised session timeout. The server nonce. The server certificate. The server endpoints. The server software certificates. The server signature. Size of the max request message. Returns a object Invokes the ActivateSession service. The request header. The client signature. The client software certificates. The locale ids. The user identity token. The user token signature. The server nonce. The results. The diagnostic infos. Returns a object Returns whether the error is a security error. The error. true if the error is one of the security errors, otherwise false. Creates the response header. The object that contains description for the RequestHeader DataType. The exception used to create DiagnosticInfo assigned to the ServiceDiagnostics. Returns a description for the ResponseHeader DataType. Invokes the CloseSession service. The request header. if set to true subscriptions are deleted. Returns a object Invokes the Cancel service. The request header. The request handle assigned to the request. The number of cancelled requests. Returns a object Invokes the Browse service. The request header. The view. The maximum number of references to return for each node. The list of nodes to browse. The list of results for the passed starting nodes and filters. The diagnostic information for the results. Returns a object Invokes the BrowseNext service. The request header. if set to true the continuation points are released. A list of continuation points returned in a previous Browse or BrewseNext call. The list of resulted references for browse. The diagnostic information for the results. Returns a object Invokes the RegisterNodes service. The request header. The list of NodeIds to register. The list of NodeIds identifying the registered nodes. Returns a object Invokes the UnregisterNodes service. The request header. The list of NodeIds to unregister Returns a object Invokes the TranslateBrowsePathsToNodeIds service. The request header. The list of browse paths for which NodeIds are being requested. The list of results for the list of browse paths. The diagnostic information for the results. Returns a object Invokes the Read service. The request header. The Maximum age of the value to be read in milliseconds. The type of timestamps to be returned for the requested Variables. The list of Nodes and their Attributes to read. The list of returned Attribute values The diagnostic information for the results. Returns a object Invokes the HistoryRead service. The request header. The history read details. The timestamps to return. if set to true continuation points are released. The nodes to read. The results. The diagnostic information for the results. Returns a object Invokes the Write service. The request header. The list of Nodes, Attributes, and values to write. The list of write result status codes for each write operation. The diagnostic information for the results. Returns a object Invokes the HistoryUpdate service. The request header. The details defined for the update. The list of update results for the history update details. The diagnostic information for the results. Returns a object Invokes the CreateSubscription service. The request header. The cyclic rate that the Subscription is being requested to return Notifications to the Client. The client-requested lifetime count for the Subscription The requested max keep alive count. The maximum number of notifications that the Client wishes to receive in a single Publish response. If set to true publishing is enabled for the Subscription. The relative priority of the Subscription. The Server-assigned identifier for the Subscription. The actual publishing interval that the Server will use. The revised lifetime count. The revised max keep alive count. Returns a object Invokes the DeleteSubscriptions service. The request header. The list of Subscriptions to delete. The list of result StatusCodes for the Subscriptions to delete. The diagnostic information for the results. Returns a object Invokes the Publish service. The request header. The list of acknowledgements for one or more Subscriptions. The subscription identifier. The available sequence numbers. If set to true the number of Notifications that were ready to be sent could not be sent in a single response. The NotificationMessage that contains the list of Notifications. The list of results for the acknowledgements. The diagnostic information for the results. Returns a object Begins an asynchronous publish operation. The request. Completes an asynchronous publish operation. The request. Invokes the Republish service. The request header. The subscription id. The sequence number of a specific NotificationMessage to be republished. The requested NotificationMessage. Returns a object Invokes the ModifySubscription service. The request header. The subscription id. The cyclic rate that the Subscription is being requested to return Notifications to the Client. The client-requested lifetime count for the Subscription. The requested max keep alive count. The maximum number of notifications that the Client wishes to receive in a single Publish response. The relative priority of the Subscription. The revised publishing interval. The revised lifetime count. The revised max keep alive count. Returns a object Invokes the SetPublishingMode service. The request header. If set to true publishing of NotificationMessages is enabled for the Subscription. The list of subscription ids. The list of StatusCodes for the Subscriptions to enable/disable. The diagnostic information for the results. Returns a object Invokes the SetTriggering service. The request header. The subscription id. The id for the MonitoredItem used as the triggering item. The list of ids of the items to report that are to be added as triggering links. The list of ids of the items to report for the triggering links to be deleted. The list of StatusCodes for the items to add. The list of diagnostic information for the links to add. The list of StatusCodes for the items to delete. The list of diagnostic information for the links to delete. Returns a object Invokes the CreateMonitoredItems service. The request header. The subscription id that will report notifications. The type of timestamps to be returned for the MonitoredItems. The list of MonitoredItems to be created and assigned to the specified subscription The list of results for the MonitoredItems to create. The diagnostic information for the results. Returns a object Invokes the ModifyMonitoredItems service. The request header. The subscription id. The type of timestamps to be returned for the MonitoredItems. The list of MonitoredItems to modify. The list of results for the MonitoredItems to modify. The diagnostic information for the results. Returns a object Invokes the DeleteMonitoredItems service. The request header. The subscription id. The list of MonitoredItems to delete. The list of results for the MonitoredItems to delete. The diagnostic information for the results. Returns a object Invokes the SetMonitoringMode service. The request header. The subscription id. The monitoring mode to be set for the MonitoredItems. The list of MonitoredItems to modify. The list of results for the MonitoredItems to modify. The diagnostic information for the results. Returns a object Invokes the Call service. The request header. The methods to call. The results. The diagnostic information for the results. Returns a object The state object associated with the server. It provides the shared components for the Server. The current instance. Returns the current status of the server. Returns a ServerStatusDataType object Registers the server with the discovery server. Boolean value. Checks that the domains in the certificate match the current host. Registers the server endpoints with the LDS. The state. The synchronization object. The state object associated with the server. The server internal data. Verifies that the request header is valid. The request header. Updates the server state. The state. Reports an error during initialization after the base server object has been started. The error. Handles an error when validating the application instance certificate provided by a client. The client certificate. The result. Inspects the software certificates provided by the server. The software certificates. Verifies that the request header is valid. The request header. Type of the request. Translates an exception. The context. The ServiceResultException e. Returns an exception thrown when a UA defined error occurs, the return type is . Translates an exception. The fields to return. The preferred locales. The ServiceResultException e. Returns an exception thrown when a UA defined error occurs, the return type is . Translates a service result. The fields to return. The preferred locales. The result. Returns a class that combines the status code and diagnostic info structures. Verifies that the request header is valid. The operation context. Raised when the configuration changes. The sender. The instance containing the event data. Called when the server configuration is changed on disk. The configuration. Servers are free to ignore changes if it is difficult/impossible to apply them without a restart. Called before the server starts. The configuration. Creates the endpoints and creates the hosts. The configuration. The server description. The endpoints. Returns IList of a host for a UA service. Returns the service contract to use. Returns an instance of the endpoint to use. Starts the server application. The configuration. Called before the server stops Implements the server shutdown delay if session are connected. Creates the request manager for the server. The server. The configuration. Returns an object that manages requests from within the server, return type is . Creates the aggregate manager used by the server. The server. The application configuration. The manager. Creates the resource manager for the server. The server. The configuration. Returns an object that manages access to localized resources, the return type is . Creates the master node manager for the server. The server. The configuration. Returns the master node manager for the server, the return type is . Creates the event manager for the server. The server. The configuration. Returns an object that manages all events raised within the server, the return type is . Creates the session manager for the server. The server. The configuration. Returns a generic session manager object for a server, the return type is . Creates the session manager for the server. The server. The configuration. Returns a generic session manager object for a server, the return type is . Called after the node managers have been started. The server. Called after the server has been started. The server. The set of all service request types (used for collecting diagnostics and checking permissions). The request type is not known. A generic session manager object for a server. Initializes a new instance of the class. The context. The Server object. The server certificate. The unique private identifier assigned to the Session. The client nonce. The server nonce. The name assigned to the Session. Application description for the client application. The endpoint URL. The client certificate. The session timeout. The maximum size of a response message The max request age. The maximum number of browse continuation points. The maximum number of history continuation points. Initializes a session audit event. Reports an audit create session event. Reports an audit activate session event. Frees any unmanaged resources. An overrideable version of the Dispose. Gets the identifier assigned to the session when it was created. The user identity provided by the client. The application defined mapping for user identity provided by the client. The user identity token provided by the client. A lock which must be acquired before accessing the diagnostics. The diagnostics associated with the session. Gets or sets the server certificate chain. The server certificate chain. The client Nonce associated with the session. The application instance certificate associated with the client. The locales requested when the session was created. Whether the session timeout has elapsed since the last communication from the client. Whether the session has been activated. Validates the request. Checks if the secure channel is currently valid. Updates the requested locale ids. true if the new locale ids are different from the old locale ids. Activates the session and binds it to the current secure channel. Activates the session and binds it to the current secure channel. Closes a session and removes itself from the address space. Saves a continuation point for a session. If the session has too many continuation points the oldest one is dropped. Restores a continuation point for a session. The caller is responsible for disposing the continuation point returned. Saves a continuation point used for historical reads. The identifier for the continuation point. The continuation point. If the continuationPoint implements IDisposable it will be disposed when the Session is closed or discarded. Restores a previously saves history continuation point. The identifier for the continuation point. The save continuation point. null if not found. Stores a continuation point used for historial reads. Dumps the current state of the session queue. Returns a copy of the current diagnostics. Returns a copy of the current security diagnostics. Validates the identity token supplied by the client. Updates the user identity. true if the new identity is different from the old identity. Updates the diagnostic counters associated with the request. A generic session manager object for a server. Initializes the manager with its configuration. Frees any unmanaged resources. An overrideable version of the Dispose. Starts the session manager. Stops the session manager and closes all sessions. Creates a new session. Activates an existing session Closes the specifed session. This method should not throw an exception if the session no longer exists. Validates request header and returns a request context. This method verifies that the session id valid and that it uses secure channel id associated with with current thread. It also verifies that the timestamp is not too and that the sequence number is not out of order (update requests only). Creates a new instance of a session. Raises an event related to a session. Periodically checks if the sessions have timed out. Allows application components to receive notifications when changes to sessions occur. Sinks that receive these events must not block the thread. Raised after a new session is created. Raised whenever a session is activated and the user identity or preferred locales changed. Raised before a session is closed. Raised before the user identity for a session is changed. Raised to validate a session-less request. Returns all of the sessions known to the session manager. A list of the sessions. The possible reasons for a session related eventg. A new session was created. A session is being activated with a new user identity. A session was activated and the user identity or preferred locales changed. A session is about to be closed. The delegate for functions used to receive session related events. A class which provides the event arguments for session related event. Creates a new instance. The new user identity for the session. The user token policy selected by the client. An application defined handle that can be used for access control operations. An application defined handle that can be used for access control operations. Set to indicate that an error occurred validating the identity and that it should be rejected. Get the EndpointDescription The delegate for functions used to receive impersonation events. A class which provides the event arguments for session related event. Creates a new instance. The request type for the request. The new user identity for the session. The identity to associate with the session-less request. Set to indicate that an error occurred validating the session-less request and that it should be rejected. Stores the state of an asynchrounous publish operation. Initializes a new instance of the class. The context. The request. The server. Frees any unmanaged resources. An overrideable version of the Dispose. Gets the context. The context. Gets the request handle. The request handle. Gets the response. The response. Gets the calldata. The calldata. Schedules a thread to complete the request. The data that is used to complete the operation Manages a monitored item created by a client. The node manager that created the item. The session that owns the monitored item. The identifier for the item that is unique within the server. The identifier for the subscription that is unique within the server. The identifier for the client handle assigned to the monitored item. The object to call when item is ready to publish. The handle assigned by the NodeManager. A bit mask that indicates what the monitored item is. Predefined bits are defined by the MonitoredItemTypeMasks class. NodeManagers may use the remaining bits. Checks if the monitored item is ready to publish. Gets or Sets a value indicating whether the monitored item is ready to trigger the linked items. Returns the result after creating the monitor item. Returns the result after modifying the monitor item. The monitoring mode specified for the item. The sampling interval for the item. A monitored item that can be triggered. The identifier for the item that is unique within the server. Flags the monitored item as triggered. True if there is something to publish. Manages a monitored item created by a client. Whether the item is monitoring all events produced by the server. Adds an event to the queue. The filter used by the monitored item. Publishes all available event notifications. True if the caller should re-queue the item for publishing after the next interval elaspses. Modifies the attributes for monitored item. Changes the monitoring mode for the item. Manages a monitored item created by a client. Updates the queue with a data value or an error. The filter used by the monitored item. Publishes all available data change notifications. True if the caller should re-queue the item for publishing after the next interval elaspses. Manages a monitored item created by a client. The attribute being monitored. Updates the queue with a data value or an error. Manages a monitored item created by a client. The diagnostics mask specified fro the monitored item. The queue size for the item. The minimum sampling interval for the item. Used to check whether the item is ready to sample. Returns the parameters that can be used to read the monitored item. Modifies the attributes for monitored item. Changes the monitoring mode for the item. Updates the sampling interval for an item. Defines constants for the monitored item type. Bits 1-8 are reserved for internal use. NodeManagers may use other bits. The monitored item subscribes to data changes. The monitored item subscribes to events. The monitored item subscribes to all events produced by the server. If this bit is set the Events bit must be set too. A handle that describes how to access a node/attribute via an i/o manager. Initializes the object with its node type. Sets private members to default values. The node manager that created the item. The handle assigned by the node manager when it created the item. The identifier for the subscription that owns the monitored item. A bit mask that indicates what the monitored item is. Predefined bits are defined by the MonitoredItemTypeMasks class. NodeManagers may use the remaining bits. Returns true if the item is ready to publish. Gets or Sets a value indicating whether the item is ready to trigger in case it has some linked items. Sets a flag indicating that the item has been triggered and should publish. Sets a flag indicating that the semantics for the monitored node have changed. The StatusCode for next value reported by the monitored item will have the SemanticsChanged bit set. Sets a flag indicating that the structure of the monitored node has changed. The StatusCode for next value reported by the monitored item will have the StructureChanged bit set. The filter used by the monitored item. The event filter used by the monitored item. The data change filter used by the monitored item. The session that owns the monitored item. The identifier for the item that is unique within the server. The identifier for the client handle assigned to the monitored item. The node id being monitored. The attribute being monitored. The current monitoring mode for the item The sampling interval for the item. The minimum sampling interval for the item. The queue size for the item. Gets number of elements actually contained in value queue. The diagnostics masks to use when collecting notifications for the item. The index range requested by the monitored item. The data encoding requested by the monitored item. Whether the monitored item should report a value without checking if it was changed. Returns a description of the item being monitored. Sets an error that occured in the sampling group. The sampling group or node manager that owns the item may call this to indicate that a fatal error occurred which means the item will no longer receive any data updates. This error state can be cleared by calling this method and passing in ServiceResult.Good. Returns the result after creating the monitor item. Returns the result after modifying the monitor item. Modifies the attributes for monitored item. Updates the sampling interval for an item. Changes the monitoring mode for the item. Changes the monitoring mode for the item. Changes the monitoring mode for the item. Adds an event to the queue. Updates the queue with a data value or an error. Sets the overflow bit. Adds a value to the queue. Whether the item is monitoring all events produced by the server. Fetches the event fields from the event. Adds an event to the queue. Adds an event to the queue. Adds an event to the queue. Whether the item has notifications that are ready to publish. Used to check whether the item is ready to sample. Increments the sample time to the next interval. Publishes all available event notifications. Publishes all available data change notifications. Publishes a single data change notifications. The object to call when item is ready to publish. The number of milliseconds until the next sample. Applies the filter to value to determine if the new value should be kept. Applies the filter to value to determine if the new value should be kept. Checks if the two values are equal. Returns true if the deadband was exceeded. Returns true if the deadband was exceeded. Clears and re-initializes the queue if the monitoring parameters changed. Update the overflow count. The current publishing state for a subcription. The subscription is not ready to publish. The subscription has notifications that are ready to publish. The has already indicated that it is waiting for a publish request. The subscription has expired. Manages the publish queues for a session. Creates a new queue. Frees any unmanaged resources. An overrideable version of the Dispose. Clears the queues because the session is closing. The list of subscriptions in the queue. Adds a subscription from the publish queue. Removes a subscription from the publish queue. Processes acknowledgements for previously published messages. Returns a subscription that is ready to publish. Completes the publish. if set to true the request must be requeued. The asynchronous operation. The calldata. Adds a subscription back into the queue because it has more notifications to publish. Checks the state of the subscriptions. Checks the state of the subscriptions. A request queued while waiting for a subscription. Frees any unmanaged resources. An overrideable version of the Dispose. Waits for the request to be processed. Sets the event that wakes up the publish thread. Stores a subscription that has notifications ready to be sent back to the client. Dumps the current state of the session queue. An interface used by the monitored items to signal the subscription. The session that owns the monitored item. The identifier for the item that is unique within the server. Called when a monitored item is ready to publish. Called when a monitored item is ready to publish. Called when a value of monitored item is discarded in the monitoring queue. Manages a subscription created by a client. Initializes the object. Frees any unmanaged resources. An overrideable version of the Dispose. The session that owns the monitored item. The unique identifier assigned to the subscription. Queues an item that is ready to publish. Tells the subscription that notifications are available but the item is not ready to publish. The identifier for the session that owns the subscription. Gets the lock that must be acquired before accessing the contents of the Diagnostics property. Gets the lock that must be acquired before updating the contents of the Diagnostics property. Gets the current diagnostics for the subscription. The publishing rate for the subscription. The number of monitored items. The priority assigned to the subscription. Deletes the subscription. Checks if the subscription is ready to publish. Tells the subscription that the owning session is being closed. Resets the keepalive counter. Resets the lifetime count. Update the monitoring queue overflow count. Removes a message from the message queue. Returns all available notifications. Publishes a timeout status message. Returns all available notifications. Construct a message from the queues. Returns a cached notification message. Updates the publishing parameters for the subscription. Enables/disables publishing for the subscription. Updates the triggers for the monitored item. Adds monitored items to a subscription. Adds an item to the sampling interval. Adds an item to the sampling interval. Removes an item from the sampling interval. Changes the monitoring mode for an item. Modifies monitored items in a subscription. Deletes the monitored items in a subscription. Deletes the monitored items in a subscription. Changes the monitoring mode for a set of items. Verifies that a condition refresh operation is permitted. Refreshes the conditions. Gets the monitored items for the subscription. Returns a copy of the current diagnostics. Throws an exception if the session is not the owner. Dumps the current state of the session queue. A generic session manager object for a server. Initializes the manager with its configuration. Frees any unmanaged resources. An overrideable version of the Dispose. Raised after a new subscription is created. Raised before a subscription is deleted. Returns all of the subscriptions known to the subscription manager. A list of the subscriptions. Raises an event related to a subscription. Starts up the manager makes it ready to create subscriptions. Closes all subscriptions and rejects any new requests. Signals that a session is closing. Refreshes the conditions for the specified subscription. Completes a refresh conditions request. Deletes the specified subscription. Updates the current monitored item count for the session. Gets the total number of publishing intervals in use. Creates a new subscription. Deletes group of subscriptions. Publishes a subscription. Called when a subscription expires. The subscription. Completes the publish. The context. The asynchronous operation. True if successful. False if the request has been requeued. Publishes a subscription. Modifies an existing subscription. Sets the publishing mode for a set of subscriptions. Attaches a groups a subscriptions to a different sesssion. Republishes a previously published notification message. Updates the triggers for the monitored item. Adds monitored items to a subscription. Modifies monitored items in a subscription. Deletes the monitored items in a subscription. Changes the monitoring mode for a set of items. Calculates the publishing interval. Calculates the keep alive count. Calculates the lifetime count. Calculates the maximum number of notifications per publish. Creates a new instance of a subscription. Periodically checks if the sessions have timed out. Cleanups the subscriptions. The server. The subscriptions to delete. Deletes any expired subscriptions. Provides access to the subscription manager within the server. Sinks that receive these events must not block the thread. Raised after a new subscription is created. Raised before a subscription is deleted. Returns all of the subscriptions known to the subscription manager. A list of the subscriptions. The delegate for functions used to receive subscription related events. The subscription that was affected. True if the subscription was deleted.