11#include "dawn/io/common.hxx"
12#include "dawn/porting/config.hxx"
28 typedef void (*virtCB)(
CIOVirt *io,
void *priv);
35 , set_cb_priv(
nullptr)
36 , get_cb_priv(
nullptr)
39#ifdef CONFIG_DAWN_IO_TIMESTAMP
51#ifdef CONFIG_DAWN_OBJECT_HAS_NAME
52 const char *getClassNameStr()
const override
64#ifdef CONFIG_DAWN_IO_NOTIFY
65 int getFd()
const override;
83 return this->noteSupport;
92 int unregNotifier(
const SIONotifier &n);
94 int initialize(
size_t dim,
size_t batch = 1,
bool note =
false);
95 int setCallbackSet(virtCB cb,
void *priv);
96 int setCallbackGet(virtCB cb,
void *priv);
97 int setVal(
const void *v,
size_t d);
98 int getVal(
void *v,
size_t d);
100 using ObjectIdHelper =
119#ifdef CONFIG_DAWN_IO_TIMESTAMP
123#ifdef CONFIG_DAWN_IO_NOTIFY
124 std::vector<SIONotifier> vnote;
128#ifdef CONFIG_DAWN_IO_NOTIFY
129 void sendNotify(io_ddata_t *data);
Descriptor wrapper for individual object configuration.
Template helper for creating ObjectIDs for I/O types.
static SObjectId::ObjectId create(bool ts, uint16_t inst)
Create ObjectID with default data type.
Base class for all I/O objects.
virtual int getFd() const
Get file descriptor for notifications.
Virtual I/O type for user-provided data and callbacks.
bool isBatch() const
Check if IO supports batch operations.
size_t getDataSize() const
Get data size in bytes.
int regNotifier(SIONotifier n)
Register I/O notification callback.
bool isNotify() const
Check if IO supports notifications.
int configure()
Configure object from descriptor data.
int setDataImpl(IODataCmn &data)
Set data implementation (override in derived classes).
int deinit()
De-initialize object.
bool isWrite() const
Check if IO supports write operations.
size_t getDataDim() const
Get data vector dimension.
bool isRead() const
Check if IO supports read operations.
int getDataImpl(IODataCmn &data, size_t len)
Get data implementation (override in derived classes).
int init()
One-time initialize object after bindings are resolved.
size_t getDtypeSize() const
Get size of this object's data type.
Abstract interface for registering asynchronous I/O notification.
Out-of-tree user-extension hooks for Dawn.
Base interface for I/O data buffers (static and dynamic).
EObjectDataType
Data types supported by Dawn framework.
uint32_t ObjectId
ObjectID type - single 32-bit value.