libosmscout  0.1
osmscout::IndexedDataFile< I, N > Class Template Reference

#include <DataFile.h>

+ Inheritance diagram for osmscout::IndexedDataFile< I, N >:

Public Types

using ValueType = std::shared_ptr< N >
 
- Public Types inherited from osmscout::DataFile< N >
using ValueCache = Cache< FileOffset, std::shared_ptr< N > >
 
using ValueCacheEntry = typename Cache< FileOffset, ValueType >::CacheEntry
 
using ValueCacheRef = typename Cache< FileOffset, ValueType >::CacheRef
 
using ValueType = std::shared_ptr< N >
 

Public Member Functions

bool Close () override
 Close the index. More...
 
bool Get (const std::list< I > &ids, std::vector< ValueType > &data) const
 
bool Get (const std::set< I > &ids, std::unordered_map< I, ValueType > &data) const
 
bool Get (const std::set< I > &ids, std::vector< ValueType > &data) const
 
bool Get (const std::vector< I > &ids, std::vector< ValueType > &data) const
 
bool Get (I id, ValueType &entry) const
 
bool GetOffset (I id, FileOffset &offset) const
 
template<typename IteratorIn >
bool GetOffsets (IteratorIn begin, IteratorIn end, size_t size, std::vector< FileOffset > &offsets) const
 
 IndexedDataFile (const std::string &datafile, const std::string &indexfile, size_t indexCacheSize, size_t dataCacheSize)
 
bool IsOpen () const override
 Return true, if index is currently opened. More...
 
bool Open (const TypeConfigRef &typeConfig, const std::string &path, bool memoryMappedIndex, bool memoryMappedData)
 
- Public Member Functions inherited from osmscout::DataFile< N >
 DataFile (const DataFile &)=delete
 
 DataFile (const std::string &datafile, size_t cacheSize)
 
 DataFile (DataFile &&)=delete
 
void FlushCache ()
 
bool GetByBlockSpan (const DataBlockSpan &span, std::vector< ValueType > &data) const
 Read data values from the given DataBlockSpan. More...
 
template<typename IteratorIn >
bool GetByBlockSpans (IteratorIn begin, IteratorIn end, std::vector< ValueType > &data) const
 Read data values from the given DataBlockSpans. More...
 
bool GetByOffset (FileOffset offset, ValueType &entry) const
 Read one data value from the given file offset. More...
 
template<typename IteratorIn >
bool GetByOffset (IteratorIn begin, IteratorIn end, size_t size, const GeoBox &boundingBox, std::vector< ValueType > &data) const
 Read data values from the given file offsets. More...
 
template<typename IteratorIn >
bool GetByOffset (IteratorIn begin, IteratorIn end, size_t size, std::unordered_map< FileOffset, ValueType > &dataMap) const
 Read data values from the given file offsets. More...
 
template<typename IteratorIn >
bool GetByOffset (IteratorIn begin, IteratorIn end, size_t size, std::vector< ValueType > &data) const
 Reads data for the given file offsets. More...
 
std::string GetFilename () const
 
bool Open (const TypeConfigRef &typeConfig, const std::string &path, bool memoryMappedData)
 Open the index file. More...
 
DataFileoperator= (const DataFile &)=delete
 
DataFileoperator= (DataFile &&)=delete
 
virtual ~DataFile ()
 

Additional Inherited Members

- Protected Attributes inherited from osmscout::DataFile< N >
TypeConfigRef typeConfig
 

Detailed Description

template<class I, class N>
class osmscout::IndexedDataFile< I, N >

Extension of DataFile to allow loading data not only by offset but by id using an additional index file, mapping objects id to object file offset.

Member Typedef Documentation

◆ ValueType

template<class I , class N >
using osmscout::IndexedDataFile< I, N >::ValueType = std::shared_ptr<N>

Constructor & Destructor Documentation

◆ IndexedDataFile()

template<class I , class N >
osmscout::IndexedDataFile< I, N >::IndexedDataFile ( const std::string &  datafile,
const std::string &  indexfile,
size_t  indexCacheSize,
size_t  dataCacheSize 
)

Member Function Documentation

◆ Close()

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Close
overridevirtual

Close the index.

Method is NOT thread-safe.

Reimplemented from osmscout::DataFile< N >.

◆ Get() [1/5]

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Get ( const std::list< I > &  ids,
std::vector< ValueType > &  data 
) const

◆ Get() [2/5]

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Get ( const std::set< I > &  ids,
std::unordered_map< I, ValueType > &  data 
) const

◆ Get() [3/5]

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Get ( const std::set< I > &  ids,
std::vector< ValueType > &  data 
) const

◆ Get() [4/5]

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Get ( const std::vector< I > &  ids,
std::vector< ValueType > &  data 
) const

◆ Get() [5/5]

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Get ( id,
ValueType entry 
) const

◆ GetOffset()

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::GetOffset ( id,
FileOffset offset 
) const

◆ GetOffsets()

template<class I , class N >
template<typename IteratorIn >
bool osmscout::IndexedDataFile< I, N >::GetOffsets ( IteratorIn  begin,
IteratorIn  end,
size_t  size,
std::vector< FileOffset > &  offsets 
) const

◆ IsOpen()

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::IsOpen
overridevirtual

Return true, if index is currently opened.

Method is NOT thread-safe.

Reimplemented from osmscout::DataFile< N >.

◆ Open()

template<class I , class N >
bool osmscout::IndexedDataFile< I, N >::Open ( const TypeConfigRef typeConfig,
const std::string &  path,
bool  memoryMappedIndex,
bool  memoryMappedData 
)

The documentation for this class was generated from the following file: