8#include "dawn/common/descriptor.hxx"
9#include "dawn/common/generic_handler.hxx"
10#include "dawn/common/handler.hxx"
11#include "dawn/io/common.hxx"
12#include "dawn/io/factory.hxx"
13#include "dawn/porting/config.hxx"
15#ifdef CONFIG_DAWN_IO_NOTIFY
16# include "dawn/io/notify_manager.hxx"
46 : userFactory(nullptr)
212#ifdef CONFIG_DAWN_IO_NOTIFY
Descriptor wrapper for individual object configuration.
Binary device descriptor manager.
Template handler for object lifecycle management.
bool hasThread() const
Check if any thread is currently running.
int deinitAll()
De-initialize all objects managed by this handler.
Base implementation of IHandler interface.
Base class for all I/O objects.
Built-in I/O object factory for standard I/O types.
Manages I/O object lifecycle and dispatch.
const char * getObjectTypeName() const
Get human-readable object type name for logging.
int deinitAll()
De-initialize all I/O objects.
void onInitObject(CIOCommon *io)
Hook called for each I/O object during initAll().
int startAll()
Start all I/O objects.
CIOHandler()
Construct I/O handler.
CObject * getObject(const SObjectId::ObjectId id)
Get object by ObjectID as CObject*.
~CIOHandler()=default
Destructor.
int stopAll()
Stop all I/O objects.
bool hasThread() const
Check if handler is currently running.
int initAll()
Configure and initialize all I/O objects.
int init(CDescriptor &desc, IIOFactory *f)
Initialize virtual I/O.
CIOCommon * getIO(SObjectId::UObjectId &id) const
Get I/O object by ObjectID as CIOCommon*.
bool isObjectValid(SObjectId::UObjectId &obj) const
Validate object ID.
int bindObjects(IHandler &io, IHandler &prog, IHandler &prot)
Bind special I/O objects (Config, Control, Trigger) to targets.
Manages notifier instances for I/O objects.
Base class for all Dawn objects (IOs, Programs, Protocols).
Common interface for all handler implementations.
Abstract factory interface for extensible I/O object creation.
Out-of-tree user-extension hooks for Dawn.
uint32_t ObjectId
ObjectID type - single 32-bit value.
32-bit encoded object identifier (union with bit field).