Completed given DB_DIR in a "normal" walk.
Reimplemented from Impala::Core::ImageSet::Listener. Definition at line 47 of file ConcatFeatures.h. References Impala::Core::Feature::FeatureDefinition::AsString(), Impala::Util::DatabaseReadString(), Impala::Util::Database::GetFilePath(), Impala::Util::Database::GetInstance(), ILOG_DEBUG, ILOG_INFO, Impala::Core::Feature::FeatureTableSet::MakeFromFile(), mResultDef, mSrcDefs, mSrcFileName, Impala::StringStartsWith(), and Impala::Core::Table::Write(). 00048 { 00049 #ifndef REPOSITORY_USED // Here comes the deprecated stuff 00050 FeatureList defList; 00051 if (!mSrcFileName.empty()) 00052 { 00053 String filePath; 00054 Util::Database* db; 00055 if (StringStartsWith(mSrcFileName, "..")) // assume "global" 00056 { 00057 db = &Util::Database::GetInstance(); 00058 filePath = db->GetFilePath(mSrcFileName, false, false); 00059 } 00060 else // assume "local" 00061 { 00062 filePath = is->GetFilePathFeatureData(mSrcFileName, dirId, 00063 false, 0, false, false); 00064 db = is->GetDatabase(); 00065 } 00066 Util::DatabaseReadString(std::back_inserter(defList), filePath, 00067 db, true); 00068 mSrcDefs = defList[0]; 00069 for (int i=1 ; i<defList.size() ; i++) 00070 mSrcDefs += ";" + defList[i]; 00071 ILOG_DEBUG("mSrcDefs = " << mSrcDefs); 00072 } 00073 00074 FeatureTableSet* fSet = FeatureTableSet::MakeFromFile 00075 (mSrcDefs, is, dirId, false, 0); 00076 #else // REPOSITORY_USED 00077 Persistency::FeatureLocator loc(is->GetLocator(), false, false, "", 00078 mSrcDefs, is->GetContainerDir(dirId)); 00079 FeatureTableSet* fSet = 00080 Persistency::FeatureTableSetRepository().Get(loc); 00081 #endif // REPOSITORY_USED 00082 if (fSet == 0) 00083 return; 00084 00085 FeatureTable* res; 00086 String resName = mResultDef.AsString(); 00087 if (resName == "vissem_proto_annotation_nrScales_2_nrRects_130" || 00088 resName == "vissemgabor_proto_annotation_nrScales_2_nrRects_130") 00089 { 00090 ILOG_INFO("Using VissemHack to get original order in vector"); 00091 res = fSet->ConcatTablesVissemHack(mResultDef); 00092 } 00093 else 00094 { 00095 res = fSet->ConcatTables(mResultDef); 00096 } 00097 00098 #ifndef REPOSITORY_USED // Here comes the deprecated stuff 00099 String filename = is->GetFilePathFeatureData(mResultDef, dirId, false, 00100 0, true, false); 00101 if ((res != 0) && (!filename.empty())) 00102 Table::Write(res, filename, is->GetDatabase(), true); 00103 #else // REPOSITORY_USED 00104 if (res != 0) 00105 { 00106 loc.SetFeatureDef(mResultDef); 00107 Persistency::FeatureTableRepository().Add(loc, res); 00108 } 00109 #endif // REPOSITORY_USED 00110 fSet->Delete(); 00111 delete fSet; 00112 delete res; 00113 }
Here is the call graph for this function:
|