Class MemoryBackedHistorian

  • All Implemented Interfaces:
    Historian, StorageSession, java.lang.AutoCloseable

    public class MemoryBackedHistorian
    extends java.lang.Object
    implements Historian, StorageSession
    A tag historian that stores data in memory. Supports max age and max size constraints, on the historian, and per-tag.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addNode​(MemoryBackedHistorian.Tag node)  
      java.util.List<java.lang.String> browse​(java.util.Optional<java.lang.String> filter)
      Returns a list of paths with data stored, optionally matching a filter.
      void close()  
      StorageSession createStorageSession()
      Used to store values to the historian.
      void delete​(java.util.List<java.lang.String> paths)
      Deletes the tags and all data for the specified paths.
      <T> T getProperty​(Property<T> prop)
      Returns the configured or status property requested, or the default value if no further info is available.
      Status getQueryStatus()
      Returns the status of the storage system.
      Status getStorageStatus()
      Returns the status of the storage system.
      java.lang.Long getTotalDataCount()  
      void initialize​(PropertySet properties)  
      protected void performTimePruning​(boolean force)  
      QueryResult query​(java.util.List<java.lang.String> tags, long startTime, long endTime, boolean includeBounding)
      Queries the values for the given paths over the specified span of time.
      void register​(java.lang.String tag, PropertySet properties)
      Provides information about a path.
      void shutdown()  
      void store​(java.lang.String tag, java.lang.Object value, int quality, long timestamp)
      Stores a value for the given tag path.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MemoryBackedHistorian

        public MemoryBackedHistorian()
    • Method Detail

      • initialize

        public void initialize​(PropertySet properties)
                        throws java.lang.Exception
        Specified by:
        initialize in interface Historian
        Throws:
        java.lang.Exception
      • getProperty

        @Nullable
        public <T> T getProperty​(Property<T> prop)
        Description copied from interface: Historian
        Returns the configured or status property requested, or the default value if no further info is available. Most of these properties are defined in HistorianProperties.
        Specified by:
        getProperty in interface Historian
      • getTotalDataCount

        public java.lang.Long getTotalDataCount()
      • register

        public void register​(java.lang.String tag,
                             PropertySet properties)
        Description copied from interface: Historian
        Provides information about a path. May be called before or after values have been stored, will replace any previous information stored for a path. The property values are usually defined in HistorianProperties.
        Specified by:
        register in interface Historian
      • store

        public void store​(java.lang.String tag,
                          java.lang.Object value,
                          int quality,
                          long timestamp)
                   throws java.lang.Exception
        Description copied from interface: StorageSession
        Stores a value for the given tag path.
        Specified by:
        store in interface StorageSession
        Throws:
        java.lang.Exception
      • performTimePruning

        protected void performTimePruning​(boolean force)
      • browse

        public java.util.List<java.lang.String> browse​(java.util.Optional<java.lang.String> filter)
        Description copied from interface: Historian
        Returns a list of paths with data stored, optionally matching a filter.
        Specified by:
        browse in interface Historian
        Parameters:
        filter - a wildcard ("Tag*") based string that will be used to filter tags. If empty, all paths will be returned.
      • delete

        public void delete​(java.util.List<java.lang.String> paths)
        Description copied from interface: Historian
        Deletes the tags and all data for the specified paths. Paths may be wildcards using "*". Only expected to work if the historian supports storage, as indicated by getStorageStatus().
        Specified by:
        delete in interface Historian
      • query

        public QueryResult query​(java.util.List<java.lang.String> tags,
                                 long startTime,
                                 long endTime,
                                 boolean includeBounding)
        Description copied from interface: Historian
        Queries the values for the given paths over the specified span of time. The implementation will conform to the following rules:
        1. If endTime is less than start time, results MAY be provided latest first. If that is not possible, the parameters will be swapped and values returned as normal.
        2. The result will have a unique PathInfo item for EACH of the paths passed in. If a path is specified multiple times, it will be returned multiple times.
        3. If a path is not valid, the query result will return ONE DataPoint for the query start time with a quality of 404 (NOT FOUND)
        4. The timestamps for a given path will be ascending, though between paths they may not be.
        Specified by:
        query in interface Historian
        includeBounding - if true, the closest value previous to the start time will be returned, as well as the closest value following the end time.
      • getStorageStatus

        public Status getStorageStatus()
        Description copied from interface: Historian
        Returns the status of the storage system. If the system does not support storage, NotAvailable will be returned. If this is the case, calls to createStorageSession will fail.
        Specified by:
        getStorageStatus in interface Historian
      • getQueryStatus

        public Status getQueryStatus()
        Description copied from interface: Historian
        Returns the status of the storage system. If the system does not support querying, NotAvailable will be returned.
        Specified by:
        getQueryStatus in interface Historian
      • createStorageSession

        public StorageSession createStorageSession()
        Description copied from interface: Historian
        Used to store values to the historian. Should be used for the immediate set of values and then closed. It should not be held open for longer than necessary.

        It implements AutoClosable, and should often be used in a try-with-resources block, such as:
        try(StorageSession s = historian.createStorageSession()){ s.store... }

        Important: Not every historian will support storage, some are read-only. This can be checked by calling getStorageStatus() and checking the return for "NotSupported".

        Specified by:
        createStorageSession in interface Historian
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.io.IOException