java.lang.Object
com.inductiveautomation.historian.gateway.api.storage.realtime.DataCollectorDelegate
All Implemented Interfaces:
DataCollector

public class DataCollectorDelegate extends Object implements DataCollector
This sits in between our real collection session and nodes, and the tag actor. It helps us navigate lifecycle issues, such as when the session is created before the profiles are loaded, or when providers are restarted.

The delegates will hold the last metadata and value, so that if the real node is added later, the latest values can be registered.

  • Constructor Details

    • DataCollectorDelegate

      public DataCollectorDelegate(CollectorId collectorId)
  • Method Details

    • createNodeSession

      public DataNodeSession createNodeSession(QualifiedPath source, DataType dataType, PropertySet configuration)
      Description copied from interface: DataCollector
      Creates a new session for interacting with a data node. This session allows processing various operations like data changes, metadata updates, and source changes for the specified node. It provides a dedicated context for managing the lifecycle and state of a data node.
      Specified by:
      createNodeSession in interface DataCollector
      Parameters:
      source - The QualifiedPath representing the source of the data node.
      dataType - The DataType specifying the type of data handled by the session.
      configuration - A PropertySet containing the configuration properties for the session.
      Returns:
      A DataNodeSession instance for managing operations and observing state changes for the specified data node.
    • executeDataCollection

      public CompletionStage<Void> executeDataCollection(CollectionContext context)
      Description copied from interface: DataCollector
      Executes the data collection process using the provided context. This operation initiates data retrieval or aggregation based on the configuration and parameters specified in the CollectionContext instance. The process could include handling periodic or one-time data collections, as well as processing heartbeat operations if indicated in the context.
      Specified by:
      executeDataCollection in interface DataCollector
      Parameters:
      context - The CollectionContext object encapsulating all necessary details for the data collection operation, such as identifiers, source, interval, timestamp, and value origin.
      Returns:
      A CompletionStage that completes when the data collection process is finished. If any errors occur during the operation, the CompletionStage will complete exceptionally.
    • shutdown

      public CompletionStage<Void> shutdown()
      Description copied from interface: DataCollector
      Initiates an orderly shutdown of this DataCollector. This operation will:
      1. Stop accepting new data points or node sessions
      2. Process and flush any remaining queued data
      3. Close all active DataNodeSessions
      4. Release any system resources
      After calling this method, the DataCollector instance should be considered unusable and any subsequent method calls will result in undefined behavior.
      Specified by:
      shutdown in interface DataCollector
      Returns:
      A CompletionStage that completes normally when shutdown is finished, or completes exceptionally if errors occurred during shutdown
    • identifier

      public CollectorId identifier()
      Description copied from interface: DataCollector
      Retrieves the unique identifier for this data collector. The identifier is used to distinguish between different data collectors and is essential for managing and referencing the collector in various operations.
      Specified by:
      identifier in interface DataCollector
      Returns:
      The CollectorId representing the unique identifier of this data collector.
    • updateStorageEngine

      public void updateStorageEngine(@Nullable StorageEngine storage)
    • closeNode

      protected void closeNode(QualifiedPath path)
    • reassignNodePath

      protected void reassignNodePath(SourceChangePoint sourceChange)