400  wxString getLastError() { 
return errorMessage; }
 
  401  void setVerbose(
bool verbose);
 
  402  void setNoErrDialog(
bool val) { m_NoErrDialog = val; }
 
  404  int ingestHeader(
const wxString &senc_file_name);
 
  405  int ingest(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
 
  406             VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
 
  408  int ingest200(
const wxString &senc_file_name, S57ObjVector *pObjectVector,
 
  409                VE_ElementVector *pVEArray, VC_ElementVector *pVCArray);
 
  412  void SetLODMeters(
double meters) { m_LOD_meters = meters; }
 
  413  void setRegistrar(S57ClassRegistrar *registrar) { m_poRegistrar = registrar; }
 
  414  void setRefLocn(
double lat, 
double lon) {
 
  418  void setOutstream(
Osenc_outstream *stream) { m_pauxOutstream = stream; }
 
  419  void setInstream(
Osenc_instream *stream) { m_pauxInstream = stream; }
 
  421  wxString getUpdateDate() { 
return m_LastUpdateDate; }
 
  422  wxString getBaseDate() { 
return m_sdate000; }
 
  424  wxString getSENCFileCreateDate() { 
return m_readFileCreateDate; }
 
  426  int getSencReadVersion() { 
return m_senc_file_read_version; }
 
  427  wxString getSENCReadBaseEdition() { 
return m_read_base_edtn; }
 
  428  int getSENCReadLastUpdate() { 
return m_read_last_applied_update; }
 
  429  int getSENCReadScale() { 
return m_Chart_Scale; }
 
  430  wxString getReadName() { 
return m_Name; }
 
  431  wxString getReadID() { 
return m_ID; }
 
  432  Extent &getReadExtent() { 
return m_extent; }
 
  434  SENCFloatPtrArray &getSENCReadAuxPointArray() { 
return m_AuxPtrArray; }
 
  435  std::vector<int> &getSENCReadAuxPointCountArray() { 
return m_AuxCntArray; }
 
  436  SENCFloatPtrArray &getSENCReadNOCOVRPointArray() { 
return m_NoCovrPtrArray; }
 
  437  std::vector<int> &getSENCReadNOCOVRPointCountArray() {
 
  438    return m_NoCovrCntArray;
 
  441  int createSenc200(
const wxString &FullPath000, 
const wxString &SENCFileName,
 
  442                    bool b_showProg = 
true);
 
  445                                          S57Reader *poReader);
 
  447                                               S57Reader *poReader);
 
  449  void InitializePersistentBuffer(
void);
 
  450  unsigned char *getBuffer(
size_t length);
 
  452  int getNativeScale() { 
return m_native_scale; }
 
  453  int GetBaseFileInfo(
const wxString &FullPath000,
 
  454                      const wxString &SENCFileName);
 
  456  std::unique_lock<std::mutex> lockCR;
 
  461  int ingestCell(OGRS57DataSource *poS57DS, 
const wxString &FullPath000,
 
  462                 const wxString &working_dir);
 
  463  int ValidateAndCountUpdates(
const wxFileName file000, 
const wxString CopyDir,
 
  464                              wxString &LastUpdateDate, 
bool b_copyfiles);
 
  465  int GetUpdateFileArray(
const wxFileName file000, wxArrayString *UpFiles);
 
  466  bool GetBaseFileAttr(
const wxString &FullPath000);
 
  467  unsigned char *getObjectVectorIndexTable(S57Reader *poReader,
 
  468                                           OGRFeature *poFeature,
 
  471  OGRFeature *GetChartFirstM_COVR(
int &catcov, S57Reader *pENCReader,
 
  472                                  S57ClassRegistrar *poRegistrar);
 
  473  OGRFeature *GetChartNextM_COVR(
int &catcov, S57Reader *pENCReader);
 
  474  bool CreateCOVRTables(S57Reader *pENCReader, S57ClassRegistrar *poRegistrar);
 
  477  void CreateSENCRecord124(OGRFeature *pFeature, 
Osenc_outstream *stream,
 
  478                           int mode, S57Reader *poReader);
 
  479  void CreateSENCVectorEdgeTable(
Osenc_outstream *stream, S57Reader *poReader);
 
  480  void CreateSENCConnNodeTable(
Osenc_outstream *stream, S57Reader *poReader);
 
  482  bool CreateSENCRecord200(OGRFeature *pFeature, 
Osenc_outstream *stream,
 
  483                           int mode, S57Reader *poReader);
 
  484  bool WriteFIDRecord200(
Osenc_outstream *stream, 
int nOBJL, 
int featureID,
 
  487                            std::string payload);
 
  492  bool CreateAreaFeatureGeometryRecord200(S57Reader *poReader,
 
  493                                          OGRFeature *pFeature,
 
  495  bool CreateLineFeatureGeometryRecord200(S57Reader *poReader,
 
  496                                          OGRFeature *pFeature,
 
  498  bool CreateMultiPointFeatureGeometryRecord200(OGRFeature *pFeature,
 
  501  std::string GetFeatureAcronymFromTypecode(
int typeCode);
 
  502  std::string GetAttributeAcronymFromTypecode(
int typeCode);
 
  505                                unsigned char **bytes_consumed);
 
  506  bool CalculateExtent(S57Reader *poReader, S57ClassRegistrar *poRegistrar);
 
  508  wxString errorMessage;
 
  512  wxString m_FullPath000;
 
  515  int m_senc_file_read_version;
 
  516  int m_senc_file_create_version;
 
  517  wxString m_read_base_edtn;
 
  518  int m_read_last_applied_update;
 
  522  wxDateTime m_date000;
 
  529  int m_last_applied_update;
 
  530  wxString m_LastUpdateDate;
 
  532  wxString m_readFileCreateDate;
 
  536  std::unordered_map<int, int> m_vector_helper_hash;
 
  538  S57ClassRegistrar *m_poRegistrar;
 
  539  wxArrayString m_tmpup_array;
 
  541  wxGenericProgressDialog *m_ProgDialog;
 
  543  unsigned char *pBuffer;
 
  551  int *m_pCOVRTablePoints;  
 
  553  float **m_pCOVRTable;  
 
  556  int m_nNoCOVREntries;       
 
  557  int *m_pNoCOVRTablePoints;  
 
  559  float **m_pNoCOVRTable;     
 
  563  SENCFloatPtrArray m_AuxPtrArray;
 
  564  std::vector<int> m_AuxCntArray;
 
  565  SENCFloatPtrArray m_NoCovrPtrArray;
 
  566  std::vector<int> m_NoCovrCntArray;
 
  575  wxArrayString *m_UpFiles;
 
  576  bool m_bPrivateRegistrar;