Lumiera  0.pre.03
»edit your freedom«
Placement< MObject, MObject > Class Template Reference

#include "steam/mobject/placement.hpp"

Description

template<>
class steam::mobject::Placement< MObject, MObject >

this specialisation forms the root of all placements and defines all of Placement's actual functionality.

Definition at line 114 of file placement.hpp.

Public Member Functions

 Placement (Placement const &ref)
 
template<class Y >
void extendOwnershipTo (shared_ptr< Y > &target) const
 extend shared ownership to the given smart-ptr More...
 
template<class Y >
bool isCompatible () const
 run time diagnostics: is the pointee of this placement compatible to the given type?
 
bool isValid () const
 
 operator string () const
 
MObjectoperator-> () const
 smart pointer: accessing the MObject, which is subject to placement. More...
 
virtual ExplicitPlacement resolve () const
 combine and resolve all constraints defined by the various LocatingPin ( More...
 
size_t use_count () const
 
- Public Member Functions inherited from HashIndexed< BA, IMP >
void assignID (HashIndexed const &ref)
 
ID const & getID () const
 
template<typename T >
Id< T > const & recastID () const
 redefining of the specific type info of the Id is allowed, as all share the same implementation
 

Public Attributes

session::LocatingPin chain
 interface for defining the kind of placement to employ, and for controlling any additional constraints and properties.
 

Friends

bool isSharedPointee (Placement const &p1, Placement const &p2)
 free function to detect two placements sharing a pointee
 
class session::MObjectFactory
 

Protected Types

typedef shared_ptr< MObject_SmartPtr
 
typedef void(* Deleter) (MObject *)
 
typedef HashIndexed< Placement< MObject >, lib::hash::LuidHHashInd
 
typedef asset::shared_ptr< asset::PipePipe
 
typedef lib::time::Time Time
 

Protected Member Functions

 Placement (MObject &subject, Deleter killer)
 
- Protected Member Functions inherited from HashIndexed< BA, IMP >
 HashIndexed (IMP const &iref)
 
void assignID (HashIndexed const &ref)
 
ID const & getID () const
 
template<typename T >
Id< T > const & recastID () const
 redefining of the specific type info of the Id is allowed, as all share the same implementation
 

Member Function Documentation

◆ operator->()

MObject* operator-> ( ) const
inline

smart pointer: accessing the MObject, which is subject to placement.

Note
we don't provide operator*

Definition at line 133 of file placement.hpp.

◆ extendOwnershipTo()

void extendOwnershipTo ( shared_ptr< Y > &  target) const
inline

extend shared ownership to the given smart-ptr

Note
never throws

Definition at line 154 of file placement.hpp.

◆ resolve()

virtual ExplicitPlacement resolve ( ) const
virtual

combine and resolve all constraints defined by the various LocatingPin (

See also
chain) and provide the resulting (explicit) placement.
+ Inheritance diagram for Placement< MObject, MObject >:
+ Collaboration diagram for Placement< MObject, MObject >:

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