51 return *props()->ptr<ObjectProps>(); } \
52 typedef uLib::mpl::bool_<true>::type propable_trait; \
64 if(props(this)) return; \
76 namespace serialization {
89 BOOST_MPL_HAS_XXX_TRAIT_DEF(propable_trait)
93 struct IsA : has_propable_trait<T> {};
98 typedef typename T::ObjectProps
type;
101 template <
typename T>
111 typedef typename mpl::transform_view< FilteredCFTypeList, props_type<mpl::_> >
::type type;
130 template <
typename T1,
typename T2>
132 return reinterpret_cast<char*
>(derived) - reinterpret_cast<char*>(base);
137 template <
class _ObjectT>
142 o->T::init_properties();
163 typename boost::enable_if<mpl::not_<IsA<T> >,
void>::type
174 typename boost::enable_if<IsA<T>,
void>::type
176 o->init_properties();
181 template <
class ThisClass,
class Archive>
191 boost::algorithm::replace_all(name,
"::",
"_");
192 m_ar & boost::serialization::make_nvp(
194 boost::serialization::base_object<PType>(
m_object));
210 template <
class T>
inline T *
ptr() {
return dynamic_cast<T*
>(
this); }
212 template<
class ArchiveT>
void serialize(ArchiveT &ar,
const unsigned int version) {}
227 template<
class ArchiveT>
void serialize(ArchiveT &ar,
const unsigned int version) {
228 boost::serialization::void_cast_register<ThisClass,ObjectPropsBase>();
245 template <
class T>
inline typename T::ObjectProps&
props_ref()
const {
if(m_props)
return *m_props->
ptr<
typename T::ObjectProps>();
else exit(1); }
246 template <
class T>
inline typename T::ObjectProps*
props(T *ptr = NULL)
const {
if(m_props)
return m_props->
ptr<
typename T::ObjectProps>();
else return NULL; }
256 template<
class ArchiveT>
void serialize(ArchiveT &ar,
const unsigned int version) {
257 if(m_props) ar & boost::serialization::make_nvp(
"properties",m_props);
278 #endif // U_OBJECTPROPS_H
~ObjectPropable()
Definition: ObjectProps.h:242
T * ptr()
Definition: ObjectProps.h:210
lambda_init_object(_ObjectT *o)
Definition: ObjectProps.h:140
#define properties()
Definition: ObjectProps.h:55
unsigned int props_offset(T *ptr) const
Definition: ObjectProps.h:252
T::ObjectProps * props(T *ptr=NULL) const
Definition: ObjectProps.h:246
static unsigned int measure_offset(T1 base, T2 derived)
Definition: ObjectProps.h:131
void props_new(T *ptr=NULL)
Definition: ObjectProps.h:249
#define default(vlaue)
Definition: ObjectProps.h:57
Archive & m_ar
Definition: ObjectProps.h:184
ObjectPropable()
Definition: ObjectProps.h:240
uLib::detail::ObjectProps::get_props< T >::FilteredCFTypeList FilteredCFTypeList
Definition: ObjectProps.h:224
T::ObjectProps type
Definition: ObjectProps.h:98
ThisClass & m_object
Definition: ObjectProps.h:183
virtual ~ObjectPropsBase()
Definition: ObjectProps.h:207
void serialize(ArchiveT &ar, const unsigned int version)
Definition: ObjectProps.h:212
virtual void init_properties()
Definition: ObjectProps.h:266
#define ULIB_props()
Definition: ObjectProps.h:46
mpl::transform_view< FilteredCFTypeList, props_type< mpl::_ > >::type type
Definition: ObjectProps.h:111
ObjectPropsBase * copy()
Definition: ObjectProps.h:225
detail::TypeIntrospection::child_first< T >::type CFTypeList
Definition: ObjectProps.h:105
uLib::detail::ObjectProps::get_props< T >::type CFList
Definition: ObjectProps.h:223
Definition: ObjectProps.h:234
detail::TypeIntrospection::child_first_impl< T >::Childs CFBaseList
Definition: ObjectProps.h:120
mpl::filter_view< CFBaseList, IsA< mpl::_ > >::type FilteredCFBaseList
Definition: ObjectProps.h:123
void operator()(T &o)
Definition: ObjectProps.h:186
mpl::filter_view< CFTypeList, IsA< mpl::_ > >::type FilteredCFTypeList
Definition: ObjectProps.h:108
void operator()(T)
Definition: ObjectProps.h:141
Definition: ObjectProps.h:97
ObjectPropable(const ObjectPropable &c)
Definition: ObjectProps.h:241
void serialize(ArchiveT &ar, const unsigned int version)
Definition: ObjectProps.h:227
Definition: ObjectProps.h:138
Definition: ObjectProps.h:93
mpl::fold< CFListSeq, mpl::vector<>, mpl::copy< mpl::_1, mpl::back_inserter< mpl::_2 > > >::type Childs
Definition: Types.h:110
serialize_baselist(ThisClass &o, Archive &ar)
Definition: ObjectProps.h:185
static void init_object_baselist(T *o)
Definition: ObjectProps.h:152
ObjectPropsBase * props() const
Definition: ObjectProps.h:248
Definition: ObjectProps.h:206
Definition: ObjectProps.h:102
#define ULIB_MPL_INHERIT_NOFOLD_SEQ(_TypeList)
Definition: Mpl.h:116
T::ObjectProps & props_ref() const
Definition: ObjectProps.h:245
virtual ObjectPropsBase * copy()=0
ObjectPropsImpl< T > ThisClass
Definition: ObjectProps.h:222
#define _name
Definition: ObjectProps.h:61
_ObjectT * o
Definition: ObjectProps.h:139
static boost::enable_if< mpl::not_< IsA< T > >, void >::type init_object(T *o)
Definition: ObjectProps.h:164
static boost::enable_if< IsA< T >, void >::type init_object(T *o)
Definition: ObjectProps.h:175
friend class boost::serialization::access
Definition: ObjectProps.h:238
Definition: ObjectProps.h:135
#define p()
Definition: ObjectProps.h:59
void serialize(ArchiveT &ar, const unsigned int version)
Definition: ObjectProps.h:256
Definition: ObjectProps.h:218
#define DLL_PUBLIC
Definition: Macros.h:62
Definition: ObjectProps.h:86
Definition: ObjectProps.h:182