Class AtomicHistoryActor

java.lang.Object
com.inductiveautomation.historian.gateway.tags.actor.AtomicHistoryActor
All Implemented Interfaces:
NodeSessionObserver, HistoryActor, Diagnosable, TagActor

public class AtomicHistoryActor extends Object implements HistoryActor, Diagnosable, NodeSessionObserver
This is the primary history actor, it stores data for a single source.
  • Constructor Details

  • Method Details

    • maybeInstallTestClock

      public void maybeInstallTestClock(Clock clock)
    • actorClassification

      public ActorClassification actorClassification()
      Description copied from interface: TagActor
      The classification of this actor. A tag can only have one actor per classification.
      Specified by:
      actorClassification in interface TagActor
    • hasChanged

      protected boolean hasChanged(PropertySet config, Property<?> prop)
    • initialize

      public void initialize(NodeContext context, BoundPropertySet config)
      Description copied from interface: TagActor
      Override to set up any extra configuration that is needed before the actor can process a value. It should be expected that the configuration has NOT been altered since the actor was instantiated.
      Specified by:
      initialize in interface TagActor
    • attemptConfiguration

      public boolean attemptConfiguration(NodeContext context, VersionedPropertySet config)
      Description copied from interface: TagActor
      Provides an opportunity to update the running actor on the fly. If FALSE is returned from this class, the actor will be uninitialized, and if appropriate, a new one created.

      Therefore, the implementation should also verify that the configuration is still valid for this actor.

      The config object provide is the entire configuration for the tag. However, it is provided as a Diff, which is relative to the last time configuration was attempted. This allows actors to quickly see if relevant properties have changed. Many actors will choose to simply rebuild themselves if the properties have changed, but given how often this function is called, it's important not to rebuild unnecessarily (hence, check the changed properties).

      Specified by:
      attemptConfiguration in interface TagActor
    • configureGroupSettings

      public void configureGroupSettings(TagGroup group)
      Specified by:
      configureGroupSettings in interface HistoryActor
    • onProcessingBlocked

      public void onProcessingBlocked(boolean isBlocked)
      Specified by:
      onProcessingBlocked in interface HistoryActor
    • configure

      protected void configure(PropertySet config)
    • calculateMetadataToStore

      @Nullable protected PropertySet calculateMetadataToStore(PropertySet config)
    • configureCompressor

      protected void configureCompressor(PropertySet config)
    • store

      protected boolean store(List<QualifiedValue> values)
      Returns whether a value was stored.
    • processValue

      public QualifiedValue processValue(QualifiedValue value)
      Description copied from interface: TagActor
      The value is generated by the source actor and then passed along to the next actor. If the return is null, the value change will be cancelled.
      Specified by:
      processValue in interface TagActor
    • destroy

      public void destroy(NodeContext context, ShutdownReason reason)
      Description copied from interface: TagActor
      Override to perform cleanup for actors that have set up extra configuration to process values.
      Specified by:
      destroy in interface TagActor
    • sampleDiagnostics

      public void sampleDiagnostics(DiagnosticsSample sample)
      Description copied from interface: Diagnosable
      Provides the sample upon which the object can set diagnostics information. It is expected that the calling object will first call getSubSample() in order to specify a useful identifier for this object's data.
      Specified by:
      sampleDiagnostics in interface Diagnosable
    • addBrowseTraits

      public void addBrowseTraits(NodeDescription.NodeDescriptionBuilder desc)
      Description copied from interface: TagActor
      Gives the actor a chance to report NodeAttribute traits for the tag it belongs to. NodeAttributes are registered in the designer in order to modify the display of browse nodes.
      Specified by:
      addBrowseTraits in interface TagActor
    • storageStatusChanged

      public void storageStatusChanged(Status newStatus)
      Specified by:
      storageStatusChanged in interface NodeSessionObserver
    • report

      public void report(Level level, String message, Object data)
      Specified by:
      report in interface NodeSessionObserver