libqi-api  2.4.3.28
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | List of all members
qi::StructTypeInterfaceBouncer< T, TO > Class Template Referenceabstract

#include <structtypeinterface.hxx>

Public Types

typedef DefaultTypeImplMethods
< T, TypeByPointerPOD< T > > 
Methods
 

Public Member Functions

StructTypeInterface * bounceType ()
 
virtual void adaptStorage (void **storage, void **adapted)=0
 
virtual std::vector
< TypeInterface * > 
memberTypes ()
 
virtual void * get (void *storage, unsigned int index)
 Get the field storage at index (not a copy) More...
 
virtual std::vector< void * > get (void *storage)
 Get all the fields storages of the struct (not a copy) More...
 
virtual void set (void **storage, const std::vector< void * > &vals)
 Set all the fields of the struct (copies the values given in the vector) More...
 
virtual void set (void **storage, unsigned int index, void *valStorage)
 Set the fields of the struct at index (copies the value given) More...
 
virtual std::vector< std::string > elementsName ()
 Get the names of the fields of the struct. More...
 
virtual bool fillMissingFields (std::map< std::string,::qi::AnyValue > &fields, const std::vector< std::string > &missing)
 
 _QI_BOUNCE_TYPE_METHODS (Methods)
 
- Public Member Functions inherited from qi::StructTypeInterface
AnyReferenceVector values (void *storage)
 Get all the fields of the structure. More...
 
virtual TypeKind kind ()
 
virtual std::string className ()
 Get the type name of the struct. More...
 
virtual bool canDropFields (void *storage, const std::vector< std::string > &fieldNames)
 Return whether struct accepts field-name-based conversion that drops fieldNames. More...
 
virtual bool fillMissingFields (std::map< std::string, AnyValue > &fields, const std::vector< std::string > &missing)
 Fill missing fields caused by conversion from a different struct. Return whether fill succeeded. More...
 
- Public Member Functions inherited from qi::TypeInterface
virtual const TypeInfo & info ()=0
 Get the TypeInfo corresponding to this type. More...
 
virtual void * initializeStorage (void *ptr=0)=0
 
virtual void * ptrFromStorage (void **)=0
 
virtual void * clone (void *)=0
 Allocate a storage and copy the value given as an argument. More...
 
virtual void destroy (void *)=0
 Free all resources of a storage. More...
 
virtual bool less (void *a, void *b)=0
 
const char * infoString ()
 
qi::Signature signature (void *storage=0, bool resolveDynamic=false)
 

Additional Inherited Members

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

Detailed Description

template<typename T, typename TO>
class qi::StructTypeInterfaceBouncer< T, TO >

Definition at line 402 of file structtypeinterface.hxx.

Member Typedef Documentation

template<typename T , typename TO >
typedef DefaultTypeImplMethods<T, TypeByPointerPOD<T> > qi::StructTypeInterfaceBouncer< T, TO >::Methods

Definition at line 415 of file structtypeinterface.hxx.

Member Function Documentation

template<typename T , typename TO >
qi::StructTypeInterfaceBouncer< T, TO >::_QI_BOUNCE_TYPE_METHODS ( Methods  )
template<typename T , typename TO >
virtual void qi::StructTypeInterfaceBouncer< T, TO >::adaptStorage ( void **  storage,
void **  adapted 
)
pure virtual
template<typename T , typename TO >
StructTypeInterface* qi::StructTypeInterfaceBouncer< T, TO >::bounceType ( )
inline

Definition at line 405 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual std::vector<std::string> qi::StructTypeInterfaceBouncer< T, TO >::elementsName ( )
inlinevirtual

Get the names of the fields of the struct.

Reimplemented from qi::StructTypeInterface.

Definition at line 449 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual bool qi::StructTypeInterfaceBouncer< T, TO >::fillMissingFields ( std::map< std::string,::qi::AnyValue > &  fields,
const std::vector< std::string > &  missing 
)
inlinevirtual

Definition at line 454 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual void* qi::StructTypeInterfaceBouncer< T, TO >::get ( void *  storage,
unsigned int  index 
)
inlinevirtual

Get the field storage at index (not a copy)

Implements qi::StructTypeInterface.

Definition at line 421 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual std::vector<void*> qi::StructTypeInterfaceBouncer< T, TO >::get ( void *  storage)
inlinevirtual

Get all the fields storages of the struct (not a copy)

Reimplemented from qi::StructTypeInterface.

Definition at line 428 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual std::vector<TypeInterface*> qi::StructTypeInterfaceBouncer< T, TO >::memberTypes ( )
inlinevirtual

Get all the member types

Note that this function does not recieve a storage argument. There must be one instance of StructTypeInterface per type of struct. If you need dynamic structs, look at makeTupleType().

Implements qi::StructTypeInterface.

Definition at line 416 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual void qi::StructTypeInterfaceBouncer< T, TO >::set ( void **  storage,
const std::vector< void * > &   
)
inlinevirtual

Set all the fields of the struct (copies the values given in the vector)

Reimplemented from qi::StructTypeInterface.

Definition at line 435 of file structtypeinterface.hxx.

template<typename T , typename TO >
virtual void qi::StructTypeInterfaceBouncer< T, TO >::set ( void **  storage,
unsigned int  index,
void *  valStorage 
)
inlinevirtual

Set the fields of the struct at index (copies the value given)

Implements qi::StructTypeInterface.

Definition at line 442 of file structtypeinterface.hxx.


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