RTC Toolkit 6.0.0
Loading...
Searching...
No Matches
rtctk::componentFramework Namespace Reference

Namespaces

namespace  detail
 
namespace  test
 

Classes

struct  AbstractEvent
 Abstract Event Type that is used as a base for all events. More...
 
class  AdapterCreationException
 Thrown from service factory methods to indicate the adapter construction failed. More...
 
class  AlertCmdsImpl
 Class that handles reception of command ClearAlerts using MAL. More...
 
class  AlertConflictException
 Exception indicating that an alert conflicts with already known alert. More...
 
class  AlertEventPublisher
 Alert observer that publishes alerts to Event Channel. More...
 
struct  AlertInfo
 
class  AlertLogger
 Alert observer that publishes alerts to Log Files. More...
 
struct  AlertObserverIf
 
class  AlertOldbPublisher
 Alert observer that publishes alerts to Online Database. More...
 
class  AlertService
 
class  AlertServiceIf
 Alert Service interface. More...
 
class  AlertSource
 Models a single alert source that can be set or cleared. More...
 
class  AlertStatus
 
struct  AlertStatusEvent
 Event published when alert status is changed. More...
 
class  AlertTelegrafPublisher
 Alert observer that publishes alerts to InfluxDB via Telegraf. More...
 
class  AlertUnknownException
 Exception indicating that an alert does not exist. More...
 
class  Args
 Class used to parse default command line arguments. More...
 
struct  AsSpan
 Gets the span type for converting type T to a span. More...
 
struct  AsSpan< const std::array< T, Size > >
 
struct  AsSpan< MatrixBuffer< T, Allocator > >
 
struct  AsSpan< std::array< T, Size > >
 
struct  AsSpan< std::vector< T, Allocator > >
 
class  BufferManager
 BufferManager is a class that will allocate a big buffer and spit it up in several cache-aligned sub-buffers. More...
 
class  BufferMonitor
 Monitors min, mean and max occupation of a buffer and publishes them to OLDB. More...
 
class  BufferTooSmall
 The BufferTooSmall is thrown when an API call fails because the provided buffer is not big enough to hold the data. More...
 
class  CommandReplier
 Class that handles reception of commands using MAL. More...
 
class  CommandRequestor
 Extendable class that allows to send commands to components using MAL. More...
 
class  ComponentMetrics
 Implementation of ComponentMetricsIf. More...
 
class  ComponentMetricsIf
 Component metrics interface. More...
 
struct  ComputationEvent
 Abstract Event Type that is used as a base for computation events. More...
 
struct  ComputationFinishedEvent
 Event Type used to signal that a computation has finished. More...
 
struct  ComputationStartedEvent
 Event Type used to signal that a computation has started. More...
 
struct  ConfigurationEvent
 Abstract Event Type that is used as a base for configuration events. More...
 
struct  ConfigurationRetrievedEvent
 Event Type used to signal that configuration data items were retrieved from RTR. More...
 
struct  ConfigurationUpdatedEvent
 Event Type used to signal that configuration data items were updated in RTR. More...
 
class  ConsulServiceRegistryAdapter
 Class that implements a very basic service discovery mechanism using Consul. More...
 
struct  CoordinationEvent
 Abstract Event Type that is used as a base for coordination events. More...
 
class  CounterMetricInfo
 Defines auxiliary information associated with each counter registered with ComponentMetricsIf. More...
 
class  DataPointPath
 This class provides a wrapper for a data point path. More...
 
class  DataPointRecordingUnit
 Recording Unit that can record datapoints. More...
 
class  DataRecorder
 This is an abstract class that can be used to implement an OutputStage for a Recording Unit. More...
 
class  Dds
 Common functionallty needed to create DDS entities like participant and topic that can be later used (extent) for DDS data publishing and subscribing . More...
 
class  DdsPub
 All functionallty needed to create DDS entities for DDS data publishing is concentrated in this class. More...
 
class  DdsReaderListener
 Listener class for different DDS events. More...
 
struct  DdsReaderParams
 Structure that keeps together topic name and DDS Data Writer listener. More...
 
class  DdsSub
 All functionality needed to create DDS entities for DDS data subscribing is concentrated in this class. More...
 
class  DdsWriterListener
 Listener class for differetn DDS events. More...
 
struct  DdsWriterParams
 Structure that keeps together topic name and DDS Data Writer listener. More...
 
class  DdtError
 This Exception is raised when the DDT Publisher returns an error that cannot be handled by the DDT Sink. More...
 
class  DdtSinkNotFound
 This Exception is raised when an invalid ddt sink is requested. More...
 
class  DebugExport
 
class  Deserialiser
 Deserialisation helper class for reading, it provides a writable byte span to the RtrClient. More...
 
class  Deserialiser< std::string >
 
class  DurationMonitor
 Monitors min, mean and max duration and publishes them to OLDB. More...
 
class  DynamicThreadPool
 The DynamicThreadPool allows creating multiple threads which are garbage collected. More...
 
class  EventPublisherIf
 Interface class for publishing JSON events. More...
 
class  EventRecordingUnit
 Recording Unit that records JSON events in JSON Lines format (.jsonl) More...
 
class  EventServiceIf
 Interface class for providing pub/sub facilities for JSON events. More...
 
class  EventSubscriberIf
 Interface class for subscribing to JSON events. More...
 
class  FactoryRegistry
 A simple registry of various factory objects. More...
 
struct  FakeComponentMetrics
 
class  FileServiceRegistryAdapter
 Class that implements a very basic service discovery mechanism using a file. More...
 
struct  FitsColumn
 
struct  FitsColumnFormat
 Type that stores type information for a FITS TFORM string. More...
 
struct  FitsColumnFormat< bool >
 
struct  FitsColumnFormat< double >
 
struct  FitsColumnFormat< float >
 
struct  FitsColumnFormat< int16_t >
 
struct  FitsColumnFormat< int32_t >
 
struct  FitsColumnFormat< int64_t >
 
struct  FitsColumnFormat< int8_t >
 
struct  FitsColumnFormat< std::string >
 
struct  FitsColumnFormat< T, typename std::enable_if_t< IS_DYNAMIC_SPAN_TYPE< T > > >
 
struct  FitsColumnFormat< T, typename std::enable_if_t< IS_MATRIX_BUFFER_TYPE< T > > >
 
struct  FitsColumnFormat< T, typename std::enable_if_t< IS_STATIC_SPAN_TYPE< T > > >
 
struct  FitsColumnFormat< T, typename std::enable_if_t< IS_STD_ARRAY_TYPE< T > > >
 
struct  FitsColumnFormat< T, typename std::enable_if_t< IS_VECTOR_TYPE< T > > >
 
struct  FitsColumnFormat< uint16_t >
 
struct  FitsColumnFormat< uint32_t >
 
struct  FitsColumnFormat< uint64_t >
 
struct  FitsColumnFormat< uint8_t >
 
class  FitsDataRecorderFitsError
 
class  FitsRecorder
 
class  FrequencyEstimator
 Estimates the frequency in which Tick is called and publishes result to OLDB. More...
 
class  FuncCmdsImpl
 Class that handles reception of commands Run, Idle and Recover using MAL. More...
 
struct  HasSampleIdWithCorrectType
 
struct  HasSampleIdWithCorrectType< T, decltype(std::declval< T >().sample_id, 0)>
 
struct  HrtcConfigurationAppliedEvent
 Event Type used to signal that configuration data items were applied in HRTC. More...
 
struct  HrtcConfigurationScheduledEvent
 Event Type used to signal that configuration data items were scheduled to be applied in HRTC. More...
 
struct  HrtcStateChangedEvent
 Event Type used to signal that some entity in HRTC changed its state. More...
 
struct  InfluxPoint
 Represents a single data point for InfluxDB. More...
 
class  InfluxTagMap
 Helper class for passing tags in Telegraf. More...
 
class  InitialisationException
 Thrown in cases where an initialisation routine has failed. More...
 
class  IntrospectionImpl
 Class that handles reception of introspection commands. More...
 
class  InvalidArgumentException
 Thrown if an argument passed to a method was invalid. More...
 
class  InvalidSetting
 This Exception is raised when a invalid setting was used in the runtime repo. More...
 
class  InvalidStateChange
 This Exception is raised when the state change requested is invalid. More...
 
class  IpcqError
 This Exception is raised when the ipc queue returns an error that cannot be handled by the Telemetry Source Thread. More...
 
class  IpcqRecordingUnit
 Recording Unit that can record from shared memory queue. More...
 
struct  is_base_of_template_impl
 
struct  IsAdapterIdTypeDefined
 Structure for detecting if a class declared a type called AdapterIdType using SFINAE. More...
 
struct  IsAdapterIdTypeDefined< T, std::void_t< decltype(std::declval< typename T::AdapterIdType >())> >
 Structure for detecting if a class declared a type called AdapterIdType using SFINAE. More...
 
struct  IsComplexType
 Structure for detecting std::vector types using SFINAE. More...
 
struct  IsComplexType< std::complex< T > >
 Structure for detecting std::vector types using SFINAE. More...
 
struct  IsDynamicSpanType
 Structure for detecting gsl::span types of dynamic size using SFINAE. More...
 
struct  IsDynamicSpanType< gsl::span< T, N > >
 Structure for detecting gsl::span types of dynamic size using SFINAE. More...
 
struct  IsMatrixBufferType
 Structure for detecting MatrixBuffer types using SFINAE. More...
 
struct  IsMatrixBufferType< MatrixBuffer< T, A > >
 Structure for detecting MatrixBuffer types using SFINAE. More...
 
struct  IsMatrixSpanType
 Structure for detecting MatrixSpan types using SFINAE. More...
 
struct  IsMatrixSpanType< MatrixSpan< T > >
 Structure for detecting MatrixSpan types using SFINAE. More...
 
struct  IsSpanConvertible
 Type trait to check if a type can be converted to a Span using AsSpan/ToSpan. More...
 
struct  IsSpanType
 Structure for detecting gsl::span types using SFINAE. More...
 
struct  IsSpanType< gsl::span< T, N > >
 Structure for detecting gsl::span types using SFINAE. More...
 
struct  IsStaticSpanType
 Structure for detecting gsl::span types of fixed size using SFINAE. More...
 
struct  IsStaticSpanType< gsl::span< T, N > >
 Structure for detecting gsl::span types of fixed size using SFINAE. More...
 
struct  IsStdArrayType
 Structure for detecting std::array types using SFINAE. More...
 
struct  IsStdArrayType< std::array< T, N > >
 Structure for detecting std::array types using SFINAE. More...
 
struct  IsSupportedUriSchemeDefined
 Structure for detecting if a class declared a member called SUPPORTED_URI_SCHEME using SFINAE. More...
 
struct  IsSupportedUriSchemeDefined< T, std::void_t< decltype(T::SUPPORTED_URI_SCHEME)> >
 Structure for detecting if a class declared a member called SUPPORTED_URI_SCHEME using SFINAE. More...
 
struct  IsVectorType
 Structure for detecting std::vector types using SFINAE. More...
 
struct  IsVectorType< std::vector< T, A > >
 Structure for detecting std::vector types using SFINAE. More...
 
class  LogInfo
 
class  LogInitializer
 RAII class to clean-up logging without leaking memory. More...
 
struct  Loopaware
 Life cycle extension to make RtcComponent Loopaware. More...
 
class  LoopCmdsImpl
 Class that handles reception of commands Open and Close using MAL. More...
 
class  MalDdsEventPublisher
 Implementation of event publisher. More...
 
class  MalDdsEventService
 Implementation of low-level event service using CII MAL DDS as middleware. More...
 
class  MalDdsEventSubscriber
 Implementation of event subscriber. More...
 
class  MatrixBuffer
 A buffer class representing 2D matrix data. More...
 
class  MatrixSpan
 A span referencing a 2D matrix buffer. More...
 
class  MeasCmdsImpl
 Class that handles reception of command Measure using MAL. More...
 
struct  Measurable
 Life cycle extension to make RtcComponent Measurable. More...
 
class  MetricConflictException
 Exception indicating that a metric such as counter or thread conflicts with already known metrics. More...
 
struct  MockComponentMetrics
 
class  ModelBuilderBase
 Base class of the ModelBuilder. More...
 
class  ModelManipulator
 Class that provides methods to manipulate the state machine model. More...
 
class  NestedExceptionPrinter
 Adapter object intended to be used in contexts without direct access to the output-stream object. More...
 
class  NoBufferAvailableException
 
class  NotImplementedException
 The NotImplementedException is thrown whenever an attempt is made to use a feature or function that has not been implemented. More...
 
class  OldbAdapter
 Implementation of the OLDB Adapter. More...
 
class  OldbIf
 Base interface for all OLDB adapters. More...
 
class  OldbSubscription
 
class  OptCmdsImpl
 Class that handles reception of command Optimise using MAL. More...
 
struct  Optimisable
 Life cycle extension to make RtcComponent Optimisable. More...
 
class  PathMapper
 Used to calculate URIs from datapoint paths. More...
 
class  PersistentRepoAdapter
 Implements the Persistent Configuration Repository adapter that uses the CII configuration service as the backend. More...
 
class  PersistentRepoIf
 Base interface for all Persistent Configuration Repository adapters. More...
 
class  PlantUmlExport
 
class  PopulateConfig
 A utility class used to populate the Runtime Configuration Repository. More...
 
class  PythonInterpreter
 Helper class for managing the lifecycle of an embedded Python interpreter. More...
 
struct  RecordingInfo
 
class  RecordingUnit
 Abstract base class for all sources that can be recorded by the MetadataCollector and TelemetryRecorder. More...
 
class  RecoverCmdsImpl
 Class that handles reception of command Recover using MAL. More...
 
class  RegisterFactory
 A helper class used to perform registration and deregistration of a factory. More...
 
class  RepositoryFactory
 A base class for factories that create instances of repository adapters from URIs. More...
 
class  RepositoryIf
 Abstract interface providing basic read and write facilities to a repository. More...
 
class  RepositoryRecordingUnit
 Recording Unit that can record multiple repository datapoints including metadata. More...
 
class  RepositorySubscriberIf
 Abstract interface providing I/O and additional subscription facilities for a repository. More...
 
class  RequestAborted
 Thrown if somebody sent a stop or abort command. More...
 
class  RequestDispatcher
 
class  RequestFailed
 Thrown if the command was accepted but the task to run failed. More...
 
class  RequestRejected
 Thrown if a command is not allowed in current state or guard. More...
 
struct  RtcComponent
 Basic life cycle for RtcComponent. More...
 
class  RtctkException
 The RtctkException class is the base class for all Rtctk exceptions. More...
 
struct  RtcTypeInfo
 
class  RtrClient
 This internal class implements the basic communication and commands toward the server. More...
 
struct  Runnable
 Life cycle extension to make RtcComponent Runnable. More...
 
class  RuntimeRepoAdapter
 Implementation of the Runtime Configuration Repository Adapter. More...
 
class  RuntimeRepoIf
 Base interface for all Runtime Configuration Repository adapters. More...
 
class  ScXmlExport
 
class  Serialiser
 Serialisation helper class for writing, it provides readable byte span to the RtrClient. More...
 
class  Serialiser< std::string >
 
class  ServiceContainer
 Container class that holds services of any type. More...
 
class  ServiceDiscovery
 Class that implements a very basic service discovery mechanism. More...
 
class  ServiceRegistryIf
 Class that implements a service registry to be used by the service discovery. More...
 
class  SmCatExport
 
struct  State
 
struct  StateChangedEvent
 Event Type used to signal that some entity changed its state. More...
 
struct  StateMachine
 
class  StateMachineEngine
 
class  StatePublisher
 Class used to publish state-changed-topic using MAL. More...
 
class  StateSubscriber
 Class used to subscribe to state-changed-topic using MAL. More...
 
class  StdCmdsImpl
 Class that handles reception of stdif commands. More...
 
struct  StdComponent
 Basic life cycle for StdComponent. More...
 
class  StdIfRequestAborted
 Thrown if somebody sent a stop or abort command. More...
 
class  StdIfRequestFailed
 Thrown if the command was accepted but the task to run failed. More...
 
class  StdIfRequestRejected
 Thrown if the command is not allowed in current state or guard. More...
 
class  SuspCmdsImpl
 Class that handles reception of commands Suspend and Resume using MAL. More...
 
struct  Suspendable
 Life cycle extension to make Loopaware RtcComponent Suspendable. More...
 
class  TelegrafAdapter
 Implementation of the Telegraf Adapter. More...
 
class  ThreadActivity
 Class that handles state machine activities. More...
 
struct  TimeString
 Represents an ISO 8601 time string in format: YYYY-MM-DDThh:mm:ss.sssZ. More...
 
struct  Transition
 
struct  Unit
 
class  UnsupportedTypeException
 The UnsupportedTypeException is thrown whenever an attempt is made to use an unsupported type in the RTC Toolkit API. More...
 
class  UnsupportedUriException
 The UnsupportedUriException is thrown whenever an attempt is made to use an unsupported URI in the RTC Toolkit API. More...
 
class  UpdateCmdsImpl
 Class that handles reception of command Update using MAL. More...
 

Typedefs

using RtcComponentSuper = StdComponent
 
using ActionMethod = std::function<void(scxml4cpp::Context* c)>
 
using GuardMethod = std::function<bool(scxml4cpp::Context* c)>
 
using ActivityMethod = std::function<void(StopToken f)>
 
using SuccessMethod = std::function<void()>
 
using FailureMethod = std::function<void(std::exception_ptr)>
 
using RejectMethod = std::function<void(const rad::AnyEvent&, const std::string& state)>
 
using StateMethod = std::function<void(const std::string&)>
 
template<template< typename... > class Base, typename Derived>
using is_base_of_template = typename is_base_of_template_impl<Base, Derived>::type
 
using JsonPayload = nlohmann::json
 Type requirements:
 
using StopSource = rad::StopSource
 
using StopToken = rad::StopToken
 
template<typename T>
using AsSpanT = typename AsSpan<T>::TYPE
 
using RecUnitListType = std::list<std::unique_ptr<RecordingUnit>>
 
using RecUnitFactoryType = std::function<RecUnitListType(const std::string&, ServiceContainer&)>
 
using MetaData = RepositoryIf::MetaData
 
using Timestamp = RepositoryIf::Timestamp
 
using Lut = RequestDispatcher<OldbAdapter>
 
using PathList = RepositoryIf::PathList
 
using RepositoryServiceException = PopulateConfig::RepositoryServiceException
 
using InvalidConfigException = PopulateConfig::InvalidConfigException
 
using InvalidDataPointException = PopulateConfig::InvalidDataPointException
 
using FieldValue = std::variant<int64_t, uint64_t, float, double, bool, std::string>
 

Enumerations

enum  StateType : uint8_t {
  Machine , Simple , Parallel , Composite ,
  Initial , Final
}
 
enum class  DataPointRecordingSource : uint8_t { OLDB , RUNTIMEREPO }
 

Functions

template<typename EventType>
elt::mal::future< std::string > InjectReqRepEvent (StateMachineEngine &engine)
 
template<typename EventType, typename PayloadType>
elt::mal::future< std::string > InjectReqRepEvent (StateMachineEngine &engine, PayloadType &payload)
 
std::stringstream Export (StateMachine &sm, const std::string &format)
 Export the in-memory state machine model in various formats.
 
template<class BL, class BLF>
void RunAsRtcComponent (const Args &args, BLF factory)
 RTC Component runner function, needed to run custom BusinessLogic as RTC Component.
 
template<class BL>
void RunAsRtcComponent (const Args &args)
 RTC Component runner function, needed to run custom BusinessLogic as RTC Component.
 
int Main (int argc, char *argv[])
 Main function implementation.
 
template<typename EVENT>
std::shared_ptr< typename EVENT::payload_t > GetPayloadNothrow (scxml4cpp::Context *c)
 
std::string ReplaceAll (std::string str, const std::string &from, const std::string &to)
 
std::map< std::string, std::string > ParseIdToMap (const std::string &id)
 
std::istream & operator>> (std::istream &input, DataPointPath &path)
 
void to_json (JsonPayload &j, const DataPointPath &v)
 
void from_json (const JsonPayload &j, DataPointPath &v)
 
void PrintComposedExceptions (std::ostream &os, const std::vector< std::exception_ptr > &exceptions)
 Print composed exception messages in exceptions list to os.
 
void PrintNestedExceptions (std::ostream &os, const std::exception &exception)
 Print nested exception(s) in exception to os.
 
void PrintNestedExceptions (std::ostream &os, std::exception_ptr ptr)
 Print nested exception(s) in exception to os.
 
std::string GetCfitsioErrorMsg (int status)
 Helper function to convert a Cfitsio status code to a human readable message.
 
std::string CfitsioImageTypeToString (int bitpix)
 Returns a string representation of a Cfitsio image type code.
 
std::string CfitsioDataTypeToString (int datatype)
 Returns a string representation of a Cfitsio data type code.
 
const std::type_info & GetFitsImageType (const std::string &filename)
 Get the C++ type corresponding to a FITS image.
 
std::vector< uint64_t > GetFitsImageShape (const std::string &filename)
 Get the shape of a FITS image.
 
std::size_t GetFitsImageSize (const std::string &filename)
 Get the number of pixels in a FITS image.
 
template<>
void WriteDataToFits (const std::string &filename, const std::any &buffer)
 
template<>
void ReadDataFromFits (const std::string &filename, std::any &buffer)
 
RTCTK_API DataPointPath operator""_dppath (const char *str, std::size_t len)
 
bool operator== (const DataPointPath &lhs, const char *rhs)
 
bool operator< (const DataPointPath &lhs, const char *rhs)
 
bool operator<= (const DataPointPath &lhs, const char *rhs)
 
bool operator> (const DataPointPath &lhs, const char *rhs)
 
bool operator>= (const DataPointPath &lhs, const char *rhs)
 
bool operator== (const DataPointPath &lhs, const std::string &rhs)
 
bool operator< (const DataPointPath &lhs, const std::string &rhs)
 
bool operator<= (const DataPointPath &lhs, const std::string &rhs)
 
bool operator> (const DataPointPath &lhs, const std::string &rhs)
 
bool operator>= (const DataPointPath &lhs, const std::string &rhs)
 
bool operator== (const DataPointPath &lhs, const DataPointPath &rhs)
 
bool operator< (const DataPointPath &lhs, const DataPointPath &rhs)
 
bool operator<= (const DataPointPath &lhs, const DataPointPath &rhs)
 
bool operator> (const DataPointPath &lhs, const DataPointPath &rhs)
 
bool operator>= (const DataPointPath &lhs, const DataPointPath &rhs)
 
DataPointPath operator+ (DataPointPath lhs, const DataPointPath &rhs)
 
DataPointPath operator/ (DataPointPath lhs, const DataPointPath &rhs)
 
std::ostream & operator<< (std::ostream &out, const DataPointPath &rhs)
 
template<class E>
auto WrapWithNested (E &&exception) noexcept(std::is_nothrow_constructible_v< detail::UnspecifiedNested< typename std::decay_t< E > >, E && >)
 Constructs an unspecified exception that derives from both the provided object and std::nested_exception.
 
template<typename T>
void WriteDataToFits (const std::string &filename, const T &buffer)
 Writes a matrix, vector, or span to a FITS image file.
 
template<typename T>
void ReadDataFromFits (const std::string &filename, T &buffer)
 Reads data from a FITS file into a buffer (matrix, vector, or span).
 
template<>
void WriteDataToFits (const std::string &filename, const std::any &buffer)
 
template<>
void ReadDataFromFits (const std::string &filename, std::any &buffer)
 
template<typename T>
void WriteMatrixToFits (const std::string &filename, const T &matrix, bool boolean_items=false)
 Writes data representing a matrix as an image to a FITS file.
 
template<typename T>
void ReadMatrixFromFits (const std::string &filename, T &matrix)
 Reads a FITS file image into a buffer object representing a matrix.
 
template<typename T>
void WriteVectorToFits (const std::string &filename, const T &vector, bool boolean_items=false)
 Writes data as a 1D image to a FITS file.
 
template<typename T>
void ReadVectorFromFits (const std::string &filename, T &vector)
 Reads a FITS file containing a 1D image into a buffer object representing a vector.
 
template<typename A>
void WriteMatrixToFits (const std::string &filename, const MatrixBuffer< bool, A > &matrix)
 Writes a matrix of boolean values as a FITS image with 8 bits per pixel.
 
template<typename A>
void ReadMatrixFromFits (const std::string &filename, MatrixBuffer< bool, A > &matrix)
 Reads a matrix of boolean values from a FITS image with 8 bits per pixel.
 
template<typename A>
void WriteVectorToFits (const std::string &filename, const std::vector< bool, A > &vector)
 Write a vector of boolean values to a FITS file as a 1D image of 8 bit pixels.
 
template<typename A>
void ReadVectorFromFits (const std::string &filename, std::vector< bool, A > &vector)
 Read a vector of boolean values from a FITS files containing a 1D image of 8 bit pixels.
 
template<typename T, typename A>
constexpr bool operator== (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and returns true if they have the same shape and identical elements.
 
template<typename T, typename A>
constexpr bool operator!= (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and returns true if they do not have the same shape or the elements are different.
 
template<typename T, typename A>
constexpr bool operator< (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and returns true for the following cases:
 
template<typename T, typename A>
constexpr bool operator<= (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and effectively returns rhs < lhs or rhs == lhs.
 
template<typename T, typename A>
constexpr bool operator> (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and returns true for the following cases:
 
template<typename T, typename A>
constexpr bool operator>= (const MatrixBuffer< T, A > &lhs, const MatrixBuffer< T, A > &rhs) noexcept
 Compares two MatrixBuffer objects and effectively returns rhs > lhs or rhs == lhs.
 
void to_json (JsonPayload &j, const RepositoryIf::MetaData &e)
 
template<typename T>
bool GetOptionalParam (RepositoryIf &repo, const DataPointPath &path, T &value)
 Get optional datapoint.
 
std::optional< numapp::NumaPolicies > GetNumaPolicies (RepositoryIf &repo, const DataPointPath &path)
 Constructs a NumaPolicies object from the configuration datapoints found under the given datapoint path.
 
template<class Tp>
bool ParseTimepoint (const std::string_view time, Tp &timepoint)
 Parses a string representing a timepoint.
 
std::optional< std::chrono::nanoseconds > ParseDuration (const std::string_view duration)
 Parses a string representing a duration.
 
void to_json (JsonPayload &j, const TimeString &e)
 
void from_json (const JsonPayload &j, TimeString &e)
 
 InfluxTagMap::operator const std::map< std::string, std::string > & () const
 
std::string RetcodeToString (ReturnCode_t retcode)
 
const char * GetTopicName (const DataWriter *writer)
 
const char * GetTopicName (const DataReader *reader)
 
 FASTDDS_SEQUENCE (AgnosticTopicSeq, AgnosticTopic)
 
 FASTDDS_SEQUENCE (SampleInfoSeq, SampleInfo)
 
template<class T>
std::string GetFitsType (const std::optional< size_t > length=FitsColumnFormat< T >::COUNT)
 Get the TFORM value for a type.
 
template<class T, class... Args>
void GetFITSTForm (std::vector< std::string > &input)
 Get a vactor of TFORM strings for a list of types.
 
template<class T, class... Args>
void GetFITSTFormWithLength (std::vector< std::string > &input, const gsl::span< std::optional< size_t >, sizeof...(Args)+1 > sizes)
 Get a vactor of TFORM strings for a list of types using the custom sizes provided.
 
template<class T, class... Args>
void AddRecUnit (RecUnitListType &units, Args &&... args)
 Add a RecordingUnit to the RecordingUnit list of a TelemetryRecorder oder MetadataCollector.
 
template<typename T>
AsSpanT< T > ToSpan (T &data)
 Simple function that converts types that are convertible to spans to a span.
 
void to_json (JsonPayload &j, const AbstractEvent &e)
 
void from_json (const JsonPayload &j, AbstractEvent &e)
 
void to_json (JsonPayload &j, const ComputationEvent &e)
 
void from_json (const JsonPayload &j, ComputationEvent &e)
 
void to_json (JsonPayload &j, const ComputationStartedEvent &e)
 
void from_json (const JsonPayload &j, ComputationStartedEvent &e)
 
void to_json (JsonPayload &j, const ComputationFinishedEvent &e)
 
void from_json (const JsonPayload &j, ComputationFinishedEvent &e)
 
void to_json (JsonPayload &j, const ConfigurationEvent &e)
 
void from_json (const JsonPayload &j, ConfigurationEvent &e)
 
void to_json (JsonPayload &j, const ConfigurationUpdatedEvent &e)
 
void from_json (const JsonPayload &j, ConfigurationUpdatedEvent &e)
 
void to_json (JsonPayload &j, const ConfigurationRetrievedEvent &e)
 
void from_json (const JsonPayload &j, ConfigurationRetrievedEvent &e)
 
void to_json (JsonPayload &j, const HrtcConfigurationScheduledEvent &e)
 
void from_json (const JsonPayload &j, HrtcConfigurationScheduledEvent &e)
 
void to_json (JsonPayload &j, const HrtcConfigurationAppliedEvent &e)
 
void from_json (const JsonPayload &j, HrtcConfigurationAppliedEvent &e)
 
void to_json (JsonPayload &j, const CoordinationEvent &e)
 
void from_json (const JsonPayload &j, CoordinationEvent &e)
 
void to_json (JsonPayload &j, const StateChangedEvent &e)
 
void from_json (const JsonPayload &j, StateChangedEvent &e)
 
void to_json (JsonPayload &j, const HrtcStateChangedEvent &e)
 
void from_json (const JsonPayload &j, HrtcStateChangedEvent &e)
 
void to_json (JsonPayload &j, const AlertStatusEvent &e)
 
void from_json (const JsonPayload &j, AlertStatusEvent &e)
 
template<typename T>
std::string PrettyTypeName ()
 
template<typename EventType>
bool ConvertibleTo (const JsonPayload &j)
 Helper to check if JsonPayload is convertible to a certain EventType.
 
template<typename EventType>
std::optional< EventType > ConvertTo (const JsonPayload &j)
 Helper to convert to certain EventType if possible.
 
void LogConfigure (const std::string &app_name, const std::string &props_file_name)
 Performs custom logging configuration for any application.
 
void LogConfigure (const std::string &app_name, log4cplus::LogLevel default_log_level=log4cplus::INFO_LOG_LEVEL)
 Performs default logging configuration for RTC Component applications.
 
void LogConfigureTool (const std::string &app_name, log4cplus::LogLevel default_log_level=log4cplus::ERROR_LOG_LEVEL, bool log_to_file=false)
 Performs default logging configuration for Client Applications and Standalone Tools.
 
log4cplus::Logger & GetLogger (const std::string &name="app")
 Get handle to a specific logger.
 
void ConfigureLogProperties (log4cplus::LogLevel log_level, const std::string &app_name, const fs::path &logsink_path="")
 
fs::path GetLogsinkPath ()
 
template<typename InputIter, typename T, typename U>
constexpr void GenerateRamp (InputIter begin, InputIter end, T offset, U slope)
 Generates a ramp of values.
 
template<typename InputIter, typename T>
constexpr void GenerateAlternatingRamp (InputIter begin, InputIter end, std::uint32_t sample_id, T offset)
 Generates a ramp of values alternating on the sample ID.
 
template<typename InputIter, typename T, typename U>
constexpr bool ValidRamp (InputIter begin, InputIter end, T offset, U slope)
 Checks to see if the buffer contains a ramp of values.
 
template<typename InputIter, typename T>
constexpr bool ValidAlternatingRamp (InputIter begin, InputIter end, std::uint32_t sample_id, T offset)
 Checks to see if the buffer contains an alternating ramp of values.
 
RTCTK_LOCAL std::string GetMetaDataYamlTag (const std::type_info &type)
 Returns the appropriate YAML tag for a specific metadata type.
 
RTCTK_LOCAL std::string GetRootBaseTypeName (const CiiConfigInstanceNode &node)
 Returns the root base type name for the node.
 
py::module RTCTK_API LoadMatrixBufferPyBinds ()
 Imports the embedded Python module to access supported C++ MatrixBuffer objects.
 
py::module RTCTK_API LoadVectorBufferPyBinds ()
 Imports the embedded Python module to access supported C++ std::vector objects.
 
 PYBIND11_EMBEDDED_MODULE (Import_Matrix_Buffer, mod)
 
 PYBIND11_EMBEDDED_MODULE (Import_Vector_Buffer, mod)
 
std::string AnyToJsonString (const std::any &val)
 
std::any AnyFromJsonString (const std::string &val)
 
template<typename T>
void ToHeaders (RtrClient::Headers &headers, const RepositoryIf::MetaData &md, bool add_builtin_md)
 
void FromHeaders (const RtrClient::Headers &headers, RepositoryIf::MetaData &md)
 
std::vector< InfluxPointParseStateToInfluxPoints (const std::string &component_name, const std::string &states_str, const std::map< std::string, std::string > &base_tags)
 
bool HasBadChars (const std::string &s)
 

Variables

const std::string STD_OK_REPLY = "OK"
 
template<template< typename... > class Base, typename Derived>
constexpr bool is_base_of_template_v = is_base_of_template<Base, Derived>::value
 
template<typename T>
constexpr bool IS_VECTOR_TYPE = IsVectorType<T>::value
 Is true if the type is a std::vector<U> of some type U.
 
template<typename T>
constexpr bool IS_MATRIX_BUFFER_TYPE = IsMatrixBufferType<T>::value
 Is true if the type is a MatrixBuffer<U> of some type U.
 
template<typename T>
constexpr bool IS_SPAN_TYPE = IsSpanType<T>::value
 Is true if the type is a gsl::span<U> of some type U.
 
template<typename T>
constexpr bool IS_MATRIX_SPAN_TYPE = IsMatrixSpanType<T>::value
 Is true if the type is a MatrixSpan<U> of some type U.
 
template<typename T>
constexpr bool IS_STD_ARRAY_TYPE = IsStdArrayType<T>::value
 Is true if the type is a std::array<U> of some type U.
 
template<typename T>
constexpr bool IS_STATIC_SPAN_TYPE = IsStaticSpanType<T>::value
 Is true if the type is a gsl::span type with fixed size.
 
template<typename T>
constexpr bool IS_DYNAMIC_SPAN_TYPE = IsDynamicSpanType<T>::value
 Is true if the type is a gsl::span type with dynamic size.
 
template<typename T>
constexpr bool IS_SUPPORTED_URI_SCHEME_DEFINED = IsSupportedUriSchemeDefined<T>::value
 Is true if the class contains the member SUPPORTED_URI_SCHEME.
 
template<typename T>
constexpr bool IS_ADAPTER_ID_TYPE_DEFINED = IsAdapterIdTypeDefined<T>::value
 Is true if the class contains the type declaration for AdapterIdType.
 
template<typename T>
constexpr bool IS_COMPLEX_TYPE = IsComplexType<T>::value
 Is true if the type is a std::complex<U> of some type U.
 
const std::unordered_map< std::string, const std::type_info & > TYPE_MAP_S2T
 
const std::unordered_map< std::type_index, std::string > TYPE_MAP_T2S
 
std::atomic< RepositorySubscriberIf::SubscriptionIdg_subscription_id_counter
 
template<typename T>
constexpr bool HAS_MEMBER_SAMPLE_ID_UINT32T = HasSampleIdWithCorrectType<T>::value
 
template<typename T>
constexpr bool IS_SPAN_CONVERTIBLE = IsSpanConvertible<T>::value
 Small helper alias for IsSpanConvertible.
 

Typedef Documentation

◆ ActionMethod

using rtctk::componentFramework::ActionMethod = std::function<void(scxml4cpp::Context* c)>

◆ ActivityMethod

using rtctk::componentFramework::ActivityMethod = std::function<void(StopToken f)>

◆ AsSpanT

template<typename T>
using rtctk::componentFramework::AsSpanT = typename AsSpan<T>::TYPE

◆ FailureMethod

using rtctk::componentFramework::FailureMethod = std::function<void(std::exception_ptr)>

◆ FieldValue

using rtctk::componentFramework::FieldValue = std::variant<int64_t, uint64_t, float, double, bool, std::string>

◆ GuardMethod

using rtctk::componentFramework::GuardMethod = std::function<bool(scxml4cpp::Context* c)>

◆ InvalidConfigException

◆ InvalidDataPointException

◆ is_base_of_template

template<template< typename... > class Base, typename Derived>
using rtctk::componentFramework::is_base_of_template = typename is_base_of_template_impl<Base, Derived>::type

◆ JsonPayload

Type requirements:

  • DefaultConstructible
  • CopyAssignable

◆ Lut

◆ MetaData

◆ PathList

◆ RecUnitFactoryType

◆ RecUnitListType

using rtctk::componentFramework::RecUnitListType = std::list<std::unique_ptr<RecordingUnit>>

◆ RejectMethod

using rtctk::componentFramework::RejectMethod = std::function<void(const rad::AnyEvent&, const std::string& state)>

◆ RepositoryServiceException

◆ RtcComponentSuper

◆ StateMethod

using rtctk::componentFramework::StateMethod = std::function<void(const std::string&)>

◆ StopSource

using rtctk::componentFramework::StopSource = rad::StopSource

◆ StopToken

using rtctk::componentFramework::StopToken = rad::StopToken

◆ SuccessMethod

using rtctk::componentFramework::SuccessMethod = std::function<void()>

◆ Timestamp

Enumeration Type Documentation

◆ DataPointRecordingSource

Enumerator
OLDB 
RUNTIMEREPO 

◆ StateType

Enumerator
Machine 
Simple 
Parallel 
Composite 
Initial 
Final 

Function Documentation

◆ AddRecUnit()

template<class T, class... Args>
void rtctk::componentFramework::AddRecUnit ( RecUnitListType & units,
Args &&... args )

Add a RecordingUnit to the RecordingUnit list of a TelemetryRecorder oder MetadataCollector.

Parameters
unitslist of RecordingUnits
argsArguments for the Constructor of that RecordingUnit

◆ AnyFromJsonString()

std::any rtctk::componentFramework::AnyFromJsonString ( const std::string & val)

◆ AnyToJsonString()

std::string rtctk::componentFramework::AnyToJsonString ( const std::any & val)

◆ ConfigureLogProperties()

void rtctk::componentFramework::ConfigureLogProperties ( log4cplus::LogLevel log_level,
const std::string & app_name,
const fs::path & logsink_path = "" )

◆ ConvertibleTo()

template<typename EventType>
bool rtctk::componentFramework::ConvertibleTo ( const JsonPayload & j)

Helper to check if JsonPayload is convertible to a certain EventType.

Parameters
jA JSON object, possibly holding the desired event type.
Returns
true if the object is convertible.

◆ ConvertTo()

template<typename EventType>
std::optional< EventType > rtctk::componentFramework::ConvertTo ( const JsonPayload & j)

Helper to convert to certain EventType if possible.

Parameters
jA JsonPayload object, possibly holding the desired EventType.
Returns
Optional EventType object if conversion was possible, otherwise std::nullopt.

◆ Export()

std::stringstream rtctk::componentFramework::Export ( StateMachine & sm,
const std::string & format )

Export the in-memory state machine model in various formats.

Parameters
smreference to the state machine model.
formatformat as a string, options "scxml", "smcat", "puml", "debug"
Returns
stringstream with the exported model
Exceptions
variousrtctk::componentFramework::RtctkException exceptions

◆ FASTDDS_SEQUENCE() [1/2]

rtctk::componentFramework::FASTDDS_SEQUENCE ( AgnosticTopicSeq ,
AgnosticTopic  )

◆ FASTDDS_SEQUENCE() [2/2]

rtctk::componentFramework::FASTDDS_SEQUENCE ( SampleInfoSeq ,
SampleInfo  )

◆ from_json() [1/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
AbstractEvent & e )

◆ from_json() [2/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
AlertStatusEvent & e )

◆ from_json() [3/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ComputationEvent & e )

◆ from_json() [4/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ComputationFinishedEvent & e )

◆ from_json() [5/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ComputationStartedEvent & e )

◆ from_json() [6/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ConfigurationEvent & e )

◆ from_json() [7/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ConfigurationRetrievedEvent & e )

◆ from_json() [8/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
ConfigurationUpdatedEvent & e )

◆ from_json() [9/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
CoordinationEvent & e )

◆ from_json() [10/15]

RTCTK_API void rtctk::componentFramework::from_json ( const JsonPayload & j,
DataPointPath & v )

◆ from_json() [11/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
HrtcConfigurationAppliedEvent & e )

◆ from_json() [12/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
HrtcConfigurationScheduledEvent & e )

◆ from_json() [13/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
HrtcStateChangedEvent & e )

◆ from_json() [14/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
StateChangedEvent & e )

◆ from_json() [15/15]

void rtctk::componentFramework::from_json ( const JsonPayload & j,
TimeString & e )

◆ FromHeaders()

void rtctk::componentFramework::FromHeaders ( const RtrClient::Headers & headers,
RepositoryIf::MetaData & md )

◆ GenerateAlternatingRamp()

template<typename InputIter, typename T>
void rtctk::componentFramework::GenerateAlternatingRamp ( InputIter begin,
InputIter end,
std::uint32_t sample_id,
T offset )
constexpr

Generates a ramp of values alternating on the sample ID.

This will generate a positive increasing ramp for even sample ID numbers starting with the offset value. A negative decreasing ramp is generated for odd sample ID numbers starting at minus the offset. The difference between consecutive values is always 1 (or 2+2i if dealing with complex numbers).

The following code snippet should help to indicate the type of pattern that is generated:

std::array<float, 6> buffer;
GenerateAlternatingRamp(buffer.begin(), buffer.end(), 100, 1);
assert(( buffer == std::array<float, 6>{1, 2, 3, 4, 5, 6} ));
GenerateAlternatingRamp(buffer.begin(), buffer.end(), 101, 2);
assert(( buffer == std::array<float, 6>{-2, -3, -4, -5, -6, -7} ));
constexpr void GenerateAlternatingRamp(InputIter begin, InputIter end, std::uint32_t sample_id, T offset)
Generates a ramp of values alternating on the sample ID.
Definition patternGeneration.hpp:87

Similarly for complex numbers:

using C = std::complex<float>;
std::array<C, 3> buffer;
GenerateAlternatingRamp(buffer.begin(), buffer.end(), 100, 1);
assert(( buffer == std::array<C, 3>{C(1, 2), C(3, 4), C(5, 6)} ));
GenerateAlternatingRamp(buffer.begin(), buffer.end(), 101, 2);
assert(( buffer == std::array<C, 3>{C(-2, -3), C(-4, -5), C(-6, -7)} ));
See also
ValidAlternatingRamp for the method to check that a buffer contains this test pattern.
Parameters
[in]beginThe iterator pointing to the start of the buffer.
[in]endThe iterator pointing to one element past the end of the buffer.
[in]sample_idThe identifier number of the sample used to choose the ramp's slope.
[in]offsetThe value of the first element written to the buffer.

◆ GenerateRamp()

template<typename InputIter, typename T, typename U>
void rtctk::componentFramework::GenerateRamp ( InputIter begin,
InputIter end,
T offset,
U slope )
constexpr

Generates a ramp of values.

Fills the buffer with an array of values representing the line: y(x) = a + b x
Where a is the offset parameter, b is the slope parameter and x is a positive integer, i.e. 0, 1, 2, ... etc.

See also
ValidRamp for the method to check that a buffer contains this test pattern.
Parameters
[in]beginThe iterator pointing to the start of the buffer.
[in]endThe iterator pointing to one element past the end of the buffer.
[in]offsetThe value of the first element written to the buffer.
[in]slopeThe slope of the line, also interpreted as the delta between elements.

◆ GetFITSTForm()

template<class T, class... Args>
void rtctk::componentFramework::GetFITSTForm ( std::vector< std::string > & input)

Get a vactor of TFORM strings for a list of types.

Parameters
inputvector into which the TFORM values should be written

◆ GetFITSTFormWithLength()

template<class T, class... Args>
void rtctk::componentFramework::GetFITSTFormWithLength ( std::vector< std::string > & input,
const gsl::span< std::optional< size_t >, sizeof...(Args)+1 > sizes )

Get a vactor of TFORM strings for a list of types using the custom sizes provided.

Parameters
inputvector into which the TFORM values should be written
sizesvector into which the TFORM values should be written

◆ GetFitsType()

template<class T>
std::string rtctk::componentFramework::GetFitsType ( const std::optional< size_t > length = FitsColumnFormat<T>::COUNT)

Get the TFORM value for a type.

Supports integers, float, double and std::arrays with these types

◆ GetLogsinkPath()

fs::path rtctk::componentFramework::GetLogsinkPath ( )

◆ GetMetaDataYamlTag()

RTCTK_LOCAL std::string rtctk::componentFramework::GetMetaDataYamlTag ( const std::type_info & type)

Returns the appropriate YAML tag for a specific metadata type.

Parameters
[in]typeThe type of the metadata.
Returns
The YAML tag for the type of an empty string if no match is found.

◆ GetPayloadNothrow()

template<typename EVENT>
std::shared_ptr< typename EVENT::payload_t > rtctk::componentFramework::GetPayloadNothrow ( scxml4cpp::Context * c)

◆ GetRootBaseTypeName()

RTCTK_LOCAL std::string rtctk::componentFramework::GetRootBaseTypeName ( const CiiConfigInstanceNode & node)

Returns the root base type name for the node.

Parameters
[in]nodeThe YAML node corresponding to the datapoint.
Returns
The root base type name or the node's type itself, if it already is the base.

◆ GetTopicName() [1/2]

const char * rtctk::componentFramework::GetTopicName ( const DataReader * reader)

◆ GetTopicName() [2/2]

const char * rtctk::componentFramework::GetTopicName ( const DataWriter * writer)

◆ HasBadChars()

bool rtctk::componentFramework::HasBadChars ( const std::string & s)

◆ InfluxTagMap::operator const std::map< std::string, std::string > &()

rtctk::componentFramework::InfluxTagMap::operator const std::map< std::string, std::string > & ( ) const

◆ InjectReqRepEvent() [1/2]

template<typename EventType>
elt::mal::future< std::string > rtctk::componentFramework::InjectReqRepEvent ( StateMachineEngine & engine)

◆ InjectReqRepEvent() [2/2]

template<typename EventType, typename PayloadType>
elt::mal::future< std::string > rtctk::componentFramework::InjectReqRepEvent ( StateMachineEngine & engine,
PayloadType & payload )

◆ Main()

int rtctk::componentFramework::Main ( int argc,
char * argv[] )

Main function implementation.

Main reason for this is to have the implementation inside a namespace owned by rtctk to avoid name lookup problems.

◆ operator!=()

template<typename T, typename A>
bool rtctk::componentFramework::operator!= ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and returns true if they do not have the same shape or the elements are different.

◆ operator""_dppath()

DataPointPath rtctk::componentFramework::operator""_dppath ( const char * str,
std::size_t len )
inline

◆ operator+()

DataPointPath rtctk::componentFramework::operator+ ( DataPointPath lhs,
const DataPointPath & rhs )
inline
Exceptions
InvalidPathExceptionWhen invalid characters are found. Only a-z,0-9,_,/ are allowed, no duplicate slashes '/', and no triple underscores '_' or trailing underscores.
Parameters
lhsLeft hand side operand.
rhsRight hand side operand.

◆ operator/()

DataPointPath rtctk::componentFramework::operator/ ( DataPointPath lhs,
const DataPointPath & rhs )
inline
Note
: It is checked if current DataPointPath already ends with a separator (slash), or if one to be added (rhs) begins with a slash. In this cases no separator (/) is added in between. If detected that current DataPointPath ends with slash, and added one begins with a slash, one slash is removed.
Parameters
lhsLeft hand side operand.
rhsRight hand side operand.

◆ operator<() [1/4]

bool rtctk::componentFramework::operator< ( const DataPointPath & lhs,
const char * rhs )
inlinenoexcept

◆ operator<() [2/4]

bool rtctk::componentFramework::operator< ( const DataPointPath & lhs,
const DataPointPath & rhs )
inlinenoexcept

◆ operator<() [3/4]

bool rtctk::componentFramework::operator< ( const DataPointPath & lhs,
const std::string & rhs )
inlinenoexcept

◆ operator<() [4/4]

template<typename T, typename A>
bool rtctk::componentFramework::operator< ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and returns true for the following cases:

  • If the lhs matrix has fewer elements.
  • If the number of elements is the same for lhs and rhs, but lhs has fewer rows.
  • If the shape of the matrices is the same and operator< returns true for the first element that is different between lhs and rhs. For any other case we return false.

◆ operator<<()

std::ostream & rtctk::componentFramework::operator<< ( std::ostream & out,
const DataPointPath & rhs )
inline

◆ operator<=() [1/4]

bool rtctk::componentFramework::operator<= ( const DataPointPath & lhs,
const char * rhs )
inlinenoexcept

◆ operator<=() [2/4]

bool rtctk::componentFramework::operator<= ( const DataPointPath & lhs,
const DataPointPath & rhs )
inlinenoexcept

◆ operator<=() [3/4]

bool rtctk::componentFramework::operator<= ( const DataPointPath & lhs,
const std::string & rhs )
inlinenoexcept

◆ operator<=() [4/4]

template<typename T, typename A>
bool rtctk::componentFramework::operator<= ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and effectively returns rhs < lhs or rhs == lhs.

◆ operator==() [1/4]

bool rtctk::componentFramework::operator== ( const DataPointPath & lhs,
const char * rhs )
inlinenoexcept

◆ operator==() [2/4]

bool rtctk::componentFramework::operator== ( const DataPointPath & lhs,
const DataPointPath & rhs )
inlinenoexcept

◆ operator==() [3/4]

bool rtctk::componentFramework::operator== ( const DataPointPath & lhs,
const std::string & rhs )
inlinenoexcept

◆ operator==() [4/4]

template<typename T, typename A>
bool rtctk::componentFramework::operator== ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and returns true if they have the same shape and identical elements.

◆ operator>() [1/4]

bool rtctk::componentFramework::operator> ( const DataPointPath & lhs,
const char * rhs )
inlinenoexcept

◆ operator>() [2/4]

bool rtctk::componentFramework::operator> ( const DataPointPath & lhs,
const DataPointPath & rhs )
inlinenoexcept

◆ operator>() [3/4]

bool rtctk::componentFramework::operator> ( const DataPointPath & lhs,
const std::string & rhs )
inlinenoexcept

◆ operator>() [4/4]

template<typename T, typename A>
bool rtctk::componentFramework::operator> ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and returns true for the following cases:

  • If the lhs matrix has more elements.
  • If the number of elements is the same for lhs and rhs, but lhs has more rows.
  • If the shape of the matrices is the same and operator> returns true for the first element that is different between lhs and rhs. For any other case we return false.

◆ operator>=() [1/4]

bool rtctk::componentFramework::operator>= ( const DataPointPath & lhs,
const char * rhs )
inlinenoexcept

◆ operator>=() [2/4]

bool rtctk::componentFramework::operator>= ( const DataPointPath & lhs,
const DataPointPath & rhs )
inlinenoexcept

◆ operator>=() [3/4]

bool rtctk::componentFramework::operator>= ( const DataPointPath & lhs,
const std::string & rhs )
inlinenoexcept

◆ operator>=() [4/4]

template<typename T, typename A>
bool rtctk::componentFramework::operator>= ( const MatrixBuffer< T, A > & lhs,
const MatrixBuffer< T, A > & rhs )
constexprnoexcept

Compares two MatrixBuffer objects and effectively returns rhs > lhs or rhs == lhs.

◆ operator>>()

std::istream & rtctk::componentFramework::operator>> ( std::istream & input,
DataPointPath & path )

◆ ParseDuration()

std::optional< std::chrono::nanoseconds > rtctk::componentFramework::ParseDuration ( const std::string_view duration)

Parses a string representing a duration.

Supported duration strings include:

  • Standard SI suffixes: "5ms", "1s", "1m", "1h", "1d", "1w", "1y", "1ns", "1us", "1µs"
  • Common abbreviations: "5 min", "1 day", "1 hr", "1 wk", "1 yr"
Parameters
durationThe input string representing the duration.
Returns
optional duration if parsing was successful.

◆ ParseIdToMap()

std::map< std::string, std::string > rtctk::componentFramework::ParseIdToMap ( const std::string & id)

◆ ParseStateToInfluxPoints()

std::vector< InfluxPoint > rtctk::componentFramework::ParseStateToInfluxPoints ( const std::string & component_name,
const std::string & states_str,
const std::map< std::string, std::string > & base_tags )

◆ ParseTimepoint()

template<class Tp>
bool rtctk::componentFramework::ParseTimepoint ( const std::string_view time,
Tp & timepoint )

Parses a string representing a timepoint.

Supported time formats:

  • ISO 8601 combined date and time with timezone: "2024-01-15T12:30:00Z", "2024-01-15T12:30:00.123456+01:30"
  • ISO 8601 combined date and time with timezone: FTTEz, FTT Z ("2024-01-15T12:30:00.123456+01:30" or "2024-01-15T12:30:00.123456 TAI")
  • ISO 8601 combined date and time without timezone: FTT ("2024-01-15T12:30:00")
  • Time without date ("12:45:24.12456-1:00")
  • ISO 8601 date only: F ("2024-01-15")

For all formats including time: seconds, subseconds and timezone are optional

Parameters
timeThe input string representing the time.
timepointThe output parameter where the parsed timepoint will be stored.
Returns
true if the time string was successfully parsed, false otherwise.

◆ PrettyTypeName()

template<typename T>
std::string rtctk::componentFramework::PrettyTypeName ( )

◆ PYBIND11_EMBEDDED_MODULE() [1/2]

rtctk::componentFramework::PYBIND11_EMBEDDED_MODULE ( Import_Matrix_Buffer ,
mod  )

◆ PYBIND11_EMBEDDED_MODULE() [2/2]

rtctk::componentFramework::PYBIND11_EMBEDDED_MODULE ( Import_Vector_Buffer ,
mod  )

◆ ReadDataFromFits() [1/2]

template<>
void rtctk::componentFramework::ReadDataFromFits ( const std::string & filename,
std::any & buffer )

◆ ReadDataFromFits() [2/2]

template<>
void rtctk::componentFramework::ReadDataFromFits ( const std::string & filename,
std::any & buffer )

◆ ReadMatrixFromFits()

template<typename A>
void rtctk::componentFramework::ReadMatrixFromFits ( const std::string & filename,
MatrixBuffer< bool, A > & matrix )

Reads a matrix of boolean values from a FITS image with 8 bits per pixel.

◆ ReadVectorFromFits()

template<typename A>
void rtctk::componentFramework::ReadVectorFromFits ( const std::string & filename,
std::vector< bool, A > & vector )

Read a vector of boolean values from a FITS files containing a 1D image of 8 bit pixels.

◆ ReplaceAll()

std::string rtctk::componentFramework::ReplaceAll ( std::string str,
const std::string & from,
const std::string & to )

◆ RetcodeToString()

std::string rtctk::componentFramework::RetcodeToString ( ReturnCode_t retcode)

◆ to_json() [1/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const AbstractEvent & e )

◆ to_json() [2/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const AlertStatusEvent & e )

◆ to_json() [3/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ComputationEvent & e )

◆ to_json() [4/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ComputationFinishedEvent & e )

◆ to_json() [5/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ComputationStartedEvent & e )

◆ to_json() [6/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ConfigurationEvent & e )

◆ to_json() [7/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ConfigurationRetrievedEvent & e )

◆ to_json() [8/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const ConfigurationUpdatedEvent & e )

◆ to_json() [9/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const CoordinationEvent & e )

◆ to_json() [10/16]

RTCTK_API void rtctk::componentFramework::to_json ( JsonPayload & j,
const DataPointPath & v )

◆ to_json() [11/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const HrtcConfigurationAppliedEvent & e )

◆ to_json() [12/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const HrtcConfigurationScheduledEvent & e )

◆ to_json() [13/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const HrtcStateChangedEvent & e )

◆ to_json() [14/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const RepositoryIf::MetaData & e )

◆ to_json() [15/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const StateChangedEvent & e )

◆ to_json() [16/16]

void rtctk::componentFramework::to_json ( JsonPayload & j,
const TimeString & e )

◆ ToHeaders()

template<typename T>
void rtctk::componentFramework::ToHeaders ( RtrClient::Headers & headers,
const RepositoryIf::MetaData & md,
bool add_builtin_md )

◆ ToSpan()

template<typename T>
AsSpanT< T > rtctk::componentFramework::ToSpan ( T & data)

Simple function that converts types that are convertible to spans to a span.

Parameters
datathe original data which will be pointed to by the span
Returns
span over the original data

◆ ValidAlternatingRamp()

template<typename InputIter, typename T>
bool rtctk::componentFramework::ValidAlternatingRamp ( InputIter begin,
InputIter end,
std::uint32_t sample_id,
T offset )
constexpr

Checks to see if the buffer contains an alternating ramp of values.

This method is used to validate that a buffer contains the test pattern generated by GenerateAlternatingRamp.

See also
GenerateAlternatingRamp for more details about the test pattern.
Parameters
[in]beginThe iterator pointing to the start of the buffer.
[in]endThe iterator pointing to one element past the end of the buffer.
[in]sample_idThe sample ID of the payload stored in the buffer.
[in]offsetThe expected value of the first element in the buffer.
Returns
true of the buffer contains the expected ramp pattern and false otherwise.

◆ ValidRamp()

template<typename InputIter, typename T, typename U>
bool rtctk::componentFramework::ValidRamp ( InputIter begin,
InputIter end,
T offset,
U slope )
constexpr

Checks to see if the buffer contains a ramp of values.

This method is used to validate that a buffer contains the test pattern generated by GenerateRamp.

See also
GenerateRamp for more details about the test pattern.
Parameters
[in]beginThe iterator pointing to the start of the buffer.
[in]endThe iterator pointing to one element past the end of the buffer.
[in]offsetThe expected value of the first element in the buffer.
[in]slopeThe slope of the line, also interpreted as the delta between elements.
Returns
true of the buffer contains the expected ramp pattern and false otherwise.

◆ WriteDataToFits() [1/2]

template<>
void rtctk::componentFramework::WriteDataToFits ( const std::string & filename,
const std::any & buffer )

◆ WriteDataToFits() [2/2]

template<>
void rtctk::componentFramework::WriteDataToFits ( const std::string & filename,
const std::any & buffer )

◆ WriteMatrixToFits()

template<typename A>
void rtctk::componentFramework::WriteMatrixToFits ( const std::string & filename,
const MatrixBuffer< bool, A > & matrix )

Writes a matrix of boolean values as a FITS image with 8 bits per pixel.

◆ WriteVectorToFits()

template<typename A>
void rtctk::componentFramework::WriteVectorToFits ( const std::string & filename,
const std::vector< bool, A > & vector )

Write a vector of boolean values to a FITS file as a 1D image of 8 bit pixels.

Variable Documentation

◆ g_subscription_id_counter

std::atomic<RepositorySubscriberIf::SubscriptionId> rtctk::componentFramework::g_subscription_id_counter

◆ HAS_MEMBER_SAMPLE_ID_UINT32T

template<typename T>
bool rtctk::componentFramework::HAS_MEMBER_SAMPLE_ID_UINT32T = HasSampleIdWithCorrectType<T>::value
inlineconstexpr

◆ is_base_of_template_v

template<template< typename... > class Base, typename Derived>
bool rtctk::componentFramework::is_base_of_template_v = is_base_of_template<Base, Derived>::value
inlineconstexpr

◆ IS_SPAN_CONVERTIBLE

template<typename T>
bool rtctk::componentFramework::IS_SPAN_CONVERTIBLE = IsSpanConvertible<T>::value
inlineconstexpr

Small helper alias for IsSpanConvertible.

◆ STD_OK_REPLY

const std::string rtctk::componentFramework::STD_OK_REPLY = "OK"
inline

◆ TYPE_MAP_S2T

const std::unordered_map<std::string, const std::type_info&> rtctk::componentFramework::TYPE_MAP_S2T

◆ TYPE_MAP_T2S

const std::unordered_map<std::type_index, std::string> rtctk::componentFramework::TYPE_MAP_T2S