libqi-api  2.8.7.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | List of all members
qi::DefaultTypeImpl< T, _Access > Class Template Reference

#include <typeimpl.hxx>

Public Types

using MethodsImpl = DefaultTypeImplMethods< T, _Access >
 

Public Member Functions

const ::qi::TypeInfoinfo () override
 Get the TypeInfo corresponding to this type. More...
 
void * initializeStorage (void *ptr=0) override
 
void * ptrFromStorage (void **s) override
 
bool less (void *a, void *b) override
 
void * clone (void *ptr) override
 Allocate a storage and copy the value given as an argument. More...
 
void destroy (void *ptr) override
 Free all resources of a storage. More...
 
- Public Member Functions inherited from qi::TypeInterface
virtual ~TypeInterface ()=default
 
virtual TypeKind kind ()
 
const char * infoString ()
 
qi::Signature signature (void *storage=nullptr, bool resolveDynamic=false)
 

Additional Inherited Members

- Static Public Member Functions inherited from qi::TypeInterface
static TypeInterfacefromSignature (const qi::Signature &sig)
 

Detailed Description

template<typename T, typename _Access = TypeByPointer<T>>
class qi::DefaultTypeImpl< T, _Access >

Definition at line 287 of file typeimpl.hxx.

Member Typedef Documentation

template<typename T, typename _Access = TypeByPointer<T>>
using qi::DefaultTypeImpl< T, _Access >::MethodsImpl = DefaultTypeImplMethods<T, _Access>

Definition at line 291 of file typeimpl.hxx.

Member Function Documentation

template<typename T, typename _Access = TypeByPointer<T>>
void* qi::DefaultTypeImpl< T, _Access >::clone ( void *  )
inlineoverridevirtual

Allocate a storage and copy the value given as an argument.

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.

template<typename T, typename _Access = TypeByPointer<T>>
void qi::DefaultTypeImpl< T, _Access >::destroy ( void *  )
inlineoverridevirtual

Free all resources of a storage.

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.

template<typename T, typename _Access = TypeByPointer<T>>
const ::qi::TypeInfo& qi::DefaultTypeImpl< T, _Access >::info ( )
inlineoverridevirtual

Get the TypeInfo corresponding to this type.

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.

template<typename T, typename _Access = TypeByPointer<T>>
void* qi::DefaultTypeImpl< T, _Access >::initializeStorage ( void *  ptr = 0)
inlineoverridevirtual

Initialize and return a new storage, from nothing or a T*.

If ptr is not null, it should be used as a storage (the method can usually just return ptr in that case).

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.

template<typename T, typename _Access = TypeByPointer<T>>
bool qi::DefaultTypeImpl< T, _Access >::less ( void *  a,
void *  b 
)
inlineoverridevirtual

Return true if a is less than b

Less must always work: compare pointers if you have to.

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.

template<typename T, typename _Access = TypeByPointer<T>>
void* qi::DefaultTypeImpl< T, _Access >::ptrFromStorage ( void **  )
inlineoverridevirtual

Get pointer to type from pointer to storage.

This allows for storing an integer value (for instance) directily into the pointer and avoid an allocation.

This method should be called on storage before casting it to a specific type.

Implements qi::TypeInterface.

Definition at line 292 of file typeimpl.hxx.


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