QxOrm 1.1.9
C++ Object Relational Mapping library

qx::QxSqlRelation<DataType, Owner> : base class for all relationships defined between 2 classes (or between 2 tables in database) More...

#include <QxSqlRelation.h>

Inheritance diagram for qx::QxSqlRelation< DataType, Owner >:
qx::IxSqlRelation qx::QxSqlRelation_ManyToMany< DataType, Owner > qx::QxSqlRelation_ManyToOne< DataType, Owner > qx::QxSqlRelation_OneToMany< DataType, Owner > qx::QxSqlRelation_OneToOne< DataType, Owner >

List of all members.

Classes

struct  createItem_Helper
struct  createItem_Helper< true, dummy >
struct  getContainer_Helper
struct  getContainer_Helper< false, true, dummy >
struct  getContainer_Helper< true, false, dummy >
struct  getContainer_Helper< true, true, dummy >
struct  getData_Helper
struct  getData_Helper< false, true, dummy >
struct  getData_Helper< true, false, dummy >
struct  getData_Helper< true, true, dummy >

Public Member Functions

 QxSqlRelation (IxDataMember *p)
virtual ~QxSqlRelation ()
virtual void init ()

Protected Types

enum  { is_valid = (qx::trait::is_qx_registered<type_data>::value && qx::trait::is_qx_registered<type_owner>::value) }
enum  { is_data_pointer = (boost::is_pointer<DataType>::value || qx::trait::is_smart_ptr<DataType>::value) }
enum  { is_data_container = qx::trait::is_container<type_container>::value }
enum  { is_same_data_owner = boost::is_same<type_data, value }
typedef qx::trait::remove_attr
< DataType >::type 
type_tmp_1
typedef
qx::trait::remove_smart_ptr
< type_tmp_1 >::type 
type_tmp_2
typedef type_tmp_2 type_container
typedef
qx::trait::generic_container
< type_container
type_generic_container
typedef
type_generic_container::type_item 
type_item
typedef boost::mpl::if_c
< qx::trait::is_container
< type_container >::value,
typename
type_generic_container::type_value_qx,
type_container >::type 
type_tmp_3
typedef QxSqlRelation
< DataType, Owner >
::type_tmp_3 
type_data
typedef Owner type_owner

Protected Member Functions

DataType * getDataTypePtr (QxSqlRelationParams &params) const
type_ownergetOwner (QxSqlRelationParams &params) const
type_datagetData (QxSqlRelationParams &params) const
type_containergetContainer (QxSqlRelationParams &params) const
type_item createItem () const

Protected Attributes

bool m_bInitInEvent
 Class initialisation in progress.

Static Protected Attributes

static QxCollection< QString,
IxDataMember * > 
m_lstDataMember
 Optimization : collection of 'IxDataMember'.
static IxSqlRelationX m_lstSqlRelation
 Optimization : collection of 'IxSqlRelation'.
static QMutex m_oMutex
 Mutex : 'QxSqlRelation' is thread-safe.

Private Member Functions

IxDataMemberisValid_DataMember (long lIndex) const
IxDataMemberisValid_SqlRelation (long lIndex) const

Detailed Description

template<class DataType, class Owner>
class qx::QxSqlRelation< DataType, Owner >

qx::QxSqlRelation<DataType, Owner> : base class for all relationships defined between 2 classes (or between 2 tables in database)

Definition at line 66 of file QxSqlRelation.h.


Member Typedef Documentation

template<class DataType, class Owner>
typedef type_tmp_2 qx::QxSqlRelation< DataType, Owner >::type_container [protected]
template<class DataType, class Owner>
typedef qx::trait::generic_container<type_container> qx::QxSqlRelation< DataType, Owner >::type_generic_container [protected]
template<class DataType, class Owner>
typedef type_generic_container::type_item qx::QxSqlRelation< DataType, Owner >::type_item [protected]
template<class DataType, class Owner>
typedef qx::trait::remove_attr<DataType>::type qx::QxSqlRelation< DataType, Owner >::type_tmp_1 [protected]

Definition at line 71 of file QxSqlRelation.h.

template<class DataType, class Owner>
typedef qx::trait::remove_smart_ptr<type_tmp_1>::type qx::QxSqlRelation< DataType, Owner >::type_tmp_2 [protected]

Definition at line 72 of file QxSqlRelation.h.

template<class DataType, class Owner>
typedef boost::mpl::if_c<qx::trait::is_container<type_container>::value, typename type_generic_container::type_value_qx, type_container>::type qx::QxSqlRelation< DataType, Owner >::type_tmp_3 [protected]

Definition at line 76 of file QxSqlRelation.h.


Member Enumeration Documentation

template<class DataType, class Owner>
anonymous enum [protected]
Enumerator:
is_valid 

Definition at line 80 of file QxSqlRelation.h.

template<class DataType, class Owner>
anonymous enum [protected]
Enumerator:
is_data_pointer 

Definition at line 81 of file QxSqlRelation.h.

template<class DataType, class Owner>
anonymous enum [protected]
Enumerator:
is_data_container 

Definition at line 82 of file QxSqlRelation.h.

template<class DataType, class Owner>
anonymous enum [protected]
Enumerator:
is_same_data_owner 
value 

Definition at line 83 of file QxSqlRelation.h.


Constructor & Destructor Documentation

template<class DataType, class Owner>
qx::QxSqlRelation< DataType, Owner >::QxSqlRelation ( IxDataMember p) [inline]

Definition at line 94 of file QxSqlRelation.h.

template<class DataType, class Owner>
virtual qx::QxSqlRelation< DataType, Owner >::~QxSqlRelation ( ) [inline, virtual]

Definition at line 95 of file QxSqlRelation.h.


Member Function Documentation

template<class DataType, class Owner>
type_item qx::QxSqlRelation< DataType, Owner >::createItem ( ) const [inline, protected]

Definition at line 146 of file QxSqlRelation.h.

template<class DataType, class Owner>
type_container& qx::QxSqlRelation< DataType, Owner >::getContainer ( QxSqlRelationParams params) const [inline, protected]

Definition at line 143 of file QxSqlRelation.h.

template<class DataType, class Owner>
type_data& qx::QxSqlRelation< DataType, Owner >::getData ( QxSqlRelationParams params) const [inline, protected]

Definition at line 140 of file QxSqlRelation.h.

template<class DataType, class Owner>
DataType* qx::QxSqlRelation< DataType, Owner >::getDataTypePtr ( QxSqlRelationParams params) const [inline, protected]

Definition at line 134 of file QxSqlRelation.h.

template<class DataType, class Owner>
type_owner& qx::QxSqlRelation< DataType, Owner >::getOwner ( QxSqlRelationParams params) const [inline, protected]

Definition at line 137 of file QxSqlRelation.h.

template<class DataType, class Owner>
virtual void qx::QxSqlRelation< DataType, Owner >::init ( ) [inline, virtual]

Implements qx::IxSqlRelation.

Definition at line 97 of file QxSqlRelation.h.

template<class DataType, class Owner>
IxDataMember* qx::QxSqlRelation< DataType, Owner >::isValid_DataMember ( long  lIndex) const [inline, private]

Definition at line 116 of file QxSqlRelation.h.

template<class DataType, class Owner>
IxDataMember* qx::QxSqlRelation< DataType, Owner >::isValid_SqlRelation ( long  lIndex) const [inline, private]

Definition at line 124 of file QxSqlRelation.h.


Member Data Documentation

template<class DataType, class Owner>
bool qx::QxSqlRelation< DataType, Owner >::m_bInitInEvent [protected]

Class initialisation in progress.

Definition at line 90 of file QxSqlRelation.h.

template<class DataType, class Owner>
QxCollection< QString, IxDataMember * > qx::QxSqlRelation< DataType, Owner >::m_lstDataMember [static, protected]

Optimization : collection of 'IxDataMember'.

Definition at line 87 of file QxSqlRelation.h.

template<class DataType, class Owner>
IxSqlRelationX qx::QxSqlRelation< DataType, Owner >::m_lstSqlRelation [static, protected]

Optimization : collection of 'IxSqlRelation'.

Definition at line 88 of file QxSqlRelation.h.

template<class DataType, class Owner>
QMutex qx::QxSqlRelation< DataType, Owner >::m_oMutex [static, protected]

Mutex : 'QxSqlRelation' is thread-safe.

Definition at line 89 of file QxSqlRelation.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines