Completed given DB_FILE in a "normal" walk.
Reimplemented from Impala::Core::VideoSet::Listener. Definition at line 61 of file ConcatFeatures.h. References Impala::Core::Feature::FeatureDefinition::AsString(), Impala::Core::Feature::FeatureTableSet::ConcatTables(), Impala::Core::Feature::FeatureTableSet::ConcatTablesVissemHack(), Impala::Util::DatabaseReadString(), Impala::Core::Feature::FeatureTableSet::Delete(), Impala::Util::Database::GetFilePath(), Impala::Util::Database::GetInstance(), ILOG_DEBUG, ILOG_INFO, Impala::Core::Feature::FeatureTableSet::MakeFromFile(), mIsPartial, mNumberFrames, mResultDef, mSrcDefs, mSrcFileName, mWalkType, Impala::StringStartsWith(), and Impala::Core::Table::Write(). 00062 { 00063 #ifndef REPOSITORY_USED // Here comes the deprecated stuff 00064 std::vector<String> defList; 00065 if (!mSrcFileName.empty()) 00066 { 00067 String filePath; 00068 Util::Database* db; 00069 if (StringStartsWith(mSrcFileName, "..")) // assume "global" 00070 { 00071 db = &Util::Database::GetInstance(); 00072 filePath = db->GetFilePath(mSrcFileName, false, false); 00073 } 00074 else // assume "local" 00075 { 00076 filePath = vs->GetFilePathFeatureData(mWalkType, mSrcFileName, 00077 fileId, mIsPartial, 00078 0, false, false); 00079 db = vs->GetDatabase(); 00080 } 00081 Util::DatabaseReadString(std::back_inserter(defList), filePath, 00082 db, true); 00083 mSrcDefs = defList[0]; 00084 for (int i=1 ; i<defList.size() ; i++) 00085 mSrcDefs += ";" + defList[i]; 00086 ILOG_DEBUG("mSrcDefs = " << mSrcDefs); 00087 } 00088 00089 FeatureTableSet* fSet = FeatureTableSet::MakeFromFile 00090 (mWalkType, false, mSrcDefs, vs, fileId, mIsPartial, mNumberFrames); 00091 #else // REPOSITORY_USED 00092 Persistency::FeatureLocator loc(vs->GetLocator(), false, false, 00093 mWalkType, mSrcDefs, 00094 vs->GetContainerFile(fileId)); 00095 if (mIsPartial) 00096 loc.SetNumberFrames(mNumberFrames); 00097 FeatureTableSet* fSet = 00098 Persistency::FeatureTableSetRepository().Get(loc); 00099 #endif // REPOSITORY_USED 00100 if (fSet == 0) 00101 return; 00102 00103 FeatureTable* res; 00104 String resName = mResultDef.AsString(); 00105 if (resName == "vissem_proto_annotation_nrScales_2_nrRects_130" || 00106 resName == "vissemgabor_proto_annotation_nrScales_2_nrRects_130") 00107 { 00108 ILOG_INFO("Using VissemHack to get original order in vector"); 00109 res = fSet->ConcatTablesVissemHack(mResultDef); 00110 } 00111 else 00112 { 00113 res = fSet->ConcatTables(mResultDef); 00114 } 00115 00116 #ifndef REPOSITORY_USED // Here comes the deprecated stuff 00117 String fName = vs->GetFilePathFeatureData 00118 (mWalkType, mResultDef, fileId, false, -1, true, false); 00119 if ((res != 0) && (!fName.empty())) 00120 { 00121 Table::Write(res, fName, vs->GetDatabase(), true); 00122 } 00123 #else // REPOSITORY_USED 00124 if (res != 0) 00125 { 00126 loc.SetFeatureDef(mResultDef); 00127 loc.SetNumberFrames(0); 00128 Persistency::FeatureTableRepository().Add(loc, res); 00129 } 00130 #endif // REPOSITORY_USED 00131 fSet->Delete(); 00132 delete fSet; 00133 delete res; 00134 }
Here is the call graph for this function:
|