PCL
|
Root base class for all PixInsight module components. More...
#include <MetaObject.h>
Public Types | |
using | children_list = IndirectArray< MetaObject > |
Public Member Functions | |
MetaObject (const MetaObject &)=delete | |
MetaObject (MetaObject &&x)=delete | |
MetaObject (MetaObject *parent) | |
virtual | ~MetaObject () noexcept(false) |
size_type | Length () const |
MetaObject & | operator= (const MetaObject &)=delete |
MetaObject & | operator= (MetaObject &&x)=delete |
const MetaObject * | operator[] (size_type i) const |
MetaObject * | Parent () |
const MetaObject * | Parent () const |
In PCL, a metaobject is a special class describing in formal terms the functionality and properties of a component in a PixInsight module.
The MetaObject class provides basic functionality to implement the existing hierarchical relationships between a module and all of its components. A MetaObject contains a list of MetaObject instances, which generates a tree structure based on parent-children container relations. This structural layout has been used in PCL to automatize communication between the core PixInsight application, modules, and all module components.
Definition at line 85 of file MetaObject.h.
A container used to implement the list of children module components in MetaObject.
Definition at line 93 of file MetaObject.h.
|
inline |
Constructs a MetaObject as a child of the specified parent object.
Definition at line 98 of file MetaObject.h.
|
inlinevirtualnoexcept |
Virtual destructor. Destroys this MetaObject and all of its children module components.
Definition at line 109 of file MetaObject.h.
|
delete |
Copy constructor. Copy semantics are disabled for MetaObject because this class represents unique server-side objects.
|
delete |
Move constructor. Move semantics are disabled for MetaObject because because of parent-child server-side object relations.
|
inline |
Returns the number of module components that depend on this MetaObject.
Definition at line 141 of file MetaObject.h.
|
delete |
Copy assignment. Copy semantics are disabled for MetaObject because this class represents unique server-side objects.
|
delete |
Move assignment. Move semantics are disabled for MetaObject because because of parent-child server-side object relations.
|
inline |
Returns a pointer to a MetaObject children module component, selected by its array index i.
Definition at line 166 of file MetaObject.h.
|
inline |
Returns a pointer to the parent MetaObject.
Definition at line 157 of file MetaObject.h.
|
inline |
Returns a pointer to the unmodifiable parent MetaObject.
Definition at line 149 of file MetaObject.h.