32#ifndef _QX_DATA_MEMBER_PIMPL_H_
33#define _QX_DATA_MEMBER_PIMPL_H_
48#define QX_DATA_MEMBER_PIMPL_VIRTUAL_ARCHIVE_HPP(ArchiveInput, ArchiveOutput) \
49virtual void toArchive(const void * pOwner, ArchiveOutput & ar) const Q_DECL_OVERRIDE { Q_UNUSED(pOwner); Q_UNUSED(ar); } \
50virtual void fromArchive(void * pOwner, ArchiveInput & ar) Q_DECL_OVERRIDE { Q_UNUSED(pOwner); Q_UNUSED(ar); }
58template <
typename DataType,
class Owner>
73 virtual bool isEqual(
const void * pOwner1,
const void * pOwner2)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner1); Q_UNUSED(pOwner2);
return false; }
79 virtual QJsonValue
toJson(
const void * pOwner,
const QString & sFormat)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner); Q_UNUSED(sFormat);
return QJsonValue(); }
85 inline DataType *
getData(
void * pOwner)
const {
return (& ((
static_cast<Owner *
>(pOwner))->*
m_pData)); }
86 inline const DataType *
getData(
const void * pOwner)
const {
return (& ((
static_cast<const Owner *
>(pOwner))->*
m_pData)); }
95#ifdef _QX_ENABLE_BOOST_SERIALIZATION
97#if _QX_SERIALIZE_POLYMORPHIC
101#if _QX_SERIALIZE_BINARY
105#if _QX_SERIALIZE_TEXT
113#if _QX_SERIALIZE_PORTABLE_BINARY
117#if _QX_SERIALIZE_WIDE_BINARY
121#if _QX_SERIALIZE_WIDE_TEXT
125#if _QX_SERIALIZE_WIDE_XML
133template <
typename DataType,
class Owner>
148 virtual bool isEqual(
const void * pOwner1,
const void * pOwner2)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner1); Q_UNUSED(pOwner2);
return false; }
154 virtual QJsonValue
toJson(
const void * pOwner,
const QString & sFormat)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner); Q_UNUSED(sFormat);
return QJsonValue(); }
160 inline std::unique_ptr<DataType> *
getData(
void * pOwner)
const {
return (& ((
static_cast<Owner *
>(pOwner))->*
m_pData)); }
161 inline const std::unique_ptr<DataType> *
getData(
const void * pOwner)
const {
return (& ((
static_cast<const Owner *
>(pOwner))->*
m_pData)); }
170#ifdef _QX_ENABLE_BOOST_SERIALIZATION
172#if _QX_SERIALIZE_POLYMORPHIC
176#if _QX_SERIALIZE_BINARY
180#if _QX_SERIALIZE_TEXT
188#if _QX_SERIALIZE_PORTABLE_BINARY
192#if _QX_SERIALIZE_WIDE_BINARY
196#if _QX_SERIALIZE_WIDE_TEXT
200#if _QX_SERIALIZE_WIDE_XML
208template <
typename DataType,
class Owner>
223 virtual bool isEqual(
const void * pOwner1,
const void * pOwner2)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner1); Q_UNUSED(pOwner2);
return false; }
229 virtual QJsonValue
toJson(
const void * pOwner,
const QString & sFormat)
const Q_DECL_OVERRIDE { Q_UNUSED(pOwner); Q_UNUSED(sFormat);
return QJsonValue(); }
235 inline std::shared_ptr<DataType> *
getData(
void * pOwner)
const {
return (& ((
static_cast<Owner *
>(pOwner))->*
m_pData)); }
236 inline const std::shared_ptr<DataType> *
getData(
const void * pOwner)
const {
return (& ((
static_cast<const Owner *
>(pOwner))->*
m_pData)); }
245#ifdef _QX_ENABLE_BOOST_SERIALIZATION
247#if _QX_SERIALIZE_POLYMORPHIC
251#if _QX_SERIALIZE_BINARY
255#if _QX_SERIALIZE_TEXT
263#if _QX_SERIALIZE_PORTABLE_BINARY
267#if _QX_SERIALIZE_WIDE_BINARY
271#if _QX_SERIALIZE_WIDE_TEXT
275#if _QX_SERIALIZE_WIDE_XML
Common interface for all class properties registered into QxOrm context.
#define QX_DATA_MEMBER_PIMPL_VIRTUAL_ARCHIVE_HPP(ArchiveInput, ArchiveOutput)
Portable binary input archive using little endian format.
Portable binary output archive using little endian format.
qx::IxDataMember : common interface for all class properties registered into QxOrm context
void setAccessDataPointer(bool b)
qx_bool : boolean type with code and description message when an error occured
virtual bool isEqual(const void *pOwner1, const void *pOwner2) const Q_DECL_OVERRIDE
virtual ~QxDataMember_PImpl()
virtual void * getDataVoidPtr(void *pOwner) Q_DECL_FINAL
virtual QString getType() const Q_DECL_OVERRIDE
QxDataMember_PImpl(type_data_member_ptr pData, const QString &sKey)
std::shared_ptr< DataType > Owner::* type_data_member_ptr
virtual qx_bool fromJson(void *pOwner, const QJsonValue &j, const QString &sFormat) Q_DECL_OVERRIDE
std::shared_ptr< DataType > * getData(void *pOwner) const
const std::shared_ptr< DataType > * getData(const void *pOwner) const
virtual qx_bool fromVariant(void *pOwner, const QVariant &v, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) Q_DECL_OVERRIDE
type_data_member_ptr m_pData
Data member under format "& Owner::DataMember".
virtual qx::any getDataPtr(void *pOwner) Q_DECL_FINAL
virtual void * getDataVoidPtr(const void *pOwner) const Q_DECL_FINAL
virtual qx::any getDataPtr(const void *pOwner) const Q_DECL_FINAL
virtual QJsonValue toJson(const void *pOwner, const QString &sFormat) const Q_DECL_OVERRIDE
virtual QVariant toVariant(const void *pOwner, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) const Q_DECL_OVERRIDE
virtual QString getType() const Q_DECL_OVERRIDE
std::unique_ptr< DataType > Owner::* type_data_member_ptr
const std::unique_ptr< DataType > * getData(const void *pOwner) const
virtual qx_bool fromJson(void *pOwner, const QJsonValue &j, const QString &sFormat) Q_DECL_OVERRIDE
virtual QVariant toVariant(const void *pOwner, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) const Q_DECL_OVERRIDE
virtual qx::any getDataPtr(void *pOwner) Q_DECL_FINAL
virtual ~QxDataMember_PImpl()
std::unique_ptr< DataType > * getData(void *pOwner) const
virtual void * getDataVoidPtr(void *pOwner) Q_DECL_FINAL
virtual qx::any getDataPtr(const void *pOwner) const Q_DECL_FINAL
virtual bool isEqual(const void *pOwner1, const void *pOwner2) const Q_DECL_OVERRIDE
virtual qx_bool fromVariant(void *pOwner, const QVariant &v, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) Q_DECL_OVERRIDE
virtual QJsonValue toJson(const void *pOwner, const QString &sFormat) const Q_DECL_OVERRIDE
type_data_member_ptr m_pData
Data member under format "& Owner::DataMember".
virtual void * getDataVoidPtr(const void *pOwner) const Q_DECL_FINAL
QxDataMember_PImpl(type_data_member_ptr pData, const QString &sKey)
qx::QxDataMember_PImpl<DataType, Owner> : concrete property of type DataType registered into QxOrm co...
QxDataMember_PImpl(type_data_member_ptr pData, const QString &sKey)
virtual QString getType() const Q_DECL_OVERRIDE
DataType * getData(void *pOwner) const
const DataType * getData(const void *pOwner) const
virtual qx::any getDataPtr(const void *pOwner) const Q_DECL_FINAL
virtual qx_bool fromVariant(void *pOwner, const QVariant &v, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) Q_DECL_OVERRIDE
virtual ~QxDataMember_PImpl()
type_data_member_ptr m_pData
Data member under format "& Owner::DataMember".
virtual qx_bool fromJson(void *pOwner, const QJsonValue &j, const QString &sFormat) Q_DECL_OVERRIDE
virtual bool isEqual(const void *pOwner1, const void *pOwner2) const Q_DECL_OVERRIDE
virtual void * getDataVoidPtr(const void *pOwner) const Q_DECL_FINAL
virtual QVariant toVariant(const void *pOwner, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context) const Q_DECL_OVERRIDE
DataType Owner::* type_data_member_ptr
virtual QJsonValue toJson(const void *pOwner, const QString &sFormat) const Q_DECL_OVERRIDE
virtual qx::any getDataPtr(void *pOwner) Q_DECL_FINAL
virtual void * getDataVoidPtr(void *pOwner) Q_DECL_FINAL
Root namespace for all QxOrm library features.