NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
s63_cell_permits_reader_writer_interface.h
Go to the documentation of this file.
1 #ifndef SDK_S63_CELL_PERMITS_READER_WRITER_INTERFACE_H_
11 #define SDK_S63_CELL_PERMITS_READER_WRITER_INTERFACE_H_
12 
13 #include <base/inc/sdk_results.h>
15 #include <base/inc/sdk_ref_ptr.h>
18 #include <base/inc/interfaces/crypto/base_cryptor_interface.h>
23 
24 namespace sdk {
25 namespace s63 {
26 
27 // Classes declared in this file
28 FWD_DECL_INTERFACE(IS63CellPermitsReaderWriter);
29 FWD_DECL_INTERFACE(IS63CellPermitsReaderWriterUtils);
30 typedef sdk::SDKRefPtr<IS63CellPermitsReaderWriter> S63CellPermitsReaderWriterSP;
31 typedef sdk::SDKRefPtr<IS63CellPermitsReaderWriterUtils> S63CellPermitsReaderWriterUtilsSP;
32 
35 static const wchar_t kPermitTXTFileName[] = L"PERMIT.TXT";
36 
39 // Default Dataserver ID for permits file format V1, which does not have such field
40 // For V2 this property value will be ignored
41 // Property value is an SDKString with two letters dataserver ID
43  L"CellPermitsReaderWriterProp_DefaultDataserverID";
44 
45 // Suppress SSE19 logging flag
46 static const wchar_t kCellPermitsReaderWriterProp_SuppressSSE19Logging[] =
47  L"CellPermitsReaderWriterProp_SuppressSSE19Logging";
48 
52 {
53  public:
60  virtual SDKResult SDK_CALLTYPE LoadCellPermits(
61  const sdk::base::SDKStreamSP& stream,
62  const sdk::crypt::CryptoKeySP& crypto_key,
63  const sdk::crypt::BaseCryptorSP& cryptor,
64  sdk::s63::S63CellPermitsStorageSP& storage,
65  SDKTime& permits_date, S63CellPermitsFileFormat& file_format) const throw() = 0;
66 
70  virtual SDKResult SDK_CALLTYPE LoadCellPermitsLazy(
71  const sdk::base::SDKStreamSP& stream,
72  const sdk::crypt::CryptoKeySP& crypto_key,
73  const sdk::crypt::BaseCryptorSP& cryptor,
74  sdk::s63::S63CellPermitsStorageSP& storage,
75  SDKTime& permits_date, S63CellPermitsFileFormat& file_format) const throw() = 0;
76 
79  virtual SDKResult SDK_CALLTYPE SaveCellPermits(
80  const sdk::s63::S63CellPermitsStorageSP& storage,
81  const sdk::crypt::CryptoKeySP& crypto_key,
82  const sdk::crypt::BaseCryptorSP& cryptor,
83  const SDKTime& permits_date_time, const S63CellPermitsFileFormat& file_format,
84  const sdk::base::SDKStreamSP& stream) const throw() = 0;
85 
93  virtual SDKResult SDK_CALLTYPE SaveOriginalCellPermits(
94  const sdk::s63::S63CellPermitsStorageSP& storage,
95  const sdk::base::SDKStreamSP& stream) const throw() = 0;
96 
98  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKString& id, const SDKAny& value) throw() = 0;
99  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKString& id, SDKAny& value) const throw() = 0;
100 
102  SDK_IMPLEMENT_IID(IS63CellPermitsReaderWriter)
103  SDK_END_INTERFACE(IS63CellPermitsReaderWriter)
104 };
105 SDK_DECLARE_IID(IS63CellPermitsReaderWriter)
106 
110 {
111 public:
113  virtual SDKResult FindPermitsFile(const SDKString& folder_path,
114  const HW_ID& hw_id, SDKString& permits_file_path) const throw() = 0;
115 
123  const base::SDKResourceStorageSP& storage,
124  const HW_ID& hw_id,
125  base::SDKResourceSP& permits_resource) const throw() = 0;
126 
128  SDK_IMPLEMENT_IID(IS63CellPermitsReaderWriterUtils)
129  SDK_END_INTERFACE(IS63CellPermitsReaderWriterUtils)
130 };
131 SDK_DECLARE_IID(IS63CellPermitsReaderWriterUtils)
132 
133 } // namespace s63
134 } // namespace sdk
135 
136 #endif // SDK_S63_CELL_PERMITS_READER_WRITER_INTERFACE_H_
sdk_results.h
A list of SDK error/return results.
sdk::s63::kCellPermitsReaderWriterProp_DefaultDataserverID
static const wchar_t kCellPermitsReaderWriterProp_DefaultDataserverID[]
Available Cell permits reader writer properties.
Definition: s63_cell_permits_reader_writer_interface.h:42
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
generic_resource_interface.h
Generic data resource interfaces.
s63_cell_permits_interface.h
Set of interfaces for S-63 cell permits description.
sdk::s63::S63CellPermitsFileFormat
S63CellPermitsFileFormat
Available S-63 cell permit file formats.
Definition: s63_cell_permits_interface.h:88
sdk::s63::IS63CellPermitsReaderWriter
Interface for reading/writing S63 cell permit files.
Definition: s63_cell_permits_reader_writer_interface.h:51
sdk::s63::IS63CellPermitsReaderWriter::LoadCellPermits
virtual SDKResult SDK_CALLTYPE LoadCellPermits(const sdk::base::SDKStreamSP &stream, const sdk::crypt::CryptoKeySP &crypto_key, const sdk::crypt::BaseCryptorSP &cryptor, sdk::s63::S63CellPermitsStorageSP &storage, SDKTime &permits_date, S63CellPermitsFileFormat &file_format) const =0
Loads the cell permits list from a specified stream and creates an S63CellPermitsStorageSP instance.
sdk::s63::IS63CellPermitsReaderWriter::SaveOriginalCellPermits
virtual SDKResult SDK_CALLTYPE SaveOriginalCellPermits(const sdk::s63::S63CellPermitsStorageSP &storage, const sdk::base::SDKStreamSP &stream) const =0
Saves the cell permits data to a specified stream without decoding/encoding them, just stores the ori...
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
stream_interface.h
Generic data stream interface.
SDKRefPtr
A smart pointer class for managing SDK components interface pointers.
Definition: sdk_ref_ptr.h:23
sdk_component_interface.h
Common base SDK interfaces.
crypto_key_interface.h
Base cryptographic key interface.
sdk::s63::IS63CellPermitsReaderWriter::SaveCellPermits
virtual SDKResult SDK_CALLTYPE SaveCellPermits(const sdk::s63::S63CellPermitsStorageSP &storage, const sdk::crypt::CryptoKeySP &crypto_key, const sdk::crypt::BaseCryptorSP &cryptor, const SDKTime &permits_date_time, const S63CellPermitsFileFormat &file_format, const sdk::base::SDKStreamSP &stream) const =0
Saves the cell permits data to a specified stream, encodes them using the new crypto key.
sdk::ISDKNamedProperties
Provides access to members that control the named properties.
Definition: named_properties_interface.h:29
s63_keys_conversion_interface.h
An interface, which allows to perform conversions on HW_ID, M_ID, M_KEY i.e. allows to get/parse the ...
sdk::s63::kPermitTXTFileName
static const wchar_t kPermitTXTFileName[]
Reserved name for a file with permits in S-63.
Definition: s63_cell_permits_reader_writer_interface.h:35
sdk::s63::IS63CellPermitsReaderWriterUtils
Utilities interface of S-63 cell permits file reader/writer.
Definition: s63_cell_permits_reader_writer_interface.h:109
sdk::s63::IS63CellPermitsReaderWriter::LoadCellPermitsLazy
virtual SDKResult SDK_CALLTYPE LoadCellPermitsLazy(const sdk::base::SDKStreamSP &stream, const sdk::crypt::CryptoKeySP &crypto_key, const sdk::crypt::BaseCryptorSP &cryptor, sdk::s63::S63CellPermitsStorageSP &storage, SDKTime &permits_date, S63CellPermitsFileFormat &file_format) const =0
Lazy-loads the cell permits list from a specified stream and creates an S63CellPermitsStorageSP insta...
SDKTime
SDK_END_NAMESPACE typedef SDKInt64 SDKTime
Milliseconds from Unix epoch.
Definition: base_types.h:56
sdk::s63::IS63CellPermitsReaderWriterUtils::FindPermitsInStorage
virtual SDKResult FindPermitsInStorage(const base::SDKResourceStorageSP &storage, const HW_ID &hw_id, base::SDKResourceSP &permits_resource) const =0
Finds proper permits in a specified storage using a specified HW_ID.
named_properties_interface.h
Object generic named properties interface.
sdk::s63::IS63CellPermitsReaderWriterUtils::FindPermitsFile
virtual SDKResult FindPermitsFile(const SDKString &folder_path, const HW_ID &hw_id, SDKString &permits_file_path) const =0
Finds a proper permits file in a filesystem folder using a known HW_ID.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.