NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
nmea_sentence_source_data_interface.h
Go to the documentation of this file.
1 #ifndef SDK_ECDIS_NMEA_PARSER_NMEA_SENTENCE_SOURCE_DATA_INTERFACE_H_
11 #define SDK_ECDIS_NMEA_PARSER_NMEA_SENTENCE_SOURCE_DATA_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/sdk_results.h>
16 #include <base/inc/base_types.h>
20 
21 SDK_ECDISLAYER_BEGIN_NAMESPACE
22 
23 namespace nmea {
24 
27 typedef SDKUInt32 SourceValueID;
28 
30 
34 {
35  public:
37  virtual SDKResult SDK_CALLTYPE SetSourceValue(
38  const SourceValueID& id, const SDKAny& value) throw() = 0;
39 
41  virtual SDKResult SDK_CALLTYPE GetSourceValue(
42  const SourceValueID& id, SDKAny& value) const throw() = 0;
43 
44  template< typename T >
45  SDKResult GetSourceValueT(const SourceValueID& id, T& out) const throw()
46  {
47  try
48  {
49  ScopedAny value;
50  SDKResult res = GetSourceValue(id, value);
51  if (SDK_FAILED(res))
52  return res;
53  if (ANY_IS_EMPTY(&value))
54  return Err_NotExist;
55  return value.GetAs<T>(out) ? Ok : Err_InvalidArg;
56  }
57  catch (...) {}
58 
59  return Err_UnknownError;
60  }
61 
62  SDK_IMPLEMENT_IID(INMEASentenceSourceData)
63  SDK_END_INTERFACE(INMEASentenceSourceData)
64 };
65 SDK_DECLARE_IID(INMEASentenceSourceData)
66 
67 } // namespace nmea
68 
69 SDK_ECDISLAYER_END_NAMESPACE
70 
71 #endif // SDK_ECDIS_NMEA_PARSER_NMEA_SENTENCE_SOURCE_DATA_INTERFACE_H_
nmea::INMEASentenceSourceData
A container for source NMEA sentence data fields.
Definition: nmea_sentence_source_data_interface.h:33
sdk_results.h
A list of SDK error/return results.
base_types.h
SDK base types.
nmea::INMEASentenceSourceData::SetSourceValue
virtual SDKResult SDK_CALLTYPE SetSourceValue(const SourceValueID &id, const SDKAny &value)=0
Sets new value for NMEA sentence source data.
nmea::SourceValueID
SDKUInt32 SourceValueID
Source NMEA sentence value ID.
Definition: nmea_sentence_source_data_interface.h:27
sdk::Ok
@ Ok
Operation completed successfully.
Definition: sdk_results_enum.h:22
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
sdk::Err_InvalidArg
@ Err_InvalidArg
Wrong argument passed to function.
Definition: sdk_results_enum.h:27
sdk::Err_UnknownError
@ Err_UnknownError
Unknown error.
Definition: sdk_results_enum.h:52
sdk_component_interface.h
Common base SDK interfaces.
SDK_FAILED
#define SDK_FAILED(res)
Checks failed result.
Definition: sdk_results_enum.h:69
platform.h
Describes the platform constants.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::Err_NotExist
@ Err_NotExist
Not exist.
Definition: sdk_results_enum.h:26
nmea::INMEASentenceSourceData::GetSourceValue
virtual SDKResult SDK_CALLTYPE GetSourceValue(const SourceValueID &id, SDKAny &value) const =0
Returns appropriate NMEA sentence source data value, if exists.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk_any_handler.h
Wrappers for work with SDKAny instance.