NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
navtex_interface.h
Go to the documentation of this file.
1 #ifndef SDK_ECDIS_NAVTEX_INTERFACE_H_
11 #define SDK_ECDIS_NAVTEX_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
16 #include <base/inc/forward_declarations.h>
23 
24 SDK_NAVTEX_BEGIN_NAMESPACE
25 
33 
37 {
39 
42 typedef enum NavtexPropertyIDs
43 {
45 
49 {
52 
56 {
60 
63 typedef SDKUInt32 NavtexMessageID;
65 static const NavtexMessageID kUndefinedNavtexMessageID = 0xFFFFFFFF;
66 
70 {
98 };
99 
103 {
122 };
123 
126 typedef SDKUInt8 NavtexMessageCode;
130 
133 typedef SDKUInt8 NavtexMessageErrRate;
137 
140 typedef SDKUInt64 NavtexMessageFlags;
142 {
147 };
148 
152 {
153  kNavtexMessageCoordinates_TypeUnknown = 0,
154  kNavtexMessageCoordinates_TypePoint,
155  kNavtexMessageCoordinates_TypeLine,
156  kNavtexMessageCoordinates_TypeArea,
157  kNavtexMessageCoordinates_TypeMultipoint,
158  kNavtexMessageCoordinates_TypeCircle,
159 };
160 
163 class INavtexFactory : public ISDKProperties
164 {
165 public:
167  virtual SDKResult SDK_CALLTYPE Open(
168  const SDKString& path, INavtexSP& navtex) throw() = 0;
169 
170  SDK_IMPLEMENT_IID(INavtexFactory)
171  SDK_END_INTERFACE(INavtexFactory)
172 };
173 SDK_DECLARE_IID(INavtexFactory)
174 
175 class INavtex : public ISDKProperties
178 {
179  public:
182  virtual SDKResult SDK_CALLTYPE AddMessage(
183  const SDK_NMEA_NAMESPACE::IParsedNMEASentenceDataSP& parsed_nmea_data,
184  NavtexMessageID& new_navtex_message_id) throw() = 0;
185 
187  virtual SDKResult SDK_CALLTYPE GetMessage(
188  const NavtexMessageID& message_id, INavtexMessageSP& message) const throw() = 0;
189 
206  virtual SDKResult SDK_CALLTYPE GetMessages(
207  const NavtexCoverageArea& cov_area_filter,
208  const NavtexMessageType& msg_type_filter,
209  const NavtexMessageCode& msg_code_filter,
210  const SDKTime& msg_time_filter,
211  const NavtexMessageErrRate& err_rate_filter,
212  INavtexMessagesEnumSP& msg_enum) const throw() = 0;
213 
215  virtual SDKResult SDK_CALLTYPE RemoveMessage(
216  const NavtexMessageID& message_id) throw() = 0;
217 
218  SDK_IMPLEMENT_IID(INavtex)
219  SDK_END_INTERFACE(INavtex)
220 };
221 SDK_DECLARE_IID(INavtex)
222 
223 class INavtexMessagesEnum : public ISDKProperties
226 {
227 public:
229  virtual SDKResult SDK_CALLTYPE Next(INavtexMessageSP& msg) const throw() = 0;
230 
232  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
233 
235  virtual SDKResult SDK_CALLTYPE GetCount(
236  SDKUInt32& messages_count) const throw() = 0;
237 
239  virtual SDKResult SDK_CALLTYPE GetMessage(
240  const SDKUInt32& message_index, INavtexMessageSP& msg) const throw() = 0;
241 
242  SDK_IMPLEMENT_IID(INavtexMessagesEnum)
243  SDK_END_INTERFACE(INavtexMessagesEnum)
244 };
245 SDK_DECLARE_IID(INavtexMessagesEnum)
246 
249 class INavtexMessage : public ISDKProperties
250 {
251 public:
253  virtual SDKResult SDK_CALLTYPE GetMessageID(
254  NavtexMessageID& message_id) const throw() = 0;
255 
257  virtual SDKResult SDK_CALLTYPE GetCoverageArea(
258  NavtexCoverageArea& coverage_area) const throw() = 0;
259 
261  virtual SDKResult SDK_CALLTYPE GetMessageType(
262  NavtexMessageType& message_type) const throw() = 0;
263 
265  virtual SDKResult SDK_CALLTYPE GetMessageCode(
266  NavtexMessageCode& message_code) const throw() = 0;
267 
269  virtual SDKResult SDK_CALLTYPE GetFrequencyIndicator(
270  SDK_NMEA_NAMESPACE::FrequencyIndicator& frequency_indicator) const throw() = 0;
271 
273  virtual SDKResult SDK_CALLTYPE GetMessageTime(
274  SDKTime& message_time) const throw() = 0;
275 
277  virtual SDKResult SDK_CALLTYPE GetMessageErrorRate(
278  NavtexMessageErrRate& error_rate) const throw() = 0;
279 
281  virtual SDKResult SDK_CALLTYPE GetMessage(
282  SDKString& message) const throw() = 0;
283 
285  virtual SDKResult SDK_CALLTYPE GetMessageFlags(
286  NavtexMessageFlags& message_flags) const throw() = 0;
288  virtual SDKResult SDK_CALLTYPE SetMessageFlags(
289  const NavtexMessageFlags& message_flags) throw() = 0;
290 
292  virtual SDKResult SDK_CALLTYPE GetObjects(
293  INavtexObjectsEnumSP& objects) const throw() = 0;
294 
295 
296  SDK_IMPLEMENT_IID(INavtexMessage)
297  SDK_END_INTERFACE(INavtexMessage)
298 };
299 SDK_DECLARE_IID(INavtexMessage)
300 
301 class INavtexObjectsEnum : public ISDKComponent
304 {
305 public:
307  virtual SDKResult SDK_CALLTYPE Next(INavtexMessageCoordinatesSP& msg) const throw() = 0;
308 
310  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
311  SDK_IMPLEMENT_IID(INavtexObjectsEnum)
312  SDK_END_INTERFACE(INavtexObjectsEnum)
313 };
314 SDK_DECLARE_IID(INavtexObjectsEnum)
315 
318 class INavtexMessageParser : public ISDKProperties
319 {
320 public:
322  virtual SDKResult SDK_CALLTYPE Parse(const SDKString& message) throw() = 0;
323 
325  virtual SDKResult SDK_CALLTYPE GetCount(SDKUInt32& count) const throw() = 0;
326 
328  virtual SDKResult SDK_CALLTYPE GetObject(SDKUInt32 index,
329  INavtexMessageCoordinatesSP& object) const throw() = 0;
330 
331  SDK_IMPLEMENT_IID(INavtexMessageParser)
332  SDK_END_INTERFACE(INavtexMessageParser)
333 };
334 SDK_DECLARE_IID(INavtexMessageParser)
335 
336 
337 class INavtexMessageCoordinates : public ISDKProperties
340 {
341 public:
343  virtual SDKResult SDK_CALLTYPE GetCount(
344  SDKUInt32& points_count) const throw() = 0;
345 
348  virtual SDKResult SDK_CALLTYPE GetPoint(
349  const SDKUInt32& point_idx, SDKGeoPoint& geo_point,
350  SDKUInt32* lat_first_pos, SDKUInt32* lat_last_pos,
351  SDKUInt32* lon_first_pos, SDKUInt32* lon_last_pos) const throw() = 0;
352 
355  virtual SDKResult SDK_CALLTYPE GetExpirationDate(SDKAny& date,
356  SDKUInt32* date_first_pos, SDKUInt32* date_last_pos) const throw() = 0;
357 
358  SDK_IMPLEMENT_IID(INavtexMessageCoordinates)
359  SDK_END_INTERFACE(INavtexMessageCoordinates)
360 };
361 SDK_DECLARE_IID(INavtexMessageCoordinates)
362 
363 SDK_NAVTEX_END_NAMESPACE
364 
365 #endif // SDK_ECDIS_NAVTEX_INTERFACE_H_
parsed_nmea_sentence_data_interface.h
A container for parsed NMEA sentence(s) data fields.
kNavtexCoverageArea_N
@ kNavtexCoverageArea_N
Coverage area N.
Definition: navtex_interface.h:85
INavtexMessagesEnum::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the enumeration sequence to the beginning.
NavtexMessageCoordinatesType
NavtexMessageCoordinatesType
Navtex message coordinate type.
Definition: navtex_interface.h:151
INavtexMessageParser
Parser Navtex message.
Definition: navtex_interface.h:318
nmea::FrequencyIndicator
FrequencyIndicator
Available values for sentence Frequency Indicator field.
Definition: parsed_nmea_sentence_value_ids.h:262
INavtexMessagesEnum::Next
virtual SDKResult SDK_CALLTYPE Next(INavtexMessageSP &msg) const =0
Retrieves the next message entry in the enumeration sequence.
kNavtexMessageType_AISMessage
@ kNavtexMessageType_AISMessage
AIS messages.
Definition: navtex_interface.h:111
INavtexFactory::Open
virtual SDKResult SDK_CALLTYPE Open(const SDKString &path, INavtexSP &navtex)=0
Opens a Navtex database.
NavtexMessageID
SDKUInt32 NavtexMessageID
Navtex message ID.
Definition: navtex_interface.h:63
kNavtexMessageCoordinates_Type
@ kNavtexMessageCoordinates_Type
Geometry type.
Definition: navtex_interface.h:57
kNavtexCoverageArea_I
@ kNavtexCoverageArea_I
Coverage area I.
Definition: navtex_interface.h:80
base_types.h
SDK base types.
kNavtexCoverageArea_Z
@ kNavtexCoverageArea_Z
Coverage area Z.
Definition: navtex_interface.h:97
kNavtexCoverageArea_B
@ kNavtexCoverageArea_B
Coverage area B.
Definition: navtex_interface.h:73
INavtex
Navtex database.
Definition: navtex_interface.h:177
kNavtexMessageType_NoticeToFisherman
@ kNavtexMessageType_NoticeToFisherman
Notice to fishermen (U.S. only - currently not used)
Definition: navtex_interface.h:117
kUndefinedNavtexMessageCode
static const NavtexMessageCode kUndefinedNavtexMessageCode
Undefined Navtex message code.
Definition: navtex_interface.h:129
kNavtexCoverageArea_S
@ kNavtexCoverageArea_S
Coverage area S.
Definition: navtex_interface.h:90
kNavtexCoverageArea_C
@ kNavtexCoverageArea_C
Coverage area C.
Definition: navtex_interface.h:74
kNavtexCoverageArea_X
@ kNavtexCoverageArea_X
Coverage area X.
Definition: navtex_interface.h:95
kNavtexCoverageArea_Y
@ kNavtexCoverageArea_Y
Coverage area Y.
Definition: navtex_interface.h:96
INavtexMessagesEnum
Navtex messages enumerator.
Definition: navtex_interface.h:225
kNavtexCoverageArea_H
@ kNavtexCoverageArea_H
Coverage area H.
Definition: navtex_interface.h:79
kNavtexCoverageArea_T
@ kNavtexCoverageArea_T
Coverage area T.
Definition: navtex_interface.h:91
INavtex::GetMessage
virtual SDKResult SDK_CALLTYPE GetMessage(const NavtexMessageID &message_id, INavtexMessageSP &message) const =0
Returns appropriate Navtex message by it's ID.
INavtexMessagesEnum::GetMessage
virtual SDKResult SDK_CALLTYPE GetMessage(const SDKUInt32 &message_index, INavtexMessageSP &msg) const =0
Returns Navtex message by index.
kNavtexCoverageArea_L
@ kNavtexCoverageArea_L
Coverage area L.
Definition: navtex_interface.h:83
properties_interface.h
Object generic properties interface.
NavtexMessageCode
SDKUInt8 NavtexMessageCode
Navtex message code.
Definition: navtex_interface.h:126
kNavtexMessageFlag_NoFlags
@ kNavtexMessageFlag_NoFlags
No message flags.
Definition: navtex_interface.h:143
kNavtexMessageType_MeteorologicalWarning
@ kNavtexMessageType_MeteorologicalWarning
Meteorological warning.
Definition: navtex_interface.h:106
kUndefinedNavtexMessageID
static const NavtexMessageID kUndefinedNavtexMessageID
Undefined Navtex message ID.
Definition: navtex_interface.h:65
kNavtexCoverageArea_Unknown
@ kNavtexCoverageArea_Unknown
Unknown coverage area.
Definition: navtex_interface.h:71
NavtexPropertyIDs
NavtexPropertyIDs
Generic Navtex properties.
Definition: navtex_interface.h:42
INavtexMessageCoordinates
Parsed Navtex objects.
Definition: navtex_interface.h:339
kNavtexMessageCoordinates_ExpirationTimeType
@ kNavtexMessageCoordinates_ExpirationTimeType
Expired time type.
Definition: navtex_interface.h:58
ecdislayer_const.h
The ecdislayer constants.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
INavtex::RemoveMessage
virtual SDKResult SDK_CALLTYPE RemoveMessage(const NavtexMessageID &message_id)=0
Removes Navtex message.
NavtexMessageFlagValues
NavtexMessageFlagValues
Definition: navtex_interface.h:141
kNavtexMessageType_NavigationalWarning
@ kNavtexMessageType_NavigationalWarning
Navigational warning.
Definition: navtex_interface.h:105
NavtexMessagePropertyIDs
NavtexMessagePropertyIDs
Generic Navtex properties.
Definition: navtex_interface.h:48
kNavtexMessageType_OtherNavAidMessage
@ kNavtexMessageType_OtherNavAidMessage
Other electronic navaid message.
Definition: navtex_interface.h:114
INavtexFactory
Navtex factory.
Definition: navtex_interface.h:163
SDKGeoPoint
Geo point in degree units.
Definition: geometry_base_types.h:1727
kUndefinedNavtexMessageErrRate
static const NavtexMessageErrRate kUndefinedNavtexMessageErrRate
Undefined Navtex message error rate.
Definition: navtex_interface.h:136
kNavtexCoverageArea_O
@ kNavtexCoverageArea_O
Coverage area O.
Definition: navtex_interface.h:86
kNavtexCoverageArea_G
@ kNavtexCoverageArea_G
Coverage area G.
Definition: navtex_interface.h:78
kNavtexCoverageArea_K
@ kNavtexCoverageArea_K
Coverage area K.
Definition: navtex_interface.h:82
INavtexMessagesEnum::GetCount
virtual SDKResult SDK_CALLTYPE GetCount(SDKUInt32 &messages_count) const =0
Returns total number of messages in collection.
NavtexMessageFlags
SDKUInt64 NavtexMessageFlags
Available Navtex message flag values.
Definition: navtex_interface.h:140
kNavtexCoverageArea_F
@ kNavtexCoverageArea_F
Coverage area F.
Definition: navtex_interface.h:77
kNavtexMessageFlag_Protected
@ kNavtexMessageFlag_Protected
Given message is protected (can't be deleted)
Definition: navtex_interface.h:145
kNavtexCoverageArea_V
@ kNavtexCoverageArea_V
Coverage area V.
Definition: navtex_interface.h:93
kNavtexMessage_ClearParsedObject
@ kNavtexMessage_ClearParsedObject
Clear parsed object.
Definition: navtex_interface.h:50
INavtex::GetMessages
virtual SDKResult SDK_CALLTYPE GetMessages(const NavtexCoverageArea &cov_area_filter, const NavtexMessageType &msg_type_filter, const NavtexMessageCode &msg_code_filter, const SDKTime &msg_time_filter, const NavtexMessageErrRate &err_rate_filter, INavtexMessagesEnumSP &msg_enum) const =0
Returns a set of Navtex messages, filtered by appropriate parameters cov_area_filter if given value i...
kNavtexMessageType_LORANMessage
@ kNavtexMessageType_LORANMessage
LORAN message.
Definition: navtex_interface.h:112
sdk_component_interface.h
Common base SDK interfaces.
kNavtexMessageType_MeteorologicalForecast
@ kNavtexMessageType_MeteorologicalForecast
Meteorological forecast.
Definition: navtex_interface.h:109
kNavtexMessageType_PilotServiceMessage
@ kNavtexMessageType_PilotServiceMessage
Pilot service message.
Definition: navtex_interface.h:110
kNavtexMessageType_SpecialServices2
@ kNavtexMessageType_SpecialServices2
Special services - allocation by IMO NAVTEX Panel.
Definition: navtex_interface.h:120
kNavtexCoverageArea_P
@ kNavtexCoverageArea_P
Coverage area P.
Definition: navtex_interface.h:87
platform.h
Describes the platform constants.
kNavtexMessageFlag_NotExamined
@ kNavtexMessageFlag_NotExamined
Given message was not examined yet.
Definition: navtex_interface.h:146
kNavtexMessageType_SARInfoAndPirateWarning
@ kNavtexMessageType_SARInfoAndPirateWarning
Search & rescue information, and pirate warning.
Definition: navtex_interface.h:108
NavtexCoverageArea
NavtexCoverageArea
List of known Navtex coverage areas.
Definition: navtex_interface.h:69
NavtexMessageType
NavtexMessageType
List of known Navtex message types.
Definition: navtex_interface.h:102
kNavtexMessageType_Environmental
@ kNavtexMessageType_Environmental
Environmental (U.S. only - currently not used)
Definition: navtex_interface.h:118
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
kNavtexCoverageArea_U
@ kNavtexCoverageArea_U
Coverage area U.
Definition: navtex_interface.h:92
kNavtexCoverageArea_Q
@ kNavtexCoverageArea_Q
Coverage area Q.
Definition: navtex_interface.h:88
INavtexObjectsEnum
Navtex objects enumerator.
Definition: navtex_interface.h:303
geometry_base_types.h
Geometry base types.
kNavtexCoverageArea_E
@ kNavtexCoverageArea_E
Coverage area E.
Definition: navtex_interface.h:76
kNavtexCoverageArea_A
@ kNavtexCoverageArea_A
Coverage area A.
Definition: navtex_interface.h:72
kNavtexCoverageArea_W
@ kNavtexCoverageArea_W
Coverage area W.
Definition: navtex_interface.h:94
kNavtexMessageType_TestTransmition
@ kNavtexMessageType_TestTransmition
Test transmissions (UK only - not official)
Definition: navtex_interface.h:116
kNavtexMessageType_NoMessageOnHand
@ kNavtexMessageType_NoMessageOnHand
No message on hand.
Definition: navtex_interface.h:121
kNavtexCoverageArea_R
@ kNavtexCoverageArea_R
Coverage area R.
Definition: navtex_interface.h:89
NavtexMessageCoordinatesPropertyIDs
NavtexMessageCoordinatesPropertyIDs
Navtex message coordinate properties.
Definition: navtex_interface.h:55
SDKTime
SDK_END_NAMESPACE typedef SDKInt64 SDKTime
Milliseconds from Unix epoch.
Definition: base_types.h:56
kNavtexCoverageArea_J
@ kNavtexCoverageArea_J
Coverage area J.
Definition: navtex_interface.h:81
parsed_nmea_sentence_value_ids.h
List of appropriate IDs for each of parsed items in NMEA sentence.
kNavtexMessageType_NavWarning_AdditionalToA
@ kNavtexMessageType_NavWarning_AdditionalToA
Navigational warning - additional to letter A (Should not be rejected by the receiver)
Definition: navtex_interface.h:115
kNavtexMessageFlag_Important
@ kNavtexMessageFlag_Important
Given message is important.
Definition: navtex_interface.h:144
kNavtexCoverageArea_D
@ kNavtexCoverageArea_D
Coverage area D.
Definition: navtex_interface.h:75
NavtexFactoryPropertyIDs
NavtexFactoryPropertyIDs
Generic Navtex Factory properties.
Definition: navtex_interface.h:36
NavtexMessageErrRate
SDKUInt8 NavtexMessageErrRate
Navtex message error rate (0%-100%)
Definition: navtex_interface.h:133
INavtexMessage
Single Navtex message.
Definition: navtex_interface.h:249
kNavtexMessageType_SATNAVMessage
@ kNavtexMessageType_SATNAVMessage
SATNAV message (i.e. GPS or GLONASS)
Definition: navtex_interface.h:113
kNavtexMessageType_IceReport
@ kNavtexMessageType_IceReport
Ice report.
Definition: navtex_interface.h:107
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
kNavtexMessageType_Unknown
@ kNavtexMessageType_Unknown
Unknown Navtex message type.
Definition: navtex_interface.h:104
kNavtexCoverageArea_M
@ kNavtexCoverageArea_M
Coverage area M.
Definition: navtex_interface.h:84
INavtex::AddMessage
virtual SDKResult SDK_CALLTYPE AddMessage(const SDK_NMEA_NAMESPACE::IParsedNMEASentenceDataSP &parsed_nmea_data, NavtexMessageID &new_navtex_message_id)=0
Tries to add new Navtex message into database parsed_nmea_data should contain result of parsing NMEA ...
kNavtexMessageType_SpecialServices
@ kNavtexMessageType_SpecialServices
Special services - allocation by IMO NAVTEX Panel.
Definition: navtex_interface.h:119