Changeset 156
- Timestamp:
- 07/07/08 17:09:37 (6 months ago)
- Files:
-
- trunk/dba/dba/storeable.cpp (modified) (5 diffs)
- trunk/dba/dba/storeable.h (modified) (14 diffs)
- trunk/dba/test/main.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dba/dba/storeable.cpp
r20 r156 41 41 //==================== MemberEntryBase ================== 42 42 43 MemberEntryBase::MemberEntryBase( const char* pMemberName, int pMemberOffset)43 MemberEntryBase::MemberEntryBase(int pMemberTableIndex, const char* pMemberName, int pMemberOffset) 44 44 : mMemberName(pMemberName), 45 mMemberOffset(pMemberOffset) 45 mMemberOffset(pMemberOffset), 46 mMemberTableIndex(pMemberTableIndex) 46 47 {}; 47 48 … … 50 51 mMemberOffset = pNewOffset; 51 52 }; 53 54 void 55 MemberEntryBase::setMemberTableIndex(int pIndex) { 56 mMemberTableIndex = pIndex; 57 }; 58 52 59 53 60 int … … 61 68 }; 62 69 //==================== StoreTableMember ================== 63 StoreTableMember::StoreTableMember( StoreTable* pOwner, const char* pMemberName, int pMemberOffset, StoreableFilterBase* pFilter, int pDatabaseType)64 : MemberEntryBase(p MemberName,pMemberOffset),70 StoreTableMember::StoreTableMember(int pIndex, StoreTable* pOwner, const char* pMemberName, int pMemberOffset, StoreableFilterBase* pFilter, int pDatabaseType) 71 : MemberEntryBase(pIndex, pMemberName, pMemberOffset), 65 72 mFilter(pFilter), 66 73 mFilterOwner(true), … … 105 112 //==================== ColMemberEntry ================== 106 113 107 ColMemberEntry::ColMemberEntry( ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName)108 : MemberEntryBase(p MemberName, pMemberOffset),114 ColMemberEntry::ColMemberEntry(int pIndex, ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName) 115 : MemberEntryBase(pIndex, pMemberName, pMemberOffset), 109 116 mTableName(NULL), 110 117 mFKeyName(pFKeyName), … … 116 123 }; 117 124 118 ColMemberEntry::ColMemberEntry( ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName, const char* pTableName, id pRelationId)119 : MemberEntryBase(p MemberName, pMemberOffset),125 ColMemberEntry::ColMemberEntry(int pIndex, ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName, const char* pTableName, id pRelationId) 126 : MemberEntryBase(pIndex, pMemberName, pMemberOffset), 120 127 mTableName(pTableName), 121 128 mFKeyName(pFKeyName), trunk/dba/dba/storeable.h
r136 r156 30 30 @param pMemberOffset number of bytes from 'this' to first byte of member field in class 31 31 */ 32 MemberEntryBase( const char* pMemberName, int pMemberOffset);32 MemberEntryBase(int pMemberTableIndex, const char* pMemberName, int pMemberOffset); 33 33 /**@internal 34 34 Get number of bytes from this to first byte of member field … … 36 36 int getMemberOffset() const; 37 37 /** 38 Get index of member in store table 39 */ 40 int getMemberTableIndex() const; 41 /** 38 42 Get name of relation where class member is stored 39 43 */ … … 43 47 */ 44 48 void setMemberOffset(int pNewOffset); 49 /**@internal 50 set in BIND_* macros - for internal use only 51 */ 52 void setMemberTableIndex(int pIndex); 45 53 private: 46 54 const char* mMemberName; 47 55 int mMemberOffset; 56 int mMemberTableIndex; 48 57 }; 49 58 … … 83 92 @param pDatabaseType type of archive data (Database::StoreType enum value) 84 93 */ 85 StoreTableMember( StoreTable* pOwner, const char* pMemberName, int pMemberOffset, StoreableFilterBase* pFilter, int pDatabaseType);94 StoreTableMember(int pIndex, StoreTable* pOwner, const char* pMemberName, int pMemberOffset, StoreableFilterBase* pFilter, int pDatabaseType); 86 95 /**@internal 87 96 used by BIND_* macros - for internal use only … … 143 152 class dbaDLLEXPORT ColMemberEntry : public MemberEntryBase { 144 153 public: 145 ColMemberEntry( ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName);146 ColMemberEntry( ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName, const char* pTableName, id pRelationName);154 ColMemberEntry(int pIndex, ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName); 155 ColMemberEntry(int pIndex, ColTable* pOwner, const char* pMemberName, int pMemberOffset, CollectionFilterBase* pFilter, const char* pFKeyName, const char* pTableName, id pRelationName); 147 156 const char* getTableName() const; 148 157 const char* getFKeyName() const; … … 221 230 void \ 222 231 Class::st_createTables() { \ 232 int index = 0; \ 223 233 st_table = new dba::StoreTable(table); \ 224 234 st_table->setClassOffset( (char*)(Class*)dba::Storeable::dba_pointer_place - (char*)dba_pointer_place ); \ … … 228 238 st_ColTable->setClassOffset( (char*)(Class*)dba::Storeable::dba_pointer_place - (char*)dba_pointer_place ); \ 229 239 st_ColTable->setNextTable(parent::st_getColTable()); \ 230 sStoreTableList.mColTables.insert(st_ColTable); 240 sStoreTableList.mColTables.insert(st_ColTable); 231 241 232 242 /** … … 238 248 */ 239 249 #define BIND_STR(member,filter_class,field) \ 240 new dba::StoreTableMember( st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::STRING);250 new dba::StoreTableMember(index++,st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::STRING); 241 251 242 252 /** … … 248 258 */ 249 259 #define BIND_INT(member,filter_class,field) \ 250 new dba::StoreTableMember( st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::INTEGER);260 new dba::StoreTableMember(index++,st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::INTEGER); 251 261 252 262 /** … … 258 268 */ 259 269 #define BIND_FLT(member,filter_class,field) \ 260 new dba::StoreTableMember( st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::FLOAT);270 new dba::StoreTableMember(index++,st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::FLOAT); 261 271 262 272 /** … … 268 278 */ 269 279 #define BIND_DAT(member,filter_class,field) \ 270 new dba::StoreTableMember( st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::DATE);280 new dba::StoreTableMember(index++,st_table,field,(char*)&(member) - (char*)this,new filter_class(member),dba::Database::DATE); 271 281 272 282 /** … … 279 289 */ 280 290 #define BIND_COL(member,filter_class,fkname) \ 281 new dba::ColMemberEntry( st_ColTable,NULL,(char*)&(member) - (char*)this,new filter_class(member),fkname);291 new dba::ColMemberEntry(index++,st_ColTable,NULL,(char*)&(member) - (char*)this,new filter_class(member),fkname); 282 292 283 293 /** … … 294 304 */ 295 305 #define BIND_CLA(member,filter_class,fkname,coll_id,table_name) \ 296 new dba::ColMemberEntry( st_ColTable,NULL,(char*)&(member) - (char*)this,new filter_class(member),fkname,table_name,coll_id);306 new dba::ColMemberEntry(index++,st_ColTable,NULL,(char*)&(member) - (char*)this,new filter_class(member),fkname,table_name,coll_id); 297 307 298 308 /** … … 310 320 tmp->setFilterOwner(false); \ 311 321 tmp->setMemberOffset(tmp->getMemberOffset() + ((char*)&(member) - (char*)this)); \ 322 tmp->setMemberTableIndex(index++); \ 312 323 st_table->addMember(tmp); \ 313 324 entry = entry->getNextMember(); \ trunk/dba/test/main.cpp
r154 r156 144 144 CppUnit::BriefTestProgressListener listener; 145 145 runner.eventManager().addListener(&listener); 146 //runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );146 runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); 147 147 //runner.addTest(new CppUnit::TestCaller<SQLite3SQLArchiveTestCase>("debug_test",&SQLite3SQLArchiveTestCase::sqlError)); 148 148 //runner.addTest(new CppUnit::TestCaller<PostgresSQLArchiveTestCase>("debug_test",&PostgresSQLArchiveTestCase::sqlError)); … … 151 151 //runner.addTest(new CppUnit::TestCaller<SQLite3SQLArchiveTestCase>("debug_test",&SQLite3SQLArchiveTestCase::transactions_rollback)); 152 152 //runner.addTest(dba_tests::XMLTestCase::suite()); 153 runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::load_two_inverted));153 //runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::load_two_inverted)); 154 154 //runner.addTest(new CppUnit::TestCaller<dba_tests::XMLTestCase>("debug_test",&dba_tests::XMLTestCase::store_two)); 155 155 //runner.addTest(new CppUnit::TestCaller<OdbcPluginTestCase>("debug_test",&OdbcPluginTestCase::dbConnection));
