Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'coding/file_container.cpp')
-rw-r--r--coding/file_container.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/coding/file_container.cpp b/coding/file_container.cpp
index c17c7cb811..808f056e93 100644
--- a/coding/file_container.cpp
+++ b/coding/file_container.cpp
@@ -9,11 +9,12 @@
// FilesContainerBase
/////////////////////////////////////////////////////////////////////////////
-void FilesContainerBase::ReadInfo(FileReader & reader)
+template <class ReaderT>
+void FilesContainerBase::ReadInfo(ReaderT & reader)
{
uint64_t offset = ReadPrimitiveFromPos<uint64_t>(reader, 0);
- ReaderSource<FileReader> src(reader);
+ ReaderSource<ReaderT> src(reader);
src.Skip(offset);
uint32_t const count = ReadVarUint<uint32_t>(src);
@@ -37,12 +38,18 @@ void FilesContainerBase::ReadInfo(FileReader & reader)
FilesContainerR::FilesContainerR(string const & fName,
uint32_t logPageSize,
uint32_t logPageCount)
-: m_source(fName, logPageSize, logPageCount)
+ : m_source(new FileReader(fName, logPageSize, logPageCount))
+{
+ ReadInfo(m_source);
+}
+
+FilesContainerR::FilesContainerR(ReaderT const & file)
+ : m_source(file)
{
ReadInfo(m_source);
}
-FileReader FilesContainerR::GetReader(Tag const & tag) const
+FilesContainerR::ReaderT FilesContainerR::GetReader(Tag const & tag) const
{
InfoContainer::const_iterator i =
lower_bound(m_info.begin(), m_info.end(), tag, LessInfo());