ComponentWithBase< C, BASE, INTERFACE, INTERFACES > Class Template Reference

#include <objectbase.h>

Inheritance diagram for ComponentWithBase< C, BASE, INTERFACE, INTERFACES >:

Public Types

using PrivateSuper = typename ComponentHelper< BASE, INTERFACE, INTERFACES... >::type
 
using Interface = INTERFACE
 
using PrivateInterface = INTERFACE
 
using Ref = typename INTERFACE::Hxx1::ReferenceClass
 
using ComponentClass = C
 
using _Wrapper = typename ComponentWithBase::template Wrapper< maxon::ComponentWrapper< C > >
 
using PrivateSuperMTable = typename ComponentWithBase::template CombinedMTable< maxon::CombinedMTableRoot >
 
using InterfacesBlock = maxon::InterfacesBlock< INTERFACE, INTERFACES... >
 

Public Member Functions

ComponentWithBaseoperator= (const typename std::conditional< STD_IS_REPLACEMENT(copy_assignable, PrivateSuper), ComponentWithBase, DummyParamType >::type &src)
 

Static Public Member Functions

static C * Get (maxon::ObjectInterface *object)
 
static const C * Get (const ObjectInterface *object)
 
static C * GetOrNull (ObjectInterface *object)
 
static const C * GetOrNull (const ObjectInterface *object)
 
template<typename... ARGS>
static Result< typename Ref::NonConst > CreateInit (ARGS &&... args)
 
static Int PrivateGetSelfPtrOffset ()
 
static const Class< typename INTERFACE::Hxx1::ReferenceClass > & GetClass ()
 
static const ComponentDescriptorGetDescriptor ()
 
static Bool PrivateConstructMTable (ClassInfo *info, Int offset, void *supervtable)
 
template<typename CLS >
static Result< CLS > PrivateConstructClass (MAXON_SOURCE_LOCATION_DECLARATION, Id &cid)
 
template<typename T >
static Result< T > PrivateCreateInstance (MAXON_SOURCE_LOCATION_DECLARATION, Id &cid)
 

Public Attributes

union {
   std::conditional< ComponentWithBase::ADAPTER, const ObjectInterface *, typename ComponentWithBase::SelfPtr >::type   self
 
   SelfPtrBase< typename std::conditional< ComponentWithBase::ADAPTER, INTERFACE, ComponentWithBase >::type::template ReferenceFunctions< RefBaseFunctions< DirectRef< INTERFACE, SuperPointerHandler, SuperPtrComponentInfo< C, ComponentWithBase > > > > >   super
 
}; 
 

Member Typedef Documentation

◆ PrivateSuper

using PrivateSuper = typename ComponentHelper<BASE, INTERFACE, INTERFACES...>::type

◆ Interface

using Interface = INTERFACE

◆ PrivateInterface

using PrivateInterface = INTERFACE

◆ Ref

using Ref = typename INTERFACE::Hxx1::ReferenceClass

◆ ComponentClass

using ComponentClass = C

◆ _Wrapper

using _Wrapper = typename ComponentWithBase::template Wrapper<maxon::ComponentWrapper<C> >

◆ PrivateSuperMTable

using PrivateSuperMTable = typename ComponentWithBase::template CombinedMTable<maxon::CombinedMTableRoot>

◆ InterfacesBlock

using InterfacesBlock = maxon::InterfacesBlock<INTERFACE, INTERFACES...>

Member Function Documentation

◆ Get() [1/2]

static C* Get ( maxon::ObjectInterface object)
static

◆ Get() [2/2]

static const C* Get ( const ObjectInterface object)
static

◆ GetOrNull() [1/2]

static C* GetOrNull ( ObjectInterface object)
static

◆ GetOrNull() [2/2]

static const C* GetOrNull ( const ObjectInterface object)
static

◆ CreateInit()

static Result<typename Ref::NonConst> CreateInit ( ARGS &&...  args)
static

◆ operator=()

ComponentWithBase& operator= ( const typename std::conditional< STD_IS_REPLACEMENT(copy_assignable, PrivateSuper), ComponentWithBase< C, BASE, INTERFACE, INTERFACES >, DummyParamType >::type &  src)

◆ PrivateGetSelfPtrOffset()

static Int PrivateGetSelfPtrOffset ( )
static

◆ GetClass()

static const Class<typename INTERFACE::Hxx1::ReferenceClass>& GetClass ( )
static

◆ GetDescriptor()

static const ComponentDescriptor& GetDescriptor ( )
static

◆ PrivateConstructMTable()

static Bool PrivateConstructMTable ( ClassInfo *  info,
Int  offset,
void *  supervtable 
)
static

◆ PrivateConstructClass()

static Result<CLS> PrivateConstructClass ( MAXON_SOURCE_LOCATION_DECLARATION  ,
Id cid 
)
static

◆ PrivateCreateInstance()

static Result<T> PrivateCreateInstance ( MAXON_SOURCE_LOCATION_DECLARATION  ,
Id cid 
)
static

Member Data Documentation

◆ self

std::conditional<ComponentWithBase::ADAPTER, const ObjectInterface*, typename ComponentWithBase::SelfPtr>::type self

◆ super

SelfPtrBase<typename std::conditional<ComponentWithBase::ADAPTER, INTERFACE, ComponentWithBase>::type::template ReferenceFunctions<RefBaseFunctions<DirectRef<INTERFACE, SuperPointerHandler, SuperPtrComponentInfo<C, ComponentWithBase> > > > > super

◆ @1107

union { ... }