Open Search
    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 PrivateComponentWithBase = ComponentWithBase
     
    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 * GetNonNull (maxon::ObjectInterface *object)
     
    static const C * GetNonNull (const ObjectInterface *object)
     
    static C * GetOrDefault (ObjectInterface *object)
     
    static const C * GetOrDefault (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< RefBaseFn< DirectRef< INTERFACE, SuperPointerHandler, SuperPtrComponentInfo< C, ComponentWithBase > > > > >   super
     
    }; 
     

    Member Typedef Documentation

    ◆ PrivateSuper

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

    ◆ PrivateComponentWithBase

    ◆ 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

    ◆ GetNonNull() [1/2]

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

    ◆ GetNonNull() [2/2]

    static const C* GetNonNull ( const ObjectInterface object)
    static

    ◆ GetOrDefault() [1/2]

    static C* GetOrDefault ( ObjectInterface object)
    static

    ◆ GetOrDefault() [2/2]

    static const C* GetOrDefault ( 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<RefBaseFn<DirectRef<INTERFACE, SuperPointerHandler, SuperPtrComponentInfo<C, ComponentWithBase> > > > > super

    ◆ 

    union { ... }