|
Dawn Framework 1.0
Universal data acquisition framework for embedded systems
|
Template handler for object lifecycle management. More...
#include <generic_handler.hxx>
Public Member Functions | |
| ~CGenericHandler () | |
| Destructor. | |
| int | configureAll () |
| Configure all objects managed by this handler. | |
| int | deinitAll () |
| De-initialize all objects managed by this handler. | |
| virtual CObject * | getObject (const SObjectId::ObjectId id)=0 |
| Get object from this handler by ID. | |
| T * | getObjectAt (size_t index) const |
| Get object at index. | |
| T * | getObjectById (const SObjectId::UObjectId &id) const |
| Get object by ObjectID. | |
| size_t | getObjectCount () const |
| Get total number of registered objects. | |
| const std::vector< T * > & | getObjects () const |
| Get read-only access to all objects. | |
| bool | hasThread () const |
| Check if any thread is currently running. | |
| int | initAll () |
| Run one-time init() for all configured objects. | |
| virtual bool | isObjectValid (SObjectId::UObjectId &obj) const =0 |
| Validate if object ID is valid for this handler. | |
| int | objalloc (CDescriptor &desc, CDescriptor::allocobj_func_t func) |
| Allocate objects from descriptor. | |
| int | startAll () |
| Start all objects managed by this handler. | |
| int | stopAll () |
| Stop all objects managed by this handler. | |
Protected Member Functions | |
| virtual const char * | getObjectTypeName () const |
| Get object type name for logging. | |
| virtual void | onInitObject (T *obj) |
| Hook for subclass-specific post-object-init handling. | |
| virtual void | onStartObject (T *obj) |
| Hook for subclass-specific pre-start operations. | |
| int | registerObject (T *obj) |
| Register object. | |
Protected Attributes | |
| std::vector< T * > | objects |
| Vector of registered objects. | |
Template handler for object lifecycle management.
Definition at line 23 of file generic_handler.hxx.
|
inline |
Destructor.
Performs stop/delete cleanup only when lifecycle teardown is enabled.
Definition at line 88 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), and dawn::CGenericHandler< T >::objects.
|
inline |
Configure all objects managed by this handler.
Definition at line 114 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), and dawn::CGenericHandler< T >::objects.
|
inlinevirtual |
De-initialize all objects managed by this handler.
Returns OK without cleanup when lifecycle teardown is disabled.
Implements dawn::IHandler.
Reimplemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
Definition at line 171 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), and dawn::CGenericHandler< T >::objects.
|
pure virtualinherited |
Get object from this handler by ID.
Retrieves a specific object by its ID.
| id | Object ID. |
Implemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
|
inline |
Get object at index.
| index | Zero-based index. |
Definition at line 311 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::objects.
|
inline |
Get object by ObjectID.
| id | ObjectID to retrieve. |
Definition at line 323 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::objects.
|
inline |
Get read-only access to all objects.
Definition at line 298 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::objects.
|
inlinevirtual |
Check if any thread is currently running.
Implements dawn::IHandler.
Reimplemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
Definition at line 278 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::objects.
|
inlinevirtual |
Run one-time init() for all configured objects.
Implements dawn::IHandler.
Reimplemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
Definition at line 141 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), dawn::CGenericHandler< T >::objects, and dawn::CGenericHandler< T >::onInitObject().
|
pure virtualinherited |
Validate if object ID is valid for this handler.
Checks whether a given object ID represents a valid object managed by this handler.
| obj | Object ID to validate. |
Implemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
|
inline |
Allocate objects from descriptor.
Generic descriptor allocation using callback pattern.
| desc | Device descriptor containing object definitions. |
| func | Static callback: void func(CHandler& handler, CDescObject&). |
Definition at line 339 of file generic_handler.hxx.
|
inlineprotectedvirtual |
Hook for subclass-specific post-object-init handling.
| obj | Pointer to object that was just initialized. |
Reimplemented in dawn::CIOHandler.
Definition at line 60 of file generic_handler.hxx.
|
inlineprotectedvirtual |
Hook for subclass-specific pre-start operations.
| obj | Pointer to object about to start. |
Definition at line 70 of file generic_handler.hxx.
|
inlineprotected |
Register object.
| obj | Pointer to object to register. |
Definition at line 37 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::objects.
|
inlinevirtual |
Start all objects managed by this handler.
Implements dawn::IHandler.
Reimplemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
Definition at line 216 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), dawn::CGenericHandler< T >::objects, and dawn::CGenericHandler< T >::onStartObject().
|
inlinevirtual |
Stop all objects managed by this handler.
Returns OK without stopping objects when lifecycle teardown is disabled.
Implements dawn::IHandler.
Reimplemented in dawn::CIOHandler, dawn::CProgHandler, and dawn::CProtoHandler.
Definition at line 246 of file generic_handler.hxx.
References dawn::CGenericHandler< T >::getObjectTypeName(), and dawn::CGenericHandler< T >::objects.