105 bool LoadBinary(
const wxString &filename, ArrayOfCDI &dir_array_check);
106 bool SaveBinary(
const wxString &filename) {
107 return ChartDatabase::Write(filename);
110 int BuildChartStack(
ChartStack *cstk,
float lat,
float lon,
int groupIndex);
111 int BuildChartStack(
ChartStack *cstk,
float lat,
float lon,
int db_add,
115 wxString GetFullPath(
ChartStack *ps,
int stackindex);
116 int GetStackChartScale(
ChartStack *ps,
int stackindex,
char *buf,
int nbuf);
117 int GetCSPlyPoint(
ChartStack *ps,
int stackindex,
int plyindex,
float *lat,
119 ChartTypeEnum GetCSChartType(
ChartStack *ps,
int stackindex);
120 ChartFamilyEnum GetCSChartFamily(
ChartStack *ps,
int stackindex);
121 bool SearchForChartDir(
const wxString &dir);
123 bool bLargest, ChartTypeEnum New_Type,
124 ChartFamilyEnum New_Family_Fallback);
126 wxArrayPtrVoid *GetChartCache(
void) {
return pChartCache; }
129 int GetStackEntry(
ChartStack *ps, wxString fp);
130 bool IsChartInCache(
int dbindex);
131 bool IsChartInCache(wxString path);
132 bool IsChartInGroup(
const int db_index,
const int group);
133 bool IsENCInGroup(
const int group);
134 bool IsNonMBTileInGroup(
const int group);
137 ChartInitFlag iflag = FULL_INIT);
138 ChartBase *OpenChartFromDB(
int index, ChartInitFlag init_flag);
139 ChartBase *OpenChartFromDBAndLock(
int index, ChartInitFlag init_flag,
141 ChartBase *OpenChartFromDBAndLock(wxString chart_path,
142 ChartInitFlag init_flag);
143 ChartBase *OpenChartFromDB(wxString chart_path, ChartInitFlag init_flag);
145 void ApplyColorSchemeToCachedCharts(ColorScheme cs);
147 void PurgeCachePlugins();
148 bool DeleteCacheChart(
ChartBase *pChart);
150 void LockCache(
bool bl) { m_b_locked = bl; }
151 void LockCache() { m_b_locked =
true; }
152 void UnLockCache() { m_b_locked =
false; }
153 bool IsCacheLocked() {
return m_b_locked; }
154 wxXmlDocument GetXMLDescription(
int dbIndex,
bool b_getGeom);
156 bool LockCacheChart(
int index);
157 bool IsChartLocked(
int index);
159 void UnLockCacheChart(
int index);
160 void UnLockAllCacheCharts();
162 void ClearCacheInUseFlags(
void);
163 void PurgeCacheUnusedCharts(
double factor);
165 bool IsBusy() {
return m_b_busy; }
166 bool CheckExclusiveTileGroup(
int canvasIndex);
167 bool CheckAnyCanvasExclusiveTileGroup();
170 virtual ChartBase *GetChart(
const wxChar *theFilePath,
174 InitReturn CreateChartTableEntry(wxString full_name,
ChartTableEntry *pEntry);
176 int SearchDirAndAddSENC(wxString &dir,
bool bshow_prog,
bool bupdate);
177 bool CreateS57SENCChartTableEntry(wxString full_name,
ChartTableEntry *pEntry,
179 bool CheckPositionWithinChart(
int index,
float lat,
float lon);
180 ChartBase *OpenChartUsingCache(
int dbindex, ChartInitFlag init_flag);
181 CacheEntry *FindOldestDeleteCandidate(
bool blog);
182 void DeleteCacheEntry(
int i,
bool bDelTexture =
false,
183 const wxString &msg = wxEmptyString);
184 void DeleteCacheEntry(
CacheEntry *pce,
bool bDelTexture =
false,
185 const wxString &msg = wxEmptyString);
187 wxArrayPtrVoid *pChartCache;
193 wxCriticalSection m_critSect;
194 wxMutex m_cache_mutex;
195 int m_checkGroupIndex[2];
196 bool m_checkedTileOnly[2];
Represents an entry in the chart table, containing information about a single chart.