MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSLS63DataLayer Class Reference
Inheritance diagram for TSLS63DataLayer:

Public Member Functions

 TSLS63DataLayer (TSLS63DataClient *dataClient, const TSLS63HWID *hw_id, const TSLCoordinateSystem *displayCoordinateSystem, const TSLS63DataLayerScaleBands *scaleBands)
 
 TSLS63DataLayer (const TSLS63HWID *hw_id, const TSLCoordinateSystem *displayCoordinateSystem, const TSLS63DataLayerScaleBands *scaleBands)
 
bool addCellPermit (const TSLS63CellPermit *permit, const TSLGeodeticExtent &cellExtent, const char *dataServerIDForPermit=NULL)
 
bool addCellPermit (const char *dataClientID, const TSLS63CellPermit *permit, const TSLGeodeticExtent &cellExtent, const char *dataServerIDForPermit=NULL)
 
bool addDataClient (const char *dataClientID, TSLS63DataClient *dataClient)
 
void cacheFlushLimit (int flush_limit)
 
int cacheFlushLimit ()
 
void cacheSize (int new_size)
 
int cacheSize ()
 
bool clearCache ()
 
void * operator new (size_t size) TSL_NO_THROW
 
void * operator new (size_t size, char *filename, int line)
 
- Public Member Functions inherited from TSLDataLayer
void addDrawingCallback (TSLDataLayerDrawingCallback *drawingCallback)
 
bool addFeatureRendering (const char *featureName, TSLFeatureID featureID)
 
bool addLoader (TSLFileLoader *loader, TSLLoaderAppCallback callback, void *arg, TSLAllLoadedCallback allLoadedCallback=0, void *arg2=0)
 
bool addPathList (const TSLPathList *path_list)
 
void cancelFlashback ()
 
bool clearFeatureRendering (const char *featureName, TSLFeatureID featureID)
 
TSLDataHandlercreateDataHandler (const char *config_file=0)
 
TSLHistoryVersion currentVersion () const
 
TSLDataHandlerdataHandler ()
 
const TSLDataHandlerdataHandler () const
 
void destroy ()
 
bool entityIsVisible (const TSLEntity *entity, const TSLDrawingSurface *drawingSurface) const
 
const TSLFeatureClassListfeatureList () const
 
const TSLFeatureClassListfeatureList (const char *detailLayerName) const
 
bool fileModificationTime (const char *filename, TSLTimeType &lastModificationTime)
 
TSLEntityfindEntity (TSLTMC x, TSLTMC y, TSLTMC aperture, int depth, const char *featureName=0, int drawingSurfaceID=-1)
 
bool findFile (const char *filename, TSLSimpleString &foundPath) const
 
void flashbackToTimestamp (TSLHistoryTimestamp timestamp, TSLLayerArchiveCallback archiveCallback, void *arg=0)
 
void flashbackToTimestamp (TSLHistoryTimestamp timestamp, TSLLayerArchiveTileCallback archiveTileCallback, void *arg=0)
 
void flashbackToVersion (TSLHistoryVersion version, TSLLayerArchiveCallback archiveCallback, void *arg=0)
 
void flashbackToVersion (TSLHistoryVersion version, TSLLayerArchiveTileCallback archiveTileCallback, void *arg=0)
 
bool getActiveLayerName (const TSLEnvelope &extent, double screenResolution, TSLSimpleString &activeLayerName) const
 
TSLEntityIteratorgetEntityIterator (const char *detailLayer, TSLSelector *selector=NULL, TSLEnvelope *extent=NULL, bool splitOptimisedPrimitives=true)
 
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeInt attribute, int *result) const
 
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeDouble attribute, double *result) const
 
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeBool attribute, bool *result) const
 
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributes *result) const
 
TSLFileLoadergetLoader ()
 
bool getMUExtent (double *x1, double *y1, double *x2, double *y2, int drawingSurfaceID=-1) const
 
bool getTMCExtent (TSLTMC *x1, TSLTMC *y1, TSLTMC *x2, TSLTMC *y2, int drawingSurfaceID=-1) const
 
bool getUUExtent (double *x1, double *y1, double *x2, double *y2, const TSLDrawingSurface *drawingSurface) const
 
bool importHistory (TSLHistoryVersion mapVersion, TSLHistoryTimestamp timestamp, TSLHistoryImportSet *historySet)
 
bool latLongToTMC (double latitude, double longitude, TSLTMC *x, TSLTMC *y, bool local=false) const
 
bool latLongToTMC (int num, double *latitudes, double *longitudes, TSLTMC *xs, TSLTMC *ys, bool local=false) const
 
TSLDataLayerTypeEnum layerType () const
 
bool loadData (const char *filename)
 
bool loadRendering (const char *filename)
 
void notifyChanged (bool changed=true)
 
TSLMapQueryquery (TSLTMC x1, TSLTMC y1, TSLTMC x2, TSLTMC y2, int depth=-1, const char *featureName=NULL, int drawingSurfaceID=-1) const
 
TSLMapQueryquery (TSLTMC x1, TSLTMC y1, TSLTMC x2, TSLTMC y2, TSLSelector *selector, int drawingSurfaceID=-1) const
 
const TSLCoordinateSystemgetCoordinateSystem () const
 
bool queryVersionHistory (const TSLEnvelope &extent, TSLVersionHistorySet &history)
 
void refreshFlashback ()
 
bool removeData ()
 
void releaseResources (int surfaceID)
 
bool saveRendering (const char *filename, TSLMapLinkVersion ver=TSL_CURRENT_MAPLINK_VERSION)
 
bool setCoordinateSystem (const TSLCoordinateSystem *coordinateSystem)
 
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeInt attribute, int value)
 
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeDouble attribute, double value)
 
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeBool attribute, bool value)
 
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributes *value)
 
bool TMCToLatLong (TSLTMC x, TSLTMC y, double *latitude, double *longitude, bool local=false, bool boundCheck=true) const
 
bool TMCToLatLong (int num, TSLTMC *xs, TSLTMC *ys, double *latitudes, double *longitudes, bool local=false) const
 
const TSLVersionHistorySetversionHistory () const
 

Constructor & Destructor Documentation

◆ TSLS63DataLayer() [1/2]

TSLS63DataLayer::TSLS63DataLayer ( TSLS63DataClient * dataClient,
const TSLS63HWID * hw_id,
const TSLCoordinateSystem * displayCoordinateSystem,
const TSLS63DataLayerScaleBands * scaleBands )

Constructor for the TSLS63DataLayer

Parameters
dataClientThe user implementation of the TSLS63DataClient class. This will be used to notify of errors and request additional information throughout the lifetime of the data layer
hw_idThe client's S63 HW_ID as assigned by the OEM
displayCoordinateSystemThe coordinate system to be used to display the S57 data. A copy is made of this instance and maintained by the layer.
scaleBandsThe scale bands thresholds that the layer should use to draw the data, A reference is maintained to this object so the user should maintain it for the lifetime of the layer. The contents may be modified at any time by the user except for during a render or in a different thread from the one used for rendering.

◆ TSLS63DataLayer() [2/2]

TSLS63DataLayer::TSLS63DataLayer ( const TSLS63HWID * hw_id,
const TSLCoordinateSystem * displayCoordinateSystem,
const TSLS63DataLayerScaleBands * scaleBands )

Member Function Documentation

◆ addCellPermit() [1/2]

bool TSLS63DataLayer::addCellPermit ( const char * dataClientID,
const TSLS63CellPermit * permit,
const TSLGeodeticExtent & cellExtent,
const char * dataServerIDForPermit = NULL )

This method will add cell permits to the data client whose id matches the supplied identifier. Before calling this method, ensure the data client has first been added to the layer.

Parameters
dataClientIDThe identifier of the data client to add the cell permits to.
permitThe cell permit to add to the media ingest manager.
cellExtentThe latitude/longitude extent of the cell associated with the cell permit.
dataServerIDForPermitCell permits conforming to version 1.0 of the S63 standard may not contain the data server ID of the data server that issued the permit. This information is required by MapLink to perform an ingest using the permit. Therefore if this information is not contained within the permit the value passed in here will be used instead. The OEM can determine if this value needs to be provided by querying the data server ID from a loaded cell permit. If the value returned is NULL then the two character ID of the data server that issued the cell permit must be provided here.

◆ addCellPermit() [2/2]

bool TSLS63DataLayer::addCellPermit ( const TSLS63CellPermit * permit,
const TSLGeodeticExtent & cellExtent,
const char * dataServerIDForPermit = NULL )

This method will add cell permits to the default data source. Before calling this method, ensure a data client has been first added to the layer.

Parameters
permitThe cell permit to add to the media ingest manager.
cellExtentThe latitude/longitude extent of the cell associated with the cell permit.
dataServerIDForPermitCell permits conforming to version 1.0 of the S63 standard may not contain the data server ID of the data server that issued the permit. This information is required by MapLink to perform an ingest using the permit. Therefore if this information is not contained within the permit the value passed in here will be used instead. The OEM can determine if this value needs to be provided by querying the data server ID from a loaded cell permit. If the value returned is NULL then the two character ID of the data server that issued the cell permit must be provided here.

◆ addDataClient()

bool TSLS63DataLayer::addDataClient ( const char * dataClientID,
TSLS63DataClient * dataClient )

Adds a data client to the data layer with a particular identifier. This data client will be used to retrieve the cell data which will be displayed.

Parameters
dataClientIDThe identifier of the data client.
dataClientThe data client which will be used to pass cell information on to the data layer.
Returns
true on success, false otherwise.

◆ cacheFlushLimit() [1/2]

int TSLS63DataLayer::cacheFlushLimit ( )

Query the current flush limit.

When the cache is full the system will remove the least recently used files to make room for the new data to load. The cache flush limit indicates the number of most recently used data files that the system will try keep in memory while flushing the cache. If the system cannot free enough memory and keep the flush limit number of files it will temporarily halve the flush limit until the cache memory usage is below 90% of the allowable cache size.

Returns the current flush limit.

◆ cacheFlushLimit() [2/2]

void TSLS63DataLayer::cacheFlushLimit ( int flush_limit)

Sets cache flush limit.

This method allows the user to set the cache flush limit for the TSLS63Data Layer. When the cache is full the system will remove the least recently used files to make room for the new data to load. The cache flush limit indicates the number of most recently used data files that the system will try keep in memory while flushing the cache. If the system cannot free enough memory and keep the flush limit number of files it will temporarily halve the flush limit until the cache memory usage is below 90% of the allowable cache size.

Parameters
flush_limitNumber of most recently used data files that the system will try to keep in memory while flushing the cache.

◆ cacheSize() [1/2]

int TSLS63DataLayer::cacheSize ( )

Query the amount of memory that the cache may currently use, in Kilobytes.

◆ cacheSize() [2/2]

void TSLS63DataLayer::cacheSize ( int new_size)

Set maximum size of the tile cache.

This method allows the user to set the amount of memory that the tile cache can use. To operate more efficiently the TSLS63DataLayer holds data in memory so that it does not need to reload data from the data client every time a draw request is made. The larger the cache size the more data can be held in memory and draw requests are handled much more efficiently. However the client application must find a compromise between a large cache size and the memory requirements of the application itself.

The default tile cache is 32Mb (32768 KB)

Parameters
new_sizeSize of the cache in kilobytes.

◆ clearCache()

bool TSLS63DataLayer::clearCache ( )

Clear the tile cache for this TSLS63DataLayer.

This method requests the TSLS63DataLayer to clear all cached data from memory. After a call to clearCache any draw operation involving the TSLS63DataLayer will re-request all required data from the data client.

Returns true on success, false otherwise.

◆ operator new() [1/2]

void * TSLS63DataLayer::operator new ( size_t size)

Allocation override for API redirection.

◆ operator new() [2/2]

void * TSLS63DataLayer::operator new ( size_t size,
char * filename,
int line )

When included in an MFC application in debug mode, the debug new expects this to be here. Override it and return the same as the normal one. The library must include it when compiled in release mode, since the user's application may be in debug mode.