FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Public Types | Public Member Functions | List of all members
Fiber::OwnerBase Class Referenceabstract

Base class for objects that are owned by others and owning others. More...

#include <Ownable.hpp>

Inheritance diagram for Fiber::OwnerBase:
Fiber::Ownable< BaseSpace > Fiber::Ownable< BaseSpaceDependency > Fiber::Ownable< CreativeArrayBase, CreativeArrayBaseContainerBase > Fiber::Ownable< Field > Fiber::Ownable< Grid > Fiber::Ownable< Slice > Fiber::Ownable< Domain, ContainerBase > Fiber::Ownable< Domain, ContainerBase >::Container

Public Types

template<class ItemType >
using Item = MemCore::InterfaceData< ItemType >
 An optional convenience class that allows to easily add arbitrary types to Intercubes .
 

Public Member Functions

virtual bool processOwnership (MemCore::Intercube &Output, const MemCore::Intercube &Input) const =0
 Hierarchically broadcast some activity to all Owners.
 
bool processOwnership (MemCore::Intercube &OutputAndInput) const
 Process ownership where the input information is shared with the output information in the same Intercube.
 
virtual void x_updateOwnershipAge (const MemCore::Ageable &)=0
 Update all owners with the given age (Ageable::update() ).
 

Detailed Description

Base class for objects that are owned by others and owning others.

Member Function Documentation

◆ processOwnership()

virtual bool Fiber::OwnerBase::processOwnership ( MemCore::Intercube Output,
const MemCore::Intercube Input 
) const
pure virtual

Hierarchically broadcast some activity to all Owners.

The concrete details of the activities are provided in the respective Intercubes via interfaces added to them. Communication is done via the Input intercube holding some interfaces, and results will be provided in the Output intercube. They may be identical if the caller decides so and this does not cause issues, which depends on the respective operation.

Implemented in Fiber::Ownable< Domain, ContainerBase >, Fiber::Ownable< BaseSpace >, Fiber::Ownable< BaseSpaceDependency >, Fiber::Ownable< CreativeArrayBase, CreativeArrayBaseContainerBase >, Fiber::Ownable< Field >, Fiber::Ownable< Grid >, and Fiber::Ownable< Slice >.

◆ x_updateOwnershipAge()

virtual void Fiber::OwnerBase::x_updateOwnershipAge ( const MemCore::Ageable )
pure virtual

Update all owners with the given age (Ageable::update() ).

Final ownership classes must implement this function and do something with the provided age. Intermediate ownership classes (those that own others) do no need to implement this function, but may do so to intercept the ownership activity.

Implemented in Fiber::Ownable< Domain, ContainerBase >, Fiber::Ownable< BaseSpace >, Fiber::Ownable< BaseSpaceDependency >, Fiber::Ownable< CreativeArrayBase, CreativeArrayBaseContainerBase >, Fiber::Ownable< Field >, Fiber::Ownable< Grid >, and Fiber::Ownable< Slice >.