|
libqi-api
2.4.3.28
|
#include <typeinterface.hpp>
Public Member Functions | |
| AnyReferenceVector | values (void *storage) |
| Get all the fields of the structure. More... | |
| virtual std::vector < TypeInterface * > | memberTypes ()=0 |
| virtual std::vector< void * > | get (void *storage) |
| Get all the fields storages of the struct (not a copy) More... | |
| virtual void * | get (void *storage, unsigned int index)=0 |
| Get the field storage at index (not a copy) More... | |
| virtual void | set (void **storage, const std::vector< void * > &) |
| 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)=0 |
| Set the fields of the struct at index (copies the value given) More... | |
| virtual TypeKind | kind () |
| virtual std::vector< std::string > | elementsName () |
| Get the names of the fields of the struct. More... | |
| 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) |
Definition at line 238 of file typeinterface.hpp.
|
inlinevirtual |
Return whether struct accepts field-name-based conversion that drops fieldNames.
Versioning support.
Conversion between non-equivalent structs will be attempted if all fields are named: fields with matching names will be automatically mapped to each other. canDropFields() will be called on the source to ask if fields given as argument can be dropped (because they do not exist on the target).
fillMissingFields(fields, missing) will be called on the target, with a map of fields that were converted, and the list of missing field names. The function must fill fields with a value for each of the missing fields, or return false (no storage is provided, because the struct cant be instanciated without a value for all fields being available.
Definition at line 285 of file typeinterface.hpp.
|
inlinevirtual |
Get the type name of the struct.
Definition at line 263 of file typeinterface.hpp.
|
inlinevirtual |
Get the names of the fields of the struct.
Reimplemented in qi::StructTypeInterfaceBouncer< T, TO >.
Definition at line 261 of file typeinterface.hpp.
|
inlinevirtual |
Fill missing fields caused by conversion from a different struct. Return whether fill succeeded.
Definition at line 287 of file typeinterface.hpp.
|
virtual |
Get all the fields storages of the struct (not a copy)
Reimplemented in qi::StructTypeInterfaceBouncer< T, TO >.
|
pure virtual |
Get the field storage at index (not a copy)
Implemented in qi::TypeImpl< std::pair< F, S > >, and qi::StructTypeInterfaceBouncer< T, TO >.
|
inlinevirtual |
Get the kind of the data.
This is used to downcast the TypeInterface object to a specialized interface.
Reimplemented from qi::TypeInterface.
Definition at line 259 of file typeinterface.hpp.
|
pure virtual |
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().
Implemented in qi::TypeImpl< std::pair< F, S > >, and qi::StructTypeInterfaceBouncer< T, TO >.
|
virtual |
Set all the fields of the struct (copies the values given in the vector)
Reimplemented in qi::StructTypeInterfaceBouncer< T, TO >.
|
pure virtual |
Set the fields of the struct at index (copies the value given)
Implemented in qi::TypeImpl< std::pair< F, S > >, and qi::StructTypeInterfaceBouncer< T, TO >.
| AnyReferenceVector qi::StructTypeInterface::values | ( | void * | storage | ) |
Get all the fields of the structure.