7 #ifndef _QI_TYPE_DYNAMICOBJECTBUILDER_HPP_
8 #define _QI_TYPE_DYNAMICOBJECTBUILDER_HPP_
10 #include <boost/noncopyable.hpp>
17 class DynamicObjectBuilderPrivate;
27 template <
typename OBJECT_TYPE,
typename METHOD_TYPE>
28 inline unsigned int advertiseMethod(
const std::string&
name,
31 const std::string& desc =
"",
35 template <
typename FUNCTION_TYPE>
36 inline unsigned int advertiseMethod(
const std::string& name,
37 FUNCTION_TYPE
function,
38 const std::string& desc =
"",
42 template <
typename OBJECT_TYPE,
typename METHOD_TYPE>
49 template <
typename FUNCTION_TYPE>
51 FUNCTION_TYPE
function,
57 template<
typename T,
typename... Args>
60 qi::Object<T>(*constructor)(Args...) = [](Args... args) {
return constructObject<T>(args...); };
61 return advertiseMethod(name, constructor);
64 template <
typename... Args>
65 unsigned int advertiseSignal(
const std::string& name);
69 unsigned int advertiseSignalF(
const std::string& name);
71 unsigned int advertiseSignal(
const std::string &name,
qi::SignalBase *signal);
74 unsigned int advertiseProperty(
const std::string& name);
76 unsigned int advertiseProperty(
const std::string &name,
qi::PropertyBase *sig);
80 unsigned int xAdvertiseMethod(
const Signature &sigret,
81 const std::string &name,
89 unsigned int xAdvertiseSignal(
const std::string &name,
const Signature &signature,
bool isSignalProperty =
false);
90 unsigned int xAdvertiseProperty(
const std::string& name,
const Signature& sig,
int id=-1);
91 void setDescription(
const std::string& desc);
94 template<
typename T>
qi::AnyObject object(boost::shared_ptr<T> other);
95 void markProperty(
unsigned int ev,
unsigned int getter,
unsigned int setter);
99 DynamicObjectBuilderPrivate *_p;
105 #endif // _QITYPE_DYNAMICOBJECTBUILDER_HPP_
unsigned int advertiseFactory(const std::string &name)
Honor the default behavior.
ObjectThreadingModel
Possible thread models for an object.