Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

virtual void Impala::Core::VideoSet::ConcatFeatures::HandleDoneFile ( VideoSet vs,
int  fileId,
Stream::RgbDataSrc src 
) [inline, virtual]

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:


Generated on Fri Mar 19 11:28:50 2010 for ImpalaSrc by  doxygen 1.5.1