Maria GDK 5.0.0.737
Documentation of native code in develop branch
Loading...
Searching...
No Matches
Maria::FileMapDataProvider Class Reference

#include <MFileMapDataProvider.h>

Inheritance diagram for Maria::FileMapDataProvider:
Maria::IMapDataProvider Maria::IMapTileProvider

Public Member Functions

 FileMapDataProvider (const std::string &paths="", int maxConcurrentRequests=10)
 
void setSearchPath (const std::string &pathString)
 Set search paths, separated by semicolon.
 
void setIndexPath (const std::string &indexPath)
 Set index file path. This should be a writeable directory where we can store index files for the input data sets. This is used for better performance during startup if you have many input data files.
 
bool initialize (int maxRecursionLevels=4)
 Initialize file provider, scanning through all directories recursively and storing file information/bounding rectangles.
 
MapEntry addMapDataset (const std::string &mapSignature, const std::string &name, Maria::MapContentType contentType, ValueBag &params, const std::vector< std::string > &files)
 Manually add a data set from files.
 
bool GetMapEntry (const MapContentQuery &mapQuery, MapEntry &mapEntry, unsigned long timeout=0) override
 
std::shared_ptr< MariaProtobuf::FetchMapReplyMessage > GetTileData (const GenerateMapTileRequest &req, unsigned long timeout_ms=0) override
 
void GetMapEntries (std::vector< MapEntry > &mapEntries) const override
 
int GetMaxConcurrentRequests () const
 
bool AddRequest (const MapContentQuery &request, FullTileId tileId, std::shared_ptr< ITileDataResponseTarget > responseTarget) override
 Add request to provider. Returns false if provider queue is full.
 
FullTileId RemoveRequest (int tileCacheId, bool removeNewest=false) override
 Try to remove request from queue associated with a specific tile cache.
 
int PendingRequestCount (int tileCacheId=-1) const override
 Count of pending requests for specified tile cache.
 
- Public Member Functions inherited from Maria::IMapDataProvider
virtual int GetFlags ()
 
virtual bool GetMapEntry (const MapContentQuery &mapQuery, Maria::MapEntry &mapEntry, unsigned long timeout=0)=0
 
virtual std::shared_ptr< MariaProtobuf::FetchMapReplyMessage > GetTileData (const GenerateMapTileRequest &req, unsigned long timeout_ms=0)=0
 
virtual void GetMapEntries (std::vector< MapEntry > &mapEntries) const =0
 
virtual bool AddRequest (const MapContentQuery &request, FullTileId tileId, std::shared_ptr< ITileDataResponseTarget > responseTarget)=0
 Add request to provider. Returns false if provider queue is full.
 
virtual FullTileId RemoveRequest (int tileCacheId, bool removeNewest=false)=0
 Try to remove request from queue associated with a specific tile cache.
 
virtual int PendingRequestCount (int tileCacheId=-1) const =0
 Count of pending requests for specified tile cache.
 
virtual void GetMapEntries (std::vector< MapEntry > &mapEntries) const =0
 Get all map entries served by the provider. Note that if "*" is set as map signature, the provider can provide data for map signatures of given map type.
 

Detailed Description

FileMapDataProvider - File based map data provider This data provider will read rastermapconfigs from disk, resolve map queries and return map tiles.

Member Function Documentation

◆ addMapDataset()

MapEntry FileMapDataProvider::addMapDataset ( const std::string &  mapSignature,
const std::string &  name,
Maria::MapContentType  contentType,
ValueBag params,
const std::vector< std::string > &  files 
)

Manually add a data set from files.

Parameters
mapSignatureThe map signature to register the data set as
nameDisplay name for the data set.
contentTypeThe content type to register as.
paramsAny parameters, using the same format as in a RasterMapPackage file.
filesOne or more data files. These must be in the same projection and tiling scheme.
Returns
A MapEntry for the new data set.

◆ AddRequest()

bool FileMapDataProvider::AddRequest ( const MapContentQuery request,
FullTileId  tileId,
std::shared_ptr< ITileDataResponseTarget responseTarget 
)
overridevirtual

Add request to provider. Returns false if provider queue is full.

Parameters
requestTile request
tileIdTile cache id and tile id of tile
responseTargetCall to process response from tile providers
Returns
true on success, false if unable to add request

Implements Maria::IMapTileProvider.

◆ GetMapEntries()

void Maria::FileMapDataProvider::GetMapEntries ( std::vector< MapEntry > &  mapEntries) const
overridevirtual

Get a list of map entries available to this data provider.

Implements Maria::IMapDataProvider.

◆ GetMapEntry()

bool Maria::FileMapDataProvider::GetMapEntry ( const MapContentQuery mapQuery,
MapEntry mapEntry,
unsigned long  timeout = 0 
)
overridevirtual

Get a map catalog entry from a map query. This method should fill out the provided mapEntry with the resolved data for the given mapQuery.

The method should return true on success, and false on failure.

The method should block until a response can be given, but at most timeout ms. If timeout = 0, it may block indefinitely.

Implements Maria::IMapDataProvider.

◆ GetTileData()

std::shared_ptr< MariaProtobuf::FetchMapReplyMessage > FileMapDataProvider::GetTileData ( const GenerateMapTileRequest req,
unsigned long  timeout_ms = 0 
)
overridevirtual

Get map tile data from map query. This method should return a FetchMapReply with tile data or a valid error code for the given mapQuery.

The method should block until a response can be given, but at most timeout ms. If timeout = 0, it may block indefinitely.

Implements Maria::IMapDataProvider.

◆ initialize()

bool Maria::FileMapDataProvider::initialize ( int  maxRecursionLevels = 4)

Initialize file provider, scanning through all directories recursively and storing file information/bounding rectangles.

Parameters
maxRecursionLevelsMaximum depth in the file tree.
Returns
True on success, false on failure.

◆ PendingRequestCount()

int Maria::FileMapDataProvider::PendingRequestCount ( int  tileCacheId = -1) const
inlineoverridevirtual

Count of pending requests for specified tile cache.

Parameters
tileCacheIdTile cache id
Returns
Number of pending requests

Implements Maria::IMapTileProvider.

◆ RemoveRequest()

FullTileId FileMapDataProvider::RemoveRequest ( int  tileCacheId,
bool  removeNewest = false 
)
overridevirtual

Try to remove request from queue associated with a specific tile cache.

Parameters
tileCacheIdTile cache id
removeNewestIf true, remove newest request. Of false, remove oldest request
Returns
Id of removed tile, InvalidTileId on failure

Implements Maria::IMapTileProvider.

◆ setIndexPath()

void Maria::FileMapDataProvider::setIndexPath ( const std::string &  indexPath)

Set index file path. This should be a writeable directory where we can store index files for the input data sets. This is used for better performance during startup if you have many input data files.

Parameters
indexPathFull path to a writeable directory.

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