Main Xronos SDK namespace. More...
Namespaces | |
namespace | operators |
Contains convenience streaming operators that allow printing time points and durations including their units. |
Classes | |
class | BaseReaction |
Base class for implementing reactions. More... | |
class | Element |
Base class for all reactor elements. More... | |
class | Environment |
The entry point for assembling and executing reactor programs. More... | |
class | EnvironmentContext |
Opaque data type used for constructing reactors. More... | |
class | EventSource |
Interface implemented by reactor elements that can be used as triggers of reactions. More... | |
class | EventSource< void > |
Interface implemented by reactor elements that can be used as triggers of reactions. More... | |
class | InputPort |
A reactor element for receiving messages from other reactors. More... | |
class | Metric |
A reactor element for recording metric data to an external data base. More... | |
class | OutputPort |
A reactor element for sending messages to other reactors. More... | |
class | PeriodicTimer |
A reactor element that emits events in regular intervals. More... | |
class | PhysicalEvent |
A reactor element for receiving events from external sources. More... | |
class | PhysicalEvent< void > |
A reactor element for receiving events from external sources. More... | |
class | Port |
Base class for reactor elements that may send or receive messages. More... | |
class | Port< void > |
Base class for reactor elements that may send or receive messages. More... | |
class | ProgrammableTimer |
A reactor element for scheduling new events. More... | |
class | ProgrammableTimer< void > |
A reactor element for scheduling new events. More... | |
class | Reaction |
Reaction base class with reactor access. More... | |
class | ReactionContext |
Opaque data type used for constructing reaction triggers and effects Reaction effect classes.. More... | |
class | ReactionProperties |
Opaque data type used for constructing reactions. More... | |
class | Reactor |
An abstract reactor that can be subclassed to define new reactors. More... | |
class | ReactorContext |
Opaque data type used for constructing Elements. More... | |
class | Shutdown |
A reactor element that emits an event right before the program shuts down. More... | |
class | Startup |
A reactor element that emits an event when the program starts up. More... | |
class | TestEnvironment |
A variant of the environment that is configured for testing. More... | |
class | ValidationError |
Exception that is thrown when a program reaches an invalid state. More... |
Typedefs | |
using | Context = std::variant<EnvironmentContext, ReactorContext> |
Can either hold an EnvironmentContext or a ReactorContext. | |
using | AttributeValue = std::variant<std::string, bool, std::int64_t, double> |
Possible value types for an attribute. | |
using | Duration = std::chrono::nanoseconds |
Data type used to represent durations. | |
using | TimePoint = std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> |
Data type used to represent time points. | |
template<class T> | |
using | MutableValuePtr = detail::MutableValuePtr<T, detail::is_trivial<T>()> |
Smart pointer to a mutable value. | |
template<class T> | |
using | ImmutableValuePtr = detail::ImmutableValuePtr<T, detail::is_trivial<T>()> |
Smart pointer to an immutable value. |
Functions | |
auto | operator<< (std::ostream &os, TimePoint tp) -> std::ostream & |
Write a timepoint to an ostream. | |
auto | operator<< (std::ostream &os, std::chrono::seconds dur) -> std::ostream & |
Write a duration in seconds including the unit to an ostream. | |
auto | operator<< (std::ostream &os, std::chrono::milliseconds dur) -> std::ostream & |
Write a duration in milliseconds including the unit to an ostream. | |
auto | operator<< (std::ostream &os, std::chrono::microseconds dur) -> std::ostream & |
Write a duration in microseconds including the unit to an ostream. | |
auto | operator<< (std::ostream &os, std::chrono::nanoseconds dur) -> std::ostream & |
Write a duration in nanoseconds including the unit to an ostream. | |
template<class T, class... Args> | |
auto | make_immutable_value (Args &&... args) -> ImmutableValuePtr< T > |
Create an instance of ImmutableValuePtr. | |
template<class T, class... Args> | |
auto | make_mutable_value (Args &&... args) -> MutableValuePtr< T > |
Create an instance of MutableValuePtr. |
Main Xronos SDK namespace.
using xronos::sdk::MutableValuePtr = detail::MutableValuePtr<T, detail::is_trivial<T>()> |
Smart pointer to a mutable value.
This behaves similarly to std::unique_ptr<T>. While the value can be modified, there may at most one owner.
using xronos::sdk::ImmutableValuePtr = detail::ImmutableValuePtr<T, detail::is_trivial<T>()> |
Smart pointer to an immutable value.
Ownership may be shared, but none of the owners may modify the value. This behaves similarly to std::shared_ptr<const T>.
auto xronos::sdk::make_immutable_value | ( | Args &&... | args | ) | -> ImmutableValuePtr<T> |
Create an instance of ImmutableValuePtr.
Creates and initializes a new instance of T and returns a new ImmutableValuePtr owning this value. This is analogues to std::make_shared().
T | The type of the value to be created. |
Args | The types of T's constructor arguments. Usually, this does not need to be given explicitly and will be inferred automatically from the given @p args. @param args Arguments to be forwarded to T's constructor. @returns A new immutable value pointer owning an instance of T`. |
auto xronos::sdk::make_mutable_value | ( | Args &&... | args | ) | -> MutableValuePtr<T> |
Create an instance of MutableValuePtr.
Creates and initializes a new instance of T and returns a new MutableValuePtr owning this value. This is analogues to std::make_unique().
T | The type of the value to be created. |
Args | The types of T's constructor arguments. Usually, this does not need to be given explicitly and will be inferred automatically from the given @p args. @param args Arguments to be forwarded to T's constructor. @returns A new mutable value pointer owning an instance of T`. |