Dawn Framework 1.0
Universal data acquisition framework for embedded systems
descobject.hxx
1// dawn/include/dawn/common/descobject.hxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#pragma once
7
8#include "dawn/common/objectcfg.hxx"
9#include "dawn/common/objectid.hxx"
10#include "dawn/porting/config.hxx"
11
12namespace dawn
13{
22{
23public:
33 : cfgobj(cfg)
34 , size(SObjectCfg::getSizeBytes(cfgobj))
35 {
36 }
37
46 explicit CDescObject(uint32_t *cfg)
47 : cfgobj(*(reinterpret_cast<SObjectCfg::SObjectCfgData *>(cfg)))
48 , size(SObjectCfg::getSizeBytes(cfgobj))
49 {
50 }
51
54 ~CDescObject() = default;
55
66
76
85 uint16_t getObjectCls() const;
86
95 uint8_t getObjectType() const;
96
105 uint8_t getObjectDtype() const;
106
116
125 size_t getSize() const;
126
136 size_t getSizeBytes() const;
137
148
162 SObjectCfg::SObjectCfgItem *objectCfgItemNext(size_t &offset) const;
163
174
185 uint32_t getAtOffset(size_t offset) const;
186
187private:
191
194 size_t size;
195};
196} // Namespace dawn
Descriptor wrapper for individual object configuration.
size_t getSizeBytes() const
Get total size in bytes for this object definition.
~CDescObject()=default
Destructor.
size_t getSize() const
Get number of configuration items for this object.
CDescObject(SObjectCfg::SObjectCfgData &cfg)
Construct CDescObject from raw descriptor pointer.
CDescObject(uint32_t *cfg)
Construct CDescObject from raw descriptor pointer.
SObjectCfg::SObjectCfgItem * objectCfgItemId(SObjectCfg::ObjectCfgId id) const
Get configuration item with specified ConfigID.
uint8_t getObjectType() const
Get object type field.
SObjectCfg::SObjectCfgItem * objectCfgItemAtOffset(size_t offset) const
Get configuration item at specified offset.
uint32_t getAtOffset(size_t offset) const
Get 32-bit word at specified offset.
SObjectCfg::SObjectCfgItem * objectCfgItemNext(size_t &offset) const
Get config item at current offset and advance past it.
uint16_t getObjectCls() const
Get object class field.
SObjectId::ObjectId getObjectIdV() const
Get object identifier as raw 32-bit value.
uint8_t getObjectDtype() const
Get data type field.
SObjectCfg::SObjectCfgData * getCfg() const
Get underlying descriptor data structure.
SObjectId::UObjectId & getObjectId() const
Get object identifier as union structure.
Configuration management for Dawn objects.
Definition objectcfg.hxx:37
uint32_t ObjectCfgId
ConfigID type - single 32-bit value.
Definition objectcfg.hxx:60
Out-of-tree user-extension hooks for Dawn.
Definition bindable.hxx:13
Object configuration data container.
Single configuration item within object.
uint32_t ObjectId
ObjectID type - single 32-bit value.
Definition objectid.hxx:44
32-bit encoded object identifier (union with bit field).
Definition objectid.hxx:218