Caffa  1.1.0
C++ Application Framework for Embedded Systems with introspection
cafChildArrayFieldHandle.h
1 #pragma once
2 
3 #include "cafChildFieldHandle.h"
4 
5 #include <memory>
6 
7 namespace caffa
8 {
9 class ChildArrayFieldAccessor;
10 class ObjectHandle;
11 
18 {
19 public:
21  ~ChildArrayFieldHandle() override {}
22 
28  virtual size_t size() const = 0;
35  bool empty() const { return this->size() == 0u; }
36 
40  virtual void clear() = 0;
41 
47  virtual void erase( size_t index ) = 0;
48 
55  virtual ObjectHandle::Ptr at( size_t index ) = 0;
56 
63  virtual void insertAt( size_t index, ObjectHandle::Ptr obj ) = 0;
64 
70  virtual void push_back_obj( ObjectHandle::Ptr obj ) = 0;
71 
77  virtual void setAccessor( std::unique_ptr<ChildArrayFieldAccessor> accessor ) = 0;
78 };
79 
80 } // namespace caffa
A non-templated base interface for ChildArrayField<DataType*> Used so we can have pointers to any Chi...
Definition: cafChildArrayFieldHandle.h:18
virtual void erase(size_t index)=0
Erase a particular child object by index.
virtual void clear()=0
Clear all content.
virtual void setAccessor(std::unique_ptr< ChildArrayFieldAccessor > accessor)=0
Set a new accessor.
virtual ObjectHandle::Ptr at(size_t index)=0
Get a raw pointer to the object at a particular index.
bool empty() const
Check if the child array field is empty.
Definition: cafChildArrayFieldHandle.h:35
virtual void push_back_obj(ObjectHandle::Ptr obj)=0
push back and object taking over ownership.
virtual size_t size() const =0
Get the number of child objects.
virtual void insertAt(size_t index, ObjectHandle::Ptr obj)=0
Insert an object at a particular index. Ownership will be taken.
Definition: cafChildFieldHandle.h:35
Main Caffa namespace.
Definition: __init__.py:1