- Aldebaran documentation |
- C++ Libraries |
- index

libqi-api 2.8.7.4

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Typedefs | Functions
object.hxx File Reference
`#include <functional>`
`#include <boost/mpl/if.hpp>`
`#include <qi/future.hpp>`
`#include <qi/type/typeinterface.hpp>`
`#include <qi/type/typeobject.hpp>`
`#include <qi/type/detail/typeimpl.hxx>`
`#include <qi/type/detail/genericobject.hpp>`
`#include <qi/type/metasignal.hpp>`
`#include <qi/type/metamethod.hpp>`
`#include <qi/type/metaobject.hpp>`
`#include <qi/objectuid.hpp>`
`#include <type_traits>`

Go to the source code of this file.

## Classes
class | qi::Empty
struct | qi::detail::ForceProxyInclusion< T >
class | qi::detail::GenericObjectBounce< O >
struct | qi::detail::InterfaceImplTraits< T >
class | qi::Object< T >
class | qi::WeakObject< T >
class | qi::TypeImpl< Object< T > >
struct | std::hash< qi::Object< T > >
| The hash of an object is the hash of its ObjectUid. More...

## Namespaces
| qi
| Deprecated in 2.5. Use int8_t from <cstdint>.
| qi::detail
| std

## Macros
#define | _QI_TYPE_DETAIL_OBJECT_HXX_
#define | QI_REGISTER_IMPLEMENTATION_H(interface, impl)

## Typedefs
using | qi::detail::ProxyGeneratorMap = std::map< TypeInfo, boost::function< AnyReference(AnyObject)>>
using | qi::AnyWeakObject = WeakObject< Empty >

## Functions
ProxyGeneratorMap & | qi::detail::proxyGeneratorMap ()
template<typename T , typename... Args>
boost::enable_if< typename detail::InterfaceImplTraits< T > ::Defined, qi::Object< T > >::type | qi::constructObject (Args...args)
template<typename T , typename... Args>
boost::disable_if< typename detail::InterfaceImplTraits< T > ::Defined, qi::Object< T > >::type | qi::constructObject (Args &&...args)
template<typename T >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (ObjectTypeInterface *oit, boost::shared_ptr< T > other, const boost::optional< ObjectUid > &maybeUid=boost::none)
template<typename From >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (Object< Empty > &, boost::shared_ptr< From > &other, std::true_type)
template<typename From >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (Object< Empty > &, boost::shared_ptr< From > &other, std::false_type)
template<typename ToSameAsFrom >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (Object< ToSameAsFrom > &dst, boost::shared_ptr< ToSameAsFrom > &other, std::false_type)
template<typename To , typename From >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (Object< To > &dst, boost::shared_ptr< From > &other, std::false_type)
template<typename To , typename From >
ManagedObjectPtr | qi::detail::managedObjectFromSharedPtr (Object< To > &, boost::shared_ptr< From > &other, std::true_type)
template<typename T , typename U >
bool | qi::operator== (const Object< T > &a, const Object< U > &b)
template<typename T , typename U >
bool | qi::operator!= (const Object< T > &a, const Object< U > &b)
template<typename T >
bool | qi::operator< (const Object< T > &a, const Object< T > &b)

## Macro Definition Documentation

#define _QI_TYPE_DETAIL_OBJECT_HXX_

Definition at line 8 of file object.hxx.

#define QI_REGISTER_IMPLEMENTATION_H | ( |  | interface,
|  |  | impl
| ) |  |

Value:
namespace qi\
{\
namespace detail\
{\
template <>\
struct InterfaceImplTraits<interface>\
{\
using Defined = std::true_type;\
using InterfaceType = interface;\
using ImplType = impl;\
using AsyncType = interface##LocalAsync<boost::shared_ptr<ImplType>>;\
using SyncType = interface##LocalSync<boost::shared_ptr<ImplType>>;\
};\
\
template<>\
struct InterfaceImplTraits<impl>:\
public InterfaceImplTraits<interface>\
{};\
}\
}

Definition at line 211 of file object.hxx.