|
libqi-api
release-2.5.3-2016-11-18
|
#include <qi/api.hpp>#include <string>#include <boost/function.hpp>#include <qi/signature.hpp>#include <sstream>#include <qi/type/typeinterface.hpp>#include <qi/type/detail/staticobjecttype.hpp>#include <qi/type/detail/accessor.hxx>#include <qi/type/detail/object.hxx>#include <qi/property.hpp>#include <qi/type/detail/objecttypebuilder.hxx>Go to the source code of this file.
Namespaces | |
| qi | |
| Deprecated in 2.5. Use int8_t from <cstdint>. | |
| qi::detail | |
Macros | |
| #define | _QI_TYPE_OBJECTTYPEBUILDER_HPP_ |
| #define | QI_OBJECT_BUILDER_ADVERTISE(builder, cls, name) builder.advertise(BOOST_PP_STRINGIZE(name), &cls::name) |
| #define | QI_OBJECT_BUILDER_ADVERTISE_OVERLOAD(builder, cls, name, ret, args) builder.advertiseMethod(BOOST_PP_STRINGIZE(name), static_cast<ret (cls::*)args>(&cls::name)) |
| #define | __QI_REGISTER_ELEMENT(_, name, field) b.advertise(BOOST_PP_STRINGIZE(field), & name::field); |
| #define | QI_REGISTER_OBJECT(name,...) |
| #define | QI_REGISTER_MT_OBJECT(name,...) |
| #define | QI_REGISTER_IMPLEMENTATION(parent, name) |
| #define | _QI_REGISTER_TEMPLATE_OBJECT(name, model,...) |
| #define | QI_TEMPLATE_OBJECT(name,...) |
| #define | QI_REGISTER_TEMPLATE_OBJECT(name,...) QI_TEMPLATE_OBJECT(name, __VA_ARGS__) |
| #define | QI_MT_TEMPLATE_OBJECT(name,...) |
| #define | ADVERTISE(meth) b.advertiseMethod(#meth, &FutT<T>::meth) |
Functions | |
| QI_TEMPLATE_TYPE_DECLARE (qi::Promise) | |
| #define __QI_REGISTER_ELEMENT | ( | _, | |
| name, | |||
| field | |||
| ) | b.advertise(BOOST_PP_STRINGIZE(field), & name::field); |
Definition at line 174 of file objecttypebuilder.hpp.
| #define _QI_REGISTER_TEMPLATE_OBJECT | ( | name, | |
| model, | |||
| ... | |||
| ) |
Definition at line 227 of file objecttypebuilder.hpp.
| #define _QI_TYPE_OBJECTTYPEBUILDER_HPP_ |
Definition at line 8 of file objecttypebuilder.hpp.
| #define ADVERTISE | ( | meth | ) | b.advertiseMethod(#meth, &FutT<T>::meth) |
| #define QI_MT_TEMPLATE_OBJECT | ( | name, | |
| ... | |||
| ) |
Same as QI_TEMPLATE_OBJECT for multithread objects
Definition at line 271 of file objecttypebuilder.hpp.
| #define QI_OBJECT_BUILDER_ADVERTISE | ( | builder, | |
| cls, | |||
| name | |||
| ) | builder.advertise(BOOST_PP_STRINGIZE(name), &cls::name) |
Advertise a member on a builder.
| builder | The builder on which to advertise |
| cls | The class to register |
| name | The name of the member |
Definition at line 158 of file objecttypebuilder.hpp.
| #define QI_OBJECT_BUILDER_ADVERTISE_OVERLOAD | ( | builder, | |
| cls, | |||
| name, | |||
| ret, | |||
| args | |||
| ) | builder.advertiseMethod(BOOST_PP_STRINGIZE(name), static_cast<ret (cls::*)args>(&cls::name)) |
Advertise an overloaded function on a builder.
| builder | The builder on which to advertise |
| cls | The class to register |
| name | The name of the function |
| ret | The return type |
| args | The arguments as a tuple (ex: (const std::string&)) |
You must use this macro with the exact types of your method with references, pointers, cv-qualifiers (to the arguments and the method).
Definition at line 171 of file objecttypebuilder.hpp.
| #define QI_REGISTER_IMPLEMENTATION | ( | parent, | |
| name | |||
| ) |
Register object name as implementation of parent FIXME: support inheritance with offset. This implementation just bounces to parent's TypeInterfac. If that doesn't fit your need, you can always re-register everything from the interface on your class.
Definition at line 209 of file objecttypebuilder.hpp.
| #define QI_REGISTER_MT_OBJECT | ( | name, | |
| ... | |||
| ) |
Definition at line 193 of file objecttypebuilder.hpp.
| #define QI_REGISTER_OBJECT | ( | name, | |
| ... | |||
| ) |
Register an object to the typesystem
| name | the class name, without any namespace |
| ... | the names of the methods, signals and properties of the class |
Definition at line 184 of file objecttypebuilder.hpp.
| #define QI_REGISTER_TEMPLATE_OBJECT | ( | name, | |
| ... | |||
| ) | QI_TEMPLATE_OBJECT(name, __VA_ARGS__) |
Definition at line 266 of file objecttypebuilder.hpp.
| #define QI_TEMPLATE_OBJECT | ( | name, | |
| ... | |||
| ) |
Register name as a template object type Remaining arguments are the methods, signals and properties of the object. Use QI_TEMPLATE_TYPE_GET() to access the TypeOfTemplate<T> from a Type.
Definition at line 260 of file objecttypebuilder.hpp.
| QI_TEMPLATE_TYPE_DECLARE | ( | qi::Promise | ) |