libqi-api  2.8.7.4
 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.