PCL
pcl::MetaObject Class Referenceabstract

Root base class for all PixInsight module components. More...

#include <MetaObject.h>

+ Inheritance diagram for pcl::MetaObject:

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
 
MetaObjectoperator= (const MetaObject &)=delete
 
MetaObjectoperator= (MetaObject &&x)=delete
 
const MetaObjectoperator[] (size_type i) const
 
MetaObjectParent ()
 
const MetaObjectParent () const
 

Detailed Description

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.

See also
MetaModule, MetaProcess, MetaParameter, MetaFileFormat

Definition at line 85 of file MetaObject.h.

Member Typedef Documentation

◆ children_list

A container used to implement the list of children module components in MetaObject.

Definition at line 93 of file MetaObject.h.

Constructor & Destructor Documentation

◆ MetaObject() [1/3]

pcl::MetaObject::MetaObject ( MetaObject parent)
inline

Constructs a MetaObject as a child of the specified parent object.

Definition at line 98 of file MetaObject.h.

◆ ~MetaObject()

virtual pcl::MetaObject::~MetaObject ( )
inlinevirtualnoexcept

Virtual destructor. Destroys this MetaObject and all of its children module components.

Definition at line 109 of file MetaObject.h.

◆ MetaObject() [2/3]

pcl::MetaObject::MetaObject ( const MetaObject )
delete

Copy constructor. Copy semantics are disabled for MetaObject because this class represents unique server-side objects.

◆ MetaObject() [3/3]

pcl::MetaObject::MetaObject ( MetaObject &&  x)
delete

Move constructor. Move semantics are disabled for MetaObject because because of parent-child server-side object relations.

Member Function Documentation

◆ Length()

size_type pcl::MetaObject::Length ( ) const
inline

Returns the number of module components that depend on this MetaObject.

Definition at line 141 of file MetaObject.h.

◆ operator=() [1/2]

MetaObject& pcl::MetaObject::operator= ( const MetaObject )
delete

Copy assignment. Copy semantics are disabled for MetaObject because this class represents unique server-side objects.

◆ operator=() [2/2]

MetaObject& pcl::MetaObject::operator= ( MetaObject &&  x)
delete

Move assignment. Move semantics are disabled for MetaObject because because of parent-child server-side object relations.

◆ operator[]()

const MetaObject* pcl::MetaObject::operator[] ( size_type  i) const
inline

Returns a pointer to a MetaObject children module component, selected by its array index i.

Definition at line 166 of file MetaObject.h.

◆ Parent() [1/2]

MetaObject* pcl::MetaObject::Parent ( )
inline

Returns a pointer to the parent MetaObject.

Definition at line 157 of file MetaObject.h.

◆ Parent() [2/2]

const MetaObject* pcl::MetaObject::Parent ( ) const
inline

Returns a pointer to the unmodifiable parent MetaObject.

Definition at line 149 of file MetaObject.h.


The documentation for this class was generated from the following file: