|
Sen API
Sen Libraries
|
What can be done while a component is running. More...
#include <component_api.h>
Public Member Functions | |
| RunApi (Kernel &kernel, impl::KernelImpl &kernelImpl, impl::Runner *runner, std::atomic_bool &stopRequested, const VarMap &config, Guarded< TimeStamp > &timePoint) noexcept | |
| ~RunApi () noexcept=default | |
| const std::atomic_bool & | stopRequested () const noexcept |
| True if stop has been requested by the runtime. | |
| void | drainInputs () |
| Perform any request coming from the outside and drainInputs all the local data structures with their most up-to-date value. This method is thread-safe. | |
| void | update () |
| This calls update() on all the objects registered by the component. | |
| void | commit () |
| Send changes, so that they become visible to other participants. This includes object additions and removals, property changes and emitted events that others might have interest in. This method is thread-safe. | |
| FuncResult | execLoop (Duration cycleTime, std::function< void()> &&func=nullptr, bool logOverruns=true) |
| A basic execution loop. Func is an optional callback that will be invoked on each cycle. | |
| TimeStamp | getStartTime () const noexcept |
| The initial simulation time for the objects in the component. | |
| TimeStamp | getTime () const noexcept |
| The (potentially virtualized) time. | |
| std::optional< Duration > | getTargetCycleTime () const noexcept |
| If present, it returns the configured cycle time for iterations. | |
| KernelMonitoringInfo | fetchMonitoringInfo () const |
| Monitoring information. | |
| Span< const ComponentInfo > | getImportedPackages () const noexcept |
| Build information for all imported packages (from pipeline components). The returned span references kernel-owned storage that is stable for the lifetime of the kernel. | |
| Span< const ComponentInfo > | getLoadedComponents () const noexcept |
| Build information for every component loaded into the kernel, excluding pipeline components (which are built from imports and have no individual build identity) and the internal kernel component. The returned span references kernel-owned storage that is stable for the lifetime of the kernel. | |
| std::optional< uint32_t > | getTransportProtocolVersion () const noexcept |
| Version of the currently installed transport protocol. Empty when no transport is installed. Static for the lifetime of the kernel. | |
| Tracer & | getTracer () const noexcept |
| Create a scoped zone used for tracing runtime performance. | |
| const VarMap & | getConfig () const noexcept |
| Gets the configuration associated with this component. | |
| CustomTypeRegistry & | getTypes () noexcept |
| The types registered into the kernel. | |
| void | requestKernelStop (int exitCode=0) |
| Issues an asynchronous request to stop the kernel. The request is ignored if a previous stop request was issued. | |
| std::shared_ptr< ObjectSource > | getSource (const BusAddress &address) |
| Gets an object source, where objects can be found and published. | |
| std::shared_ptr< ObjectSource > | getSource (const std::string &address) |
| Gets an object source, where objects can be found and published. The address parameter must be given as <session-name>.<bus-name>. | |
| SessionsDiscoverer & | getSessionsDiscoverer () noexcept |
| Object that allows discovering sessions and buses. | |
| const ProcessInfo * | fetchOwnerInfo (const Object *object) const noexcept |
| Gets information about the process where an object is. Returns nullptr if the object resides in the current process. | |
| const std::string & | getAppName () const noexcept |
| Gets the (optional) application name passed to the kernel as a configuration parameter. | |
| ::sen::impl::WorkQueue * | getWorkQueue () const noexcept |
| The work queue of this runner. | |
| template<typename T, typename Bus> | |
| std::shared_ptr< Subscription< T > > | selectAllFrom (const Bus &bus) |
| template<typename T, typename Bus> | |
| std::shared_ptr< Subscription< T > > | selectAllFrom (const Bus &bus, typename sen::ObjectList< T >::Callback onAdded, typename sen::ObjectList< T >::Callback onRemoved=nullptr) |
| Overload of selectAllFrom that installs addition and removal callbacks before subscribing, so they fire for objects already present at subscription time. Pass nullptr for either callback to skip it. | |
| template<typename T, typename Bus> | |
| std::shared_ptr< Subscription< T > > | selectFrom (const Bus &bus, const std::string &query, typename sen::ObjectList< T >::Callback onAdded=nullptr, typename sen::ObjectList< T >::Callback onRemoved=nullptr) |
| Creates a subscription for objects matching the given Sen query string. Unlike selectAllFrom, this lets you supply an arbitrary query with WHERE conditions. Example: selectFrom<Shape>(bus, "SELECT Shape FROM local.bus WHERE color IN (\"red\")"). It installs addition and removal callbacks before subscribing. Pass nullptr for either callback to skip it. | |
| std::filesystem::path | getConfigFilePath () const noexcept |
| Gets the path to the configuration file used to construct the kernel. It might be empty if the kernel is programmatically configured. | |
Static Public Member Functions | |
| static std::shared_ptr< spdlog::logger > | getOrCreateLogger (const std::string &loggerName) |
| Registers a new logger in the kernel if it does not exist, or returns the existing one by name. Used to propagate the logger configuration to other packages/components that use it. | |
| static void | applyToAllLoggers (std::function< void(std::shared_ptr< spdlog::logger >)> &&func) |
| Applies the input function to all loggers kept in the logger registry. Used by the logmaster component. | |
Friends | |
| void | impl::remoteProcessDetected (RunApi &api, const ProcessInfo &processInfo) |
| void | impl::remoteProcessLost (RunApi &api, const ProcessInfo &processInfo) |
What can be done while a component is running.
|
noexcept |
|
defaultnoexcept |
|
nodiscardnoexcept |
True if stop has been requested by the runtime.
| void sen::kernel::RunApi::drainInputs | ( | ) |
Perform any request coming from the outside and drainInputs all the local data structures with their most up-to-date value. This method is thread-safe.
| void sen::kernel::RunApi::update | ( | ) |
This calls update() on all the objects registered by the component.
| void sen::kernel::RunApi::commit | ( | ) |
Send changes, so that they become visible to other participants. This includes object additions and removals, property changes and emitted events that others might have interest in. This method is thread-safe.
|
nodiscard |
A basic execution loop. Func is an optional callback that will be invoked on each cycle.
|
nodiscardnoexcept |
The initial simulation time for the objects in the component.
|
nodiscardnoexcept |
The (potentially virtualized) time.
|
nodiscardnoexcept |
If present, it returns the configured cycle time for iterations.
|
nodiscard |
Monitoring information.
|
nodiscardnoexcept |
Build information for all imported packages (from pipeline components). The returned span references kernel-owned storage that is stable for the lifetime of the kernel.
|
nodiscardnoexcept |
Build information for every component loaded into the kernel, excluding pipeline components (which are built from imports and have no individual build identity) and the internal kernel component. The returned span references kernel-owned storage that is stable for the lifetime of the kernel.
|
nodiscardnoexcept |
Version of the currently installed transport protocol. Empty when no transport is installed. Static for the lifetime of the kernel.
|
nodiscardnoexcept |
Create a scoped zone used for tracing runtime performance.
|
nodiscardnoexceptinherited |
Gets the configuration associated with this component.
|
nodiscardnoexceptinherited |
The types registered into the kernel.
|
inherited |
Issues an asynchronous request to stop the kernel. The request is ignored if a previous stop request was issued.
|
nodiscardinherited |
Gets an object source, where objects can be found and published.
|
nodiscardinherited |
Gets an object source, where objects can be found and published. The address parameter must be given as <session-name>.<bus-name>.
|
nodiscardnoexceptinherited |
Object that allows discovering sessions and buses.
|
nodiscardnoexceptinherited |
Gets information about the process where an object is. Returns nullptr if the object resides in the current process.
|
nodiscardnoexceptinherited |
Gets the (optional) application name passed to the kernel as a configuration parameter.
|
nodiscardnoexceptinherited |
The work queue of this runner.
|
inlinenodiscardinherited |
|
inlinenodiscardinherited |
Overload of selectAllFrom that installs addition and removal callbacks before subscribing, so they fire for objects already present at subscription time. Pass nullptr for either callback to skip it.
|
inlinenodiscardinherited |
Creates a subscription for objects matching the given Sen query string. Unlike selectAllFrom, this lets you supply an arbitrary query with WHERE conditions. Example: selectFrom<Shape>(bus, "SELECT Shape FROM local.bus WHERE color IN (\"red\")"). It installs addition and removal callbacks before subscribing. Pass nullptr for either callback to skip it.
|
inlinenodiscardnoexceptinherited |
Gets the path to the configuration file used to construct the kernel. It might be empty if the kernel is programmatically configured.
|
staticnodiscardinherited |
Registers a new logger in the kernel if it does not exist, or returns the existing one by name. Used to propagate the logger configuration to other packages/components that use it.
|
staticinherited |
Applies the input function to all loggers kept in the logger registry. Used by the logmaster component.
|
friend |
|
friend |