27 #if !LELY_NO_COAPP_MASTER
37 FiberDriverBase::FiberDriverBase(
ev_exec_t* exec_)
38 #if !_WIN32 && _POSIX_MAPPED_FILES
39 : thrd(ev::FiberFlag::SAVE_ERROR | ev::FiberFlag::GUARD_STACK),
41 : thrd(ev::FiberFlag::SAVE_ERROR),
50 : FiberDriverBase(exec ? exec
51 : static_cast<
ev_exec_t*>(master.GetExecutor())),
59 }
catch (const ::std::system_error& e) {
An asynchronous CANopen master.
The base class for drivers for remote CANopen nodes.
SdoFuture< void > AsyncWait(const time_point &t)
Submits an asynchronous wait operation and creates a future which becomes ready once the wait operati...
T Wait(SdoFuture< T > f)
Waits for the specified future to become ready by suspending the calling fiber.
FiberDriver(ev_exec_t *exec, AsyncMaster &master, uint8_t id)
Creates a new CANopen driver and its associated fiber executor.
void USleep(uint_least64_t usec)
Suspends the calling fiber for usec microseconds.
result_type & get()
Returns the result of a ready future.
The exception thrown when retrieving the result of a future which is not ready or does not contain a ...
value_type & value()
Returns a reference to the value if *this contains a value, and throws an exception if *this contains...
This is the internal header file of the C++ CANopen application library.
This header file is part of the C++ CANopen application library; it contains the declarations for the...
const struct ev_exec_vtbl *const ev_exec_t
An abstract task executor.
::std::error_code make_error_code(SdoErrc e) noexcept
Creates an error code corresponding to an SDO abort code.