Collaboration diagram for RDM Time Series APIs:

Data Structures

class RDM::TIME_SERIES::collect< N, RANGE_T, NEXT >
Template Class for collecting data values into ranges. More...
class RDM::TIME_SERIES::custom< NEXT >
Template Class for doing custom operations. More...
class RDM::TIME_SERIES::dead_end
Template Class for ignoring. More...
class RDM::TIME_SERIES::fft< N, RANGE_T, INDATA_T, NEXT >
Template base Class for doing FFTs. More...
class RDM::TIME_SERIES::fft_rdm< N, RANGE_T, INDATA_T, NEXT >
Template Class for doing an FFT using the RDM FFT implementation. More...
class RDM::TIME_SERIES::fft_abs< N, RANGE_T, INDATA_T, NEXT >
Template Class for doing an FFT with absoulte values. More...
class RDM::TIME_SERIES::fft_abs_positive< N, RANGE_T, INDATA_T, NEXT >
Template Class for doing an FFT with absoulte value of the positive frequencies. More...
class RDM::TIME_SERIES::mean< N, AGGREGATE_T, AGG_ELEMENT_T, NEXT >
Template Class for doing an arithmetic mean. More...
class RDM::TIME_SERIES::arithmetic_mean< N, AGGREGATE_T, AGG_ELEMENT_T, NEXT >
Template Class for doing an arithmetic mean. More...
class RDM::TIME_SERIES::geometric_mean< N, AGGREGATE_T, AGG_ELEMENT_T, NEXT >
Template Class for doing an arithmetic mean. More...
class RDM::TIME_SERIES::harmonic_mean< N, AGGREGATE_T, AGG_ELEMENT_T, NEXT >
Template Class for doing a harmonic mean. More...
class RDM::TIME_SERIES::restore_aggregate< TIME_STAMP_KEY_T, SOURCE_TIME_STAMP_KEY, AGGREGATE_TIME_STAMP_KEY, NEXT >
Template class for restoring an aggregate classe. More...
class RDM::TIME_SERIES::scale< RATIO, NEXT >
Template Class for scaling. More...
class RDM::TIME_SERIES::split< NEXT_1, NEXT_2 >
Template Class for doing a split. More...
class RDM::TIME_SERIES::stats< N, STATS_T, NEXT >
Template Class for doing statistics. More...

Detailed Description

The RDM Time Series API contains a set of template classes used for time series data manipulation.

Use these template classes to set up a static chain of encapsulated classes. Each class in the chain has a specific processing task and will pass the result of its processing to the next class in the chain. A chain of these classes is terminated with a dead_end class or an insert_row class.

A transaction class is provided for transaction control. This class can be used to make a number of processing cycles transactional. A transaction class can only occur at the beginning of the chain.

There are three types of data elements passed between these classes:

  • Data values

    The type for the value provided is required to have columns for 'time_stamp_current' and 'value_current' with appropriate types. Such a type can be generated using rdm-compile with a schema including a table similar to this:

    CREATE TABLE measurement
    (
    time_stamp_current UINT64 PRIMARY KEY,
    value_current DOUBLE NOT NULL
    );
  • Statistics

    The type for the value provided is required to have columns for 'time_stamp_first', 'time_stamp_last', 'n', 'value_sum', and 'value_sum2' with appropriate types. Such a type can be generated using rdm-compile with a schema including a table similar to this:

    CREATE TABLE stats
    (
    time_stamp_first UINT64 NOT NULL,
    time_stamp_last UINT64 PRIMARY KEY,
    n UINT64 NOT NULL,
    value_sum DOUBLE NOT NULL,
    value_sum2 DOUBLE NOT NULL
    );
  • range

    The type for the value provided is required to have columns for 'time_stamp_first', 'time_stamp_last', and 'value_range' with appropriate types. The column 'value_range' must be an array that is able to hold a static number of elements. Such a type can be generated using rdm-compile with a schema including a table similar to this:

    CREATE TABLE range
    (
    value_range DOUBLE ARRAY [32] NOT NULL,
    time_stamp_first UINT64 NOT NULL,
    time_stamp_last UINT64 PRIMARY KEY
    );