Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78220 - in sandbox/icl/libs/xplore/br1/sqlbrowser: . Dag
From: afojgo_at_[hidden]
Date: 2012-04-27 10:29:05


Author: jofaber
Date: 2012-04-27 10:29:04 EDT (Fri, 27 Apr 2012)
New Revision: 78220
URL: http://svn.boost.org/trac/boost/changeset/78220

Log:
Coding type graph.
Text files modified:
   sandbox/icl/libs/xplore/br1/sqlbrowser/Dag.h | 2
   sandbox/icl/libs/xplore/br1/sqlbrowser/Dag/DbType.h | 53 +++++++++++++++++++++++++++++----------
   2 files changed, 40 insertions(+), 15 deletions(-)

Modified: sandbox/icl/libs/xplore/br1/sqlbrowser/Dag.h
==============================================================================
--- sandbox/icl/libs/xplore/br1/sqlbrowser/Dag.h (original)
+++ sandbox/icl/libs/xplore/br1/sqlbrowser/Dag.h 2012-04-27 10:29:04 EDT (Fri, 27 Apr 2012)
@@ -59,7 +59,7 @@
     int m_depth;
 
     //---- Db::Object associated to the Vertex ---------------------------------
- //JODO dag::db::tObjectUniPtr m_pObject;
+ dag::db::tObjectSharedPtr m_pObject;
 
     //---- DagModel ------------------------------------------------------------
     DagItem* p_dagItem;

Modified: sandbox/icl/libs/xplore/br1/sqlbrowser/Dag/DbType.h
==============================================================================
--- sandbox/icl/libs/xplore/br1/sqlbrowser/Dag/DbType.h (original)
+++ sandbox/icl/libs/xplore/br1/sqlbrowser/Dag/DbType.h 2012-04-27 10:29:04 EDT (Fri, 27 Apr 2012)
@@ -13,6 +13,11 @@
 #include <QtCore/QVariant>
 #include <QtCore/QVector>
 
+
+class VertexAttributes;
+
+typedef VertexAttributes* VertexAttributesPtr;
+
 namespace dag { namespace db
 {
 
@@ -34,10 +39,10 @@
     enum
     {
           eDefined = 0 //Bit 0: 0:undefined 1:defined
- , eComposed //Bit 0: 0:atomic 1:composite
- , eRelation //Bit 1: 0:object 1:relation
- , eAddedType //Bit 2: 0:built_in 1:added_type
- , eTraits_count
+ , eComposed //Bit 1: 0:atomic 1:composite
+ , eRelation //Bit 2: 0:object 1:relation
+ , eAddedType //Bit 3: 0:built_in 1:added_type
+ , eSize
     };
 
     typedef std::bitset<ciMaxBitCount> tTraitSet;
@@ -58,12 +63,28 @@
     tKeySequence m_aTypeSequence;
 };
 
-//! FieldSignature: The sequence of Fields of an Object.
+class TypedField
+{
+public:
+ TypedField(): m_uType(0), m_uField(0){}
+ TypedField(tKey type, tKey field): m_uType(type), m_uField(field){}
+
+ tKey type()const { return m_uType; }
+ tKey field()const{ return m_uField; }
+private:
+ tKey m_uType;
+ tKey m_uField;
+};
+
+typedef QVector<TypedField> tFieldSignature;
+
+//! FieldSignature: The sequence of typed fields of an Object.
 class FieldSignature
 {
 public:
+ //JODO Read the field signature from the data base.
 private:
- tKeySequence m_aFieldSequence;
+ tFieldSignature m_aFieldSequence;
 };
 
 
@@ -76,13 +97,13 @@
 public:
 private:
     tKey m_uKey;
- TypeTraits<> m_aTraits;
+ tTypeTraits m_aTraits;
     tString m_aName;
     TypeSignature m_aTypeSeq;
     FieldSignature m_aFieldSeq;
 };
 
-typedef boost::scoped_ptr<ObjectType> tObjectTypeUniPtr;
+typedef boost::shared_ptr<ObjectType> tObjectTypeSharedPtr;
 typedef ObjectType* tObjectTypeRawPtr;
 typedef const ObjectType* tConstObjectTypeRawPtr;
 
@@ -91,11 +112,11 @@
 {
 public:
 private:
- tKey m_uKey;
- tString m_aName;
- tObjectTypeUniPtr m_pSourceType;
- tObjectTypeUniPtr m_pRelationType;
- tObjectTypeUniPtr m_pTargetType;
+ tKey m_uKey;
+ tString m_aName;
+ tObjectTypeSharedPtr m_pSourceType;
+ tObjectTypeSharedPtr m_pRelationType;
+ tObjectTypeSharedPtr m_pTargetType;
 };
 
 
@@ -114,13 +135,17 @@
     typedef Type tType;
     Object(): m_aType(){};
     explicit Object(Type aType): m_aType(aType){};
+
+ bool isConsistent()const; //!< Checks for consistency between types and data
+
 private:
     Type m_aType;
     tVariVector m_aValue;
 };
 
 typedef Object<ObjectType> tObject;
-typedef boost::scoped_ptr<tObject> tObjectUniPtr;
+//typedef boost::scoped_ptr<tObject> tObjectUniPtr;
+typedef boost::shared_ptr<tObject> tObjectSharedPtr;
 typedef tObject* tObjectRawPtr;
 typedef const tObject* tObjectConstRawPtr;
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk