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

FrameHashesRepositoryInFile.h

Go to the documentation of this file.
00001 #ifndef Impala_Persistency_FrameHashesRepositoryInFile_h
00002 #define Impala_Persistency_FrameHashesRepositoryInFile_h
00003 
00004 #include "Core/Array/Arrays.h"
00005 #include "Core/Array/ReadFile.h"
00006 #include "Core/Array/WriteFile.h"
00007 
00008 #include "Persistency/RepositoryInFileSystem.h"
00009 #include "Persistency/FrameHashesLocator.h"
00010 
00011 #include "Core/VideoSet/FrameHashes.h"
00012 
00013 
00014 namespace Impala
00015 {
00016 namespace Persistency
00017 {
00018 
00019 class FrameHashesRepositoryInFile
00020 {
00021 
00022     typedef Core::VideoSet::FrameHashes FrameHashes;
00023 
00024 public:
00025 
00026     FrameHashesRepositoryInFile()
00027     {
00028     }
00029 
00030     FrameHashes*
00031     Get(const FrameHashesLocator& loc)
00032     {
00033         String dir = GetDir(loc);
00034         File file = RepFS().GetFile(loc, dir, "hashes.tab", false, false);
00035         if (!file.Valid())
00036             return 0;
00037         FrameHashes* frameHashes = new FrameHashes(100);
00038         Core::Table::Read(frameHashes, file);
00039         return frameHashes;
00040     }
00041 
00042     void
00043     Add(const FrameHashesLocator& loc, FrameHashes* frameHashes)
00044     {
00045         String dir = GetDir(loc);
00046         File file = RepFS().GetFile(loc, dir, "hashes.tab", true, false);
00047         Util::IOBuffer* buffer = file.GetWriteBuffer();
00048         const bool binary = true;
00049         Core::Table::Write(frameHashes, buffer, binary);
00050         delete buffer;
00051     }
00052 
00053 private:
00054 
00055     RepositoryInFileSystem&
00056     RepFS()
00057     {
00058         return RepositoryInFileSystem::GetInstance();
00059     }
00060 
00061     String
00062     GetDir(const FrameHashesLocator& loc)
00063     {
00064         String dir = "Frames";
00065         dir = FileNameConcat(dir, loc.GetContainer());
00066         return dir;
00067     }
00068 
00069     ILOG_VAR_DECL;
00070 };
00071 
00072 ILOG_VAR_INIT(FrameHashesRepositoryInFile, Impala.Persistency);
00073 
00074 } // namespace Persistency
00075 } // namespace Impala
00076 
00077 #endif

Generated on Thu Jan 13 09:05:05 2011 for ImpalaSrc by  doxygen 1.5.1