forked from organicmaps/organicmaps-tmp
Added ReaderSrc as a primary reader source !non-template! class to incapsulate functions implementation.
This commit is contained in:
parent
7f89726270
commit
8f0e32fe44
3 changed files with 12 additions and 19 deletions
|
@ -4,19 +4,6 @@
|
|||
#include "../coding/file_reader.hpp"
|
||||
|
||||
|
||||
class ReaderPtrStream : public stream::ReaderStream<ReaderSource<ReaderPtr<Reader> > >
|
||||
{
|
||||
typedef ReaderPtr<Reader> ptr_t;
|
||||
typedef ReaderSource<ptr_t> source_t;
|
||||
typedef stream::ReaderStream<source_t> base_type;
|
||||
|
||||
source_t m_src;
|
||||
public:
|
||||
ReaderPtrStream(Reader * p) : base_type(m_src), m_src(p) {}
|
||||
ReaderPtrStream(ptr_t const & p) : base_type(m_src), m_src(p) {}
|
||||
};
|
||||
|
||||
|
||||
class FileReaderStream : public stream::ReaderStream<ReaderSource<FileReader> >
|
||||
{
|
||||
typedef stream::ReaderStream<ReaderSource<FileReader> > base_type;
|
||||
|
|
|
@ -201,11 +201,6 @@ public:
|
|||
return (m_reader.Size() - m_pos);
|
||||
}
|
||||
|
||||
ReaderT const & Reader() const
|
||||
{
|
||||
return m_reader;
|
||||
}
|
||||
|
||||
ReaderT SubReader(uint64_t size)
|
||||
{
|
||||
uint64_t const pos = m_pos;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "../base/assert.hpp"
|
||||
#include "reader.hpp"
|
||||
|
||||
|
||||
/// Reader wrapper to avoid penalty on copy and polymorphic SubReader creation.
|
||||
|
@ -33,3 +33,14 @@ public:
|
|||
return SubReaderWrapper(m_p, pos + m_pos, size);
|
||||
}
|
||||
};
|
||||
|
||||
/// Non template reader source for regular functions with incapsulated implementation.
|
||||
class ReaderSrc : public ReaderSource<SubReaderWrapper<Reader>>
|
||||
{
|
||||
typedef SubReaderWrapper<Reader> ReaderT;
|
||||
typedef ReaderSource<ReaderT> BaseT;
|
||||
|
||||
public:
|
||||
explicit ReaderSrc(Reader & reader) : BaseT(ReaderT(&reader)) {}
|
||||
explicit ReaderSrc(Reader * reader) : BaseT(ReaderT(reader)) {}
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue