RTC Toolkit 4.0.2
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
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  AlertConflictException
 Exception indicating that a metric such as counter or thread conflicts with already known metrics. More...
 
class  AlertDescription
 Uniquely describes an alert. More...
 
class  AlertEventPublisher
 Alert observer that publishes alerts to event service using the typed event AlertStatusEvent. More...
 
class  AlertLogger
 Simple alert observer that writes alerts to log. More...
 
class  AlertService
 Implementation of AlertServiceIf. More...
 
class  AlertServiceIf
 Alert Service interface. More...
 
class  AlertSource
 Models a single alert source that can be set or cleared. More...
 
class  AlertSourceFactoryIf
 Interface to create AlertSource. More...
 
struct  AlertStatusEvent
 Event published when alert status is changed. More...
 
class  AlertStatusObserverIf
 Interface to observe alert status. 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  ComponentMetricsConfigurator
 Configures ComponentMetrics from a runtime repository. More...
 
class  ComponentMetricsIf
 Component metrics interface. More...
 
struct  ComponentMetricsParams
 Dynamic parameters for ComponentMetrics. 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 a configuration data item was retrieved from RTR. More...
 
struct  ConfigurationUpdatedEvent
 Event Type used to signal that a configuration data item was 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  CsvDataRecorder
 Recorder used for writing data to a CSV file. 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  DirCreationError
 
class  DurationMonitor
 Monitors min, mean and max duration and publishes them to OLDB. More...
 
class  DynamicDataPointRecordingUnit
 Recording unit that takes datapoints from RuntimeRepo path "/component_id/dynamic/rec_units/unit_id/datapoint_list" in the format "oldb:..." or "rtr:..." and creates internal DataPointRecordingUnits that record the given paths. More...
 
class  EventPublisherIf
 Interface class for publishing JSON events. 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...
 
class  FileFormatError
 
class  FileOldbAdapter
 A file based OLDB adapter that simulates OLDB with a local YAML file. More...
 
class  FilePersistentRepoAdapter
 Implements a file based Persistent Configuration Repository adapter that can be used for testing. More...
 
class  FileRepository
 Implements a file based repository that stores datapoints in local YAML and FITS files. More...
 
class  FileRuntimeRepoAdapter
 File based implementation of a Runtime Configuration Repository adapter. More...
 
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< IS_DYNAMIC_SPAN_TYPE< T > >::type >
 
struct  FitsColumnFormat< T, typename std::enable_if< IS_MATRIX_BUFFER_TYPE< T > >::type >
 
struct  FitsColumnFormat< T, typename std::enable_if< IS_STATIC_SPAN_TYPE< T > >::type >
 
struct  FitsColumnFormat< T, typename std::enable_if< IS_STD_ARRAY_TYPE< T > >::type >
 
struct  FitsColumnFormat< T, typename std::enable_if< IS_VECTOR_TYPE< T > >::type >
 
struct  FitsColumnFormat< uint16_t >
 
struct  FitsColumnFormat< uint32_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 a configuration data item was applied in HRTC. More...
 
struct  HrtcConfigurationScheduledEvent
 Event Type used to signal that a configuration data item was scheduled to be applied in HRTC. More...
 
struct  HrtcStateChangedEvent
 Event Type used to signal that some entity in HRTC changed its state. 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  InvalidUriInFileError
 
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 > >
 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 > >
 Structure for detecting std::vector types using SFINAE. More...
 
class  JsonEventRecordingUnit
 Recording Unit that can record JSON events. 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
 Provides access to the OLDB to read and write datapoints. More...
 
class  OldbIf
 Base interface for all OLDB adapters. More...
 
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  PathMissingException
 
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
 
struct  RecordingInfo< AlertStatusEvent >
 Trait class that defines how AlertStatusEvent is recorded. More...
 
struct  RecordingInfo< ComputationEvent >
 Trait class that defines how ComputationEvent is recorded. More...
 
struct  RecordingInfo< ComputationFinishedEvent >
 Trait class that defines how ComputationFinishedEvent is recorded. More...
 
struct  RecordingInfo< ComputationStartedEvent >
 Trait class that defines how ComputationStartedEvent is recorded. More...
 
struct  RecordingInfo< ConfigurationEvent >
 Trait class that defines how ConfigurationEvent is recorded. More...
 
struct  RecordingInfo< ConfigurationRetrievedEvent >
 Trait class that defines how ConfigurationRetrievedEvent is recorded. More...
 
struct  RecordingInfo< ConfigurationUpdatedEvent >
 Trait class that defines how ConfigurationUpdatedEvent is recorded. More...
 
struct  RecordingInfo< CoordinationEvent >
 Trait class that defines how CoordinationEvent is recorded. More...
 
struct  RecordingInfo< HrtcConfigurationAppliedEvent >
 Trait class that defines how HrtcConfigurationAppliedEvent is recorded. More...
 
struct  RecordingInfo< HrtcConfigurationScheduledEvent >
 Trait class that defines how HrtcConfigurationScheduledEvent is recorded. More...
 
struct  RecordingInfo< HrtcStateChangedEvent >
 Trait class that defines how HrtcStateChangedEvent is recorded. More...
 
struct  RecordingInfo< StateChangedEvent >
 Trait class that defines how StateChangedEvent is recorded. More...
 
class  RecordingUnit
 Abstract base class for all sources that can be recorded by the MetadataCollector and TelemetryRecorder. 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  RepositorySubscriberIf
 Abstract interface providing subscription facilities for a repository. More...
 
class  RequestAborted
 Thrown if somebody sent a stop or abort command. More...
 
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  Runnable
 Life cycle extension to make RtcComponent Runnable. More...
 
class  RuntimeRepoAdapter
 Implementation of the Runtime Configuration Repository backed by the OLDB. More...
 
class  RuntimeRepoIf
 Base interface for all Runtime Configuration Repository adapters. More...
 
class  ScXmlExport
 
class  ServerAliasCache
 A utility class used to lookup the Server Alias for a given Data Point Path. More...
 
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  ThreadActivity
 Class that handles state machine activities. More...
 
class  ThreadMetricInfo
 Defines auxiliary information associated with each thread registered with ComponentMetricsIf. More...
 
struct  Transition
 
class  TypedEventPublisher
 An event publisher that is aware of event types. More...
 
class  TypedEventRecordingUnit
 Recording Unit that can record typed events. More...
 
class  TypedEventService
 A high-level event service API that is aware of event types. More...
 
class  TypedEventSubscriber
 An event subscriber that is aware of event types. More...
 
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(std::string const &, ServiceContainer &)>
 
using PathList = RepositoryIf::PathList
 
using ReadRequest = RepositoryIf::ReadRequest
 
using WriteRequest = RepositoryIf::WriteRequest
 
using Response = RepositoryIf::Response
 
using RepositoryServiceException = PopulateConfig::RepositoryServiceException
 
using InvalidConfigException = PopulateConfig::InvalidConfigException
 
using InvalidDataPointException = PopulateConfig::InvalidDataPointException
 

Enumerations

enum  StateType {
  Machine , Simple , Parallel , Composite ,
  Initial , Final
}
 
enum class  DataPointRecordingSource { 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, std::string const &format)
 Export the in-memory state machine model in various formats.
 
template<class BL , class BLF >
void RunAsRtcComponent (Args const &args, BLF factory)
 RTC Component runner function, needed to run custom BusinessLogic as RTC Component.
 
template<class BL >
void RunAsRtcComponent (Args const &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::ostream & operator<< (std::ostream &os, AlertServiceIf::AlertStatus const &status)
 
std::istream & operator>> (std::istream &input, DataPointPath &path)
 
void PrintComposedExceptions (std::ostream &os, std::vector< std::exception_ptr > const &exceptions)
 Print composed exception(s) in exception messages to os.
 
void PrintNestedExceptions (std::ostream &os, std::exception const &exception)
 Print nested exception(s) in exception messages to os.
 
void PrintNestedExceptions (std::ostream &os, std::exception_ptr ptr)
 Print nested exception(s) in exception messages to os.
 
DataPointPath operator""_dppath (const char *str, std::size_t len)
 
bool operator== (const DataPointPath &lhs, const char *rhs) noexcept
 
bool operator< (const DataPointPath &lhs, const char *rhs) noexcept
 
bool operator<= (const DataPointPath &lhs, const char *rhs) noexcept
 
bool operator> (const DataPointPath &lhs, const char *rhs) noexcept
 
bool operator>= (const DataPointPath &lhs, const char *rhs) noexcept
 
bool operator== (const DataPointPath &lhs, const std::string &rhs) noexcept
 
bool operator< (const DataPointPath &lhs, const std::string &rhs) noexcept
 
bool operator<= (const DataPointPath &lhs, const std::string &rhs) noexcept
 
bool operator> (const DataPointPath &lhs, const std::string &rhs) noexcept
 
bool operator>= (const DataPointPath &lhs, const std::string &rhs) noexcept
 
bool operator== (const DataPointPath &lhs, const DataPointPath &rhs) noexcept
 
bool operator< (const DataPointPath &lhs, const DataPointPath &rhs) noexcept
 
bool operator<= (const DataPointPath &lhs, const DataPointPath &rhs) noexcept
 
bool operator> (const DataPointPath &lhs, const DataPointPath &rhs) noexcept
 
bool operator>= (const DataPointPath &lhs, const DataPointPath &rhs) noexcept
 
DataPointPath operator+ (DataPointPath lhs, const DataPointPath &rhs)
 
DataPointPath operator/ (DataPointPath lhs, const DataPointPath &rhs)
 
std::ostream & operator<< (std::ostream &out, const DataPointPath &rhs)
 
void to_json (JsonPayload &j, const std::vector< DataPointPath > &v)
 
void from_json (const JsonPayload &j, std::vector< DataPointPath > &v)
 
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 , 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.
 
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.
 
std::string RetcodeToString (ReturnCode_t retcode)
 
const char * GetTopicName (DataWriter *writer)
 
const char * GetTopicName (DataReader *reader)
 
 FASTDDS_SEQUENCE (AgnosticTopicSeq, AgnosticTopic)
 
 FASTDDS_SEQUENCE (SampleInfoSeq, SampleInfo)
 
void * FitsDataRecorderFactory (std::type_index)
 A Recorder factory for the DynamicDataPointRecordingUnit that creates FitsRecorders.
 
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.
 
template<typename T >
std::string PrettyTypeName ()
 
uint64_t GetTimestamp ()
 
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::size_t GetFitsImageSize (const std::string &filename)
 Get the number of pixels in a FITS image.
 
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.
 
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, std::string const &app_name, fs::path const &logsink_path="")
 
fs::path GetLogsinkPath ()
 
bool operator== (ComponentMetricsParams const &lhs, ComponentMetricsParams const &rhs) noexcept
 Equality operator for ComponentMetricsParams.
 
bool operator!= (ComponentMetricsParams const &lhs, ComponentMetricsParams const &rhs) noexcept
 Inequality operator for ComponentMetricsParams.
 
std::ostream & operator<< (std::ostream &os, ComponentMetricsParams const &params)
 Formatter for ComponentMetricsParams.
 
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.
 
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)
 

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.
 
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 = typedef std::function<void(scxml4cpp::Context* c)>

◆ ActivityMethod

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

◆ AsSpanT

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

◆ FailureMethod

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

◆ GuardMethod

using rtctk::componentFramework::GuardMethod = typedef 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 = typedef typename is_base_of_template_impl<Base, Derived>::type

◆ JsonPayload

using rtctk::componentFramework::JsonPayload = typedef nlohmann::json

Type requirements:

  • DefaultConstructible
  • CopyAssignable

◆ PathList

◆ ReadRequest

◆ RecUnitFactoryType

using rtctk::componentFramework::RecUnitFactoryType = typedef std::function<RecUnitListType(std::string const&, ServiceContainer&)>

◆ RecUnitListType

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

◆ RejectMethod

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

◆ RepositoryServiceException

◆ Response

◆ RtcComponentSuper

◆ StateMethod

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

◆ StopSource

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

◆ StopToken

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

◆ SuccessMethod

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

◆ WriteRequest

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

◆ CfitsioDataTypeToString()

std::string rtctk::componentFramework::CfitsioDataTypeToString ( int  datatype)

Returns a string representation of a Cfitsio data type code.

Parameters
[in]datatypeThe Cfitsio data type code that may be used with fits_read_pix or fits_write_pix.
Returns
Cfitsio data type as a string or "Unknown type" if the type code is not recognised.

◆ CfitsioImageTypeToString()

std::string rtctk::componentFramework::CfitsioImageTypeToString ( int  bitpix)

Returns a string representation of a Cfitsio image type code.

Parameters
[in]bitpixThe Cfitsio image type code that may be used with fits_create_img or returned by fits_get_img_equivtype.
Returns
Cfitsio image type as a string or "Unknown type" if the type code is not recognised.

◆ ConfigureLogProperties()

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

◆ Export()

std::stringstream rtctk::componentFramework::Export ( StateMachine sm,
std::string const &  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   
)

◆ FitsDataRecorderFactory()

void * rtctk::componentFramework::FitsDataRecorderFactory ( std::type_index  )

A Recorder factory for the DynamicDataPointRecordingUnit that creates FitsRecorders.

Returns
FitsDataRecorder user is responsible to free it

◆ from_json()

void rtctk::componentFramework::from_json ( const JsonPayload j,
std::vector< DataPointPath > &  v 
)
inline

◆ GenerateAlternatingRamp()

template<typename InputIter , typename T >
constexpr void rtctk::componentFramework::GenerateAlternatingRamp ( InputIter  begin,
InputIter  end,
std::uint32_t  sample_id,
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:88

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 >
constexpr void rtctk::componentFramework::GenerateRamp ( InputIter  begin,
InputIter  end,
offset,
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.

◆ GetCfitsioErrorMsg()

std::string rtctk::componentFramework::GetCfitsioErrorMsg ( int  status)

Helper function to convert a Cfitsio status code to a human readable message.

Parameters
[in]statusThe status code set by a Cfitsio routine.
Returns
An error message corresponding to the Cfitsio status code.

◆ GetFitsImageSize()

std::size_t rtctk::componentFramework::GetFitsImageSize ( const std::string &  filename)

Get the number of pixels in a FITS image.

This method will return the total number pixels in the image stored in the primary HDU of a FITS file.

Parameters
filenameThe name of the FITS file to query.
Returns
The total number of pixels in the image.
Exceptions
RtctkExceptionIf the FITS file could not be read or has the wrong format.

◆ GetFitsImageType()

const std::type_info & rtctk::componentFramework::GetFitsImageType ( const std::string &  filename)

Get the C++ type corresponding to a FITS image.

This method will identify the FITS format of the image in the primary HDU and return the type info object corresponding to the C++ type that should be used with one of the methods: ReadVectorFromFits, WriteVectorToFits, ReadMatrixFromFits or WriteMatrixToFits.

Parameters
filenameThe name of the FITS file to query.
Returns
The corresponding C++ type of the image in the FITS file.
Exceptions
RtctkExceptionIf the FITS file could not be read or has the wrong format.

◆ 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

◆ GetLogger()

log4cplus::Logger & rtctk::componentFramework::GetLogger ( const std::string &  name = "app")

Get handle to a specific logger.

This is used all over the place together with the log4cplus logging macros.

The default logger is retrieved when calling GetLogger() without any further arguments

Instrument RTC developers are supposed to either use:

  • the main application logger e.g. GetLogger(), or Getlogger("app")
  • custom childloggers of the main application logger e.g. GetLogger("app.foobar")

The RTC Toolkit will use a different logger hierarchy, namely:

  • the main rtctk logger e.e. GetLogger("rtctk")
  • specific child loggers of the main rtctk logger e.g. GetLogger("rtctk.foobar")
Parameters
nameoptional: name of the requested logger
Returns
handle to the requested logger

◆ GetLogsinkPath()

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

◆ GetNumaPolicies()

std::optional< numapp::NumaPolicies > rtctk::componentFramework::GetNumaPolicies ( RepositoryIf repo,
const DataPointPath path 
)

Constructs a NumaPolicies object from the configuration datapoints found under the given datapoint path.

Parameters
repoRepository to read from.
pathThe base path under which configuration datapoints for NUMA policies will be searched. The following sub-paths will be searched:
  • cpu_affinity
  • scheduler_policy
  • scheduler_priority
  • memory_policy_mode
  • memory_policy_nodes
Returns
The loaded NUMA policies or std::nullopt if no policies were provided.

Valid values for the scheduler_policy datapoint are:

  • Fifo
  • Rr
  • Other
  • Batch

If either Fifo or Rr are used then the scheduler_priority must be used to set the threads priority. Valid values for scheduler_priority is different depending on scheduler_policy:

  • Fifo and Rr: 1-99
  • Other and Batch: -20 - 19 with 0 being the default. This is also known as the "nice" value.

Valid values for the memory_policy_mode datapoint are:

  • Default
  • Bind
  • Interleave
  • Preferred
Note
Setting only scheduler_priority without scheduler_policy has no effect. scheduler_policy must always be used if scheduler_priority is set in the configuration.
The datapoints for memory_policy_mode and memory_policy_nodes must be provided together.

◆ GetOptionalParam()

template<typename T >
bool rtctk::componentFramework::GetOptionalParam ( RepositoryIf repo,
const DataPointPath path,
T &  value 
)

Get optional datapoint.

Template Parameters
TData point type.
Parameters
repoRepository to read from.
pathData point to read.
[out]valueDestination variable for read datapoint. Will not be modified if datapoint does not exist.
Return values
trueif the datapoint exists and value has been set.
falseotherwise.

◆ GetPayloadNothrow()

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

◆ GetTimestamp()

uint64_t rtctk::componentFramework::GetTimestamp ( )
inline

◆ GetTopicName() [1/2]

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

◆ GetTopicName() [2/2]

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

◆ 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 
)

◆ LoadMatrixBufferPyBinds()

py::module RTCTK_API rtctk::componentFramework::LoadMatrixBufferPyBinds ( )

Imports the embedded Python module to access supported C++ MatrixBuffer objects.

◆ LoadVectorBufferPyBinds()

py::module RTCTK_API rtctk::componentFramework::LoadVectorBufferPyBinds ( )

Imports the embedded Python module to access supported C++ std::vector objects.

◆ LogConfigure() [1/2]

void rtctk::componentFramework::LogConfigure ( const std::string &  app_name,
const std::string &  props_file_name 
)

Performs custom logging configuration for any application.

If a log properties file is given, the system will be configured according to this file. When creating the log properties file, take into account that the RTC Tk code logs to a "rtctk" logger and the RTC application code is supposed to log to an "app" logger. So configure loggers and appenders accordingly in your custom properties file. At a minimum, specify the "root" logger level and an appender for the root logger.

Parameters
app_namecomponent instance name or name of application (if not an RTC component)
props_file_namepathname of log4cplus properties file

◆ LogConfigure() [2/2]

void rtctk::componentFramework::LogConfigure ( const std::string &  app_name,
log4cplus::LogLevel  default_log_level = log4cplus::INFO_LOG_LEVEL 
)

Performs default logging configuration for RTC Component applications.

This method is used on default by RTC Component applications and it configures logging programmatically using RTC Tk default settings.

This means:

  • no custom properties file needs to be provided.
  • root logger logs to ryslog /var/log/elt/elt.log in cii log format, in addition
  • rtctk and app loggers log to file in $RTC_LOGS or $INTROOT/logsink in human readable format
  • rtctk and app loggers log to console in human readable format
Parameters
app_namecomponent instance name or name of application (if not an RTC component)
default_log_leveldefault log level

◆ LogConfigureTool()

void rtctk::componentFramework::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.

This method is used on default by Standalone Tools and Client Applications and it configures logging programmatically using RTC Tk default settings:

This means:

  • no custom properties file needs to be provided.
  • root logger logs to: ryslog in /var/log/elt/elt.log
  • optionally root logger also logs to console and human readable logs in $RTC_LOGS logsink
Parameters
app_namecomponent instance name or name of application (if not an RTC component)
default_log_leveldefault log level
log_to_fileoption to write logs to syslog and human readable log files

◆ 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!=() [1/2]

bool operator!= ( ComponentMetricsParams const &  lhs,
ComponentMetricsParams const &  rhs 
)
noexcept

Inequality operator for ComponentMetricsParams.

Parameters
lhsFirst to parameter to compare
rhsSecond parameter to compare.
Returns
false if all members compare equally true otherwise.

◆ operator!=() [2/2]

template<typename T , typename A >
constexpr 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 >
constexpr 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<<() [1/3]

std::ostream & rtctk::componentFramework::operator<< ( std::ostream &  os,
AlertServiceIf::AlertStatus const &  status 
)

◆ operator<<() [2/3]

std::ostream & operator<< ( std::ostream &  os,
ComponentMetricsParams const &  params 
)

Formatter for ComponentMetricsParams.

Parameters
osoutput stream to format to.
paramsparameter to format.

◆ operator<<() [3/3]

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 >
constexpr 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/5]

bool operator== ( ComponentMetricsParams const &  lhs,
ComponentMetricsParams const &  rhs 
)
noexcept

Equality operator for ComponentMetricsParams.

Parameters
lhsFirst to parameter to compare
rhsSecond parameter to compare.
Returns
true if all members compare equally false otherwise.

◆ operator==() [2/5]

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

◆ operator==() [3/5]

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

◆ operator==() [4/5]

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

◆ operator==() [5/5]

template<typename T , typename A >
constexpr 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 >
constexpr 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 >
constexpr 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 
)

◆ PrettyTypeName()

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

◆ PrintComposedExceptions()

void rtctk::componentFramework::PrintComposedExceptions ( std::ostream &  os,
std::vector< std::exception_ptr > const &  exceptions 
)

Print composed exception(s) in exception messages to os.

It uses a simple form where first line is indented and prefixed as:

  • exception: Message
  • exception: Nested message
  • exception: Even more nested
Parameters
osOutput stream to print to.
exceptionsList of composed exceptions to print.

◆ PrintNestedExceptions() [1/2]

void rtctk::componentFramework::PrintNestedExceptions ( std::ostream &  os,
std::exception const &  exception 
)

Print nested exception(s) in exception messages to os.

It uses a simple form where first line is indented and prefixed as:

exception: Message
  exception: Nested message
    exception: Even more nested
Parameters
osOutput stream to print to.
exceptionException (possibly nested) to print.

◆ PrintNestedExceptions() [2/2]

void rtctk::componentFramework::PrintNestedExceptions ( std::ostream &  os,
std::exception_ptr  ptr 
)

Print nested exception(s) in exception messages to os.

If ptr does not hold an exception this function has no effect.

Parameters
osOutput stream to print to.
ptrException (possibly nested) to print.

◆ 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   
)

◆ ReadMatrixFromFits() [1/2]

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.

◆ ReadMatrixFromFits() [2/2]

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

Reads a FITS file image into a buffer object representing a matrix.

Template Parameters
TThe type of the matrix object. Must be MatrixBuffer or MatrixSpan.
Parameters
[in]filenameName of the FITS file to read from.
[out]matrixThe matrix data object that will be updated with the loaded data.

◆ ReadVectorFromFits() [1/2]

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.

◆ ReadVectorFromFits() [2/2]

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

Reads a FITS file containing a 1D image into a buffer object representing a vector.

Template Parameters
TThe type of the vector object. Must be std::vector or gsl::span.
Parameters
[in]filenameName of the FITS file to read from.
[out]vectorThe vector data object that will be updated with the loaded data.

◆ 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)

◆ RunAsRtcComponent() [1/2]

template<class BL >
void rtctk::componentFramework::RunAsRtcComponent ( Args const &  args)

RTC Component runner function, needed to run custom BusinessLogic as RTC Component.

Template Parameters
BL,typespecification of logic class, must implement BizLogicIf.
Parameters
argsopaque arguments class to be passed on to the RTC Component class.
Exceptions
variousexceptions, which are caught in main

◆ RunAsRtcComponent() [2/2]

template<class BL , class BLF >
void rtctk::componentFramework::RunAsRtcComponent ( Args const &  args,
BLF  factory 
)

RTC Component runner function, needed to run custom BusinessLogic as RTC Component.

This method allows the defintion of a custom business logic factory to cover cases where the Business Logic class is not constructible with default arguments only.

Template Parameters
BL,typespecification of logic class, must implement BizLogicIf.
BLF,typespecification of business logic factory class.
Parameters
argsopaque arguments class to be passed on to the RTC Component class.
factoryfactory class that constructs and returns a BusinessLogic object.
Exceptions
variousexceptions, which are caught in main

◆ to_json()

void rtctk::componentFramework::to_json ( JsonPayload j,
const std::vector< DataPointPath > &  v 
)
inline

◆ 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 >
constexpr bool rtctk::componentFramework::ValidAlternatingRamp ( InputIter  begin,
InputIter  end,
std::uint32_t  sample_id,
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 >
constexpr bool rtctk::componentFramework::ValidRamp ( InputIter  begin,
InputIter  end,
offset,
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.

◆ WrapWithNested()

template<class E >
auto rtctk::componentFramework::WrapWithNested ( E &&  exception)
noexcept

Constructs an unspecified exception that derives from both the provided object and std::nested_exception.

Warning
Although it is akin to a non-throwing version of std::throw_with_nested, if WrapWithNested is invoked without a current exception it shall not be used with std::rethrow_if_nested as it terminates the application if there's no nested exception.

If there is a current exception (std::current_exception() == true) the nested exception will be stored with the returned exception type.

Template Parameters
Eexception type used to deduce the exception type to construct using std::decay<E>.
Parameters
exceptionException used to copy or move-construct the unspecified exception.
Exceptions
Exceptionsthrown by exception copy/move constructor.

◆ WriteMatrixToFits() [1/2]

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.

◆ WriteMatrixToFits() [2/2]

template<typename T >
void rtctk::componentFramework::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 Parameters
TThe type of the matrix object. Must be MatrixBuffer or MatrixSpan.
Parameters
[in]filenameName of the FITS file to create. It will be overwritten if it exists.
[in]matrixThe matrix data to write.
[in]boolean_itemsFlag indicating if the BOOLITEM keyword should be written.

◆ WriteVectorToFits() [1/2]

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.

◆ WriteVectorToFits() [2/2]

template<typename T >
void rtctk::componentFramework::WriteVectorToFits ( const std::string &  filename,
const T &  vector,
bool  boolean_items = false 
)

Writes data as a 1D image to a FITS file.

Template Parameters
TThe type of the vector object. Must be std::vector or gsl::span.
Parameters
[in]filenameName of the FITS file to create. It will be overwritten if it exists.
[in]vectorThe vector data to write.
[in]boolean_itemsFlag indicating if the BOOLITEM keyword should be written.

Variable Documentation

◆ HAS_MEMBER_SAMPLE_ID_UINT32T

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

◆ IS_ADAPTER_ID_TYPE_DEFINED

template<typename T >
constexpr bool rtctk::componentFramework::IS_ADAPTER_ID_TYPE_DEFINED = IsAdapterIdTypeDefined<T>::value
inlineconstexpr

Is true if the class contains the type declaration for AdapterIdType.

◆ is_base_of_template_v

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

◆ IS_COMPLEX_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_COMPLEX_TYPE = IsComplexType<T>::value
inlineconstexpr

Is true if the type is a std::complex<U> of some type U.

◆ IS_DYNAMIC_SPAN_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_DYNAMIC_SPAN_TYPE = IsDynamicSpanType<T>::value
inlineconstexpr

Is true if the type is a gsl::span type with dynamic size.

◆ IS_MATRIX_BUFFER_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_MATRIX_BUFFER_TYPE = IsMatrixBufferType<T>::value
inlineconstexpr

Is true if the type is a MatrixBuffer<U> of some type U.

◆ IS_MATRIX_SPAN_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_MATRIX_SPAN_TYPE = IsMatrixSpanType<T>::value
inlineconstexpr

Is true if the type is a MatrixSpan<U> of some type U.

◆ IS_SPAN_CONVERTIBLE

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

Small helper alias for IsSpanConvertible.

◆ IS_SPAN_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_SPAN_TYPE = IsSpanType<T>::value
inlineconstexpr

Is true if the type is a gsl::span<U> of some type U.

◆ IS_STATIC_SPAN_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_STATIC_SPAN_TYPE = IsStaticSpanType<T>::value
inlineconstexpr

Is true if the type is a gsl::span type with fixed size.

◆ IS_STD_ARRAY_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_STD_ARRAY_TYPE = IsStdArrayType<T>::value
inlineconstexpr

Is true if the type is a std::array<U> of some type U.

◆ IS_SUPPORTED_URI_SCHEME_DEFINED

template<typename T >
constexpr bool rtctk::componentFramework::IS_SUPPORTED_URI_SCHEME_DEFINED = IsSupportedUriSchemeDefined<T>::value
inlineconstexpr

Is true if the class contains the member SUPPORTED_URI_SCHEME.

◆ IS_VECTOR_TYPE

template<typename T >
constexpr bool rtctk::componentFramework::IS_VECTOR_TYPE = IsVectorType<T>::value
inlineconstexpr

Is true if the type is a std::vector<U> of some type U.

◆ STD_OK_REPLY

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