libqi-api  release-2.5.3-2016-11-18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Typedefs | Functions
object.hxx File Reference
#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>

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 > >
 

Namespaces

 qi
 Deprecated in 2.5. Use int8_t from <cstdint>.
 
 qi::detail
 

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 , typename U >
ManagedObjectPtr qi::detail::fromSharedPtr (Object< T > &dst, boost::shared_ptr< U > &other, boost::false_type)
 
template<typename U >
ManagedObjectPtr qi::detail::fromSharedPtr (AnyObject &dst, boost::shared_ptr< U > &other, boost::true_type)
 

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 = boost::true_type; \
using ImplType = impl; \
using LocalType = interface##Local<ImplType>; \
using SyncType = interface##LocalSync<LocalType>; \
}; \
} \
}

Definition at line 195 of file object.hxx.