10#ifndef NROS_CPP_EXECUTOR_HPP
11#define NROS_CPP_EXECUTOR_HPP
17#include "nros/nros_cpp_config_generated.h"
19#include "nros_cpp_ffi.h"
65 return create(
out, locator, domain_id,
"nros_cpp");
82 out.initialized_ =
true;
158 bool ok()
const {
return initialized_; }
172 initialized_ =
false;
180 initialized_ =
false;
186 for (
unsigned i = 0;
i <
sizeof(storage_); ++
i) {
187 storage_[
i] =
other.storage_[
i];
190 other.initialized_ =
false;
194 if (
this != &
other) {
198 for (
unsigned i = 0;
i <
sizeof(storage_); ++
i) {
199 storage_[
i] =
other.storage_[
i];
202 initialized_ =
other.initialized_;
203 other.initialized_ =
false;
Definition executor.hpp:50
Executor()
Default constructor — creates an uninitialized executor.
Definition executor.hpp:53
Result ping(int32_t timeout_ms)
Definition executor.hpp:127
NodeBuilder node_builder(const char *name)
Definition node.hpp:847
Executor & operator=(Executor &&other)
Definition executor.hpp:193
~Executor()
Destructor — shuts down if still active.
Definition executor.hpp:177
static Result create(Executor &out, const char *locator=nullptr, uint8_t domain_id=0)
Definition executor.hpp:64
bool ok() const
Check if the executor is initialized.
Definition executor.hpp:158
void * handle()
Definition executor.hpp:166
Result shutdown()
Shut down the executor and close the middleware connection.
Definition executor.hpp:169
Result spin_once(int32_t timeout_ms=10)
Definition executor.hpp:111
static Result create(Executor &out, const char *locator, uint8_t domain_id, const char *session_name)
Definition executor.hpp:74
Result spin(uint32_t duration_ms, int32_t poll_ms=10)
Definition executor.hpp:139
Executor(Executor &&other)
Definition executor.hpp:185
Result create_node(Node &out, const char *name, const char *ns=nullptr)
Definition node.hpp:748
static constexpr Result success()
Named constructors.
Definition result.hpp:74
int nros_cpp_ret_t
Definition future.hpp:20
nros_cpp_ret_t nros_cpp_spin_once(void *handle, int32_t timeout_ms)
uint64_t nros_cpp_time_ns(void)
nros::Result, nros::ErrorCode, and the NROS_TRY macro.