libqi-api
2.8.7.4
|
#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 | ) |