NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
route_calculator_interface.h
Go to the documentation of this file.
1 
9 #ifndef SDK_ROUTE_CALCULATOR_INTERFACE_H_
10 #define SDK_ROUTE_CALCULATOR_INTERFACE_H_
11 
13 #include <base/inc/sdk_uuid.h>
17 
18 SDK_ECDISLAYER_BEGIN_NAMESPACE
19 
20 namespace routes {
21 
22 FWD_DECL_INTERFACE(IRouteCalculator);
23 
27  kRouteCalculatorParameter_DefaultSpeed = 0
28 };
29 
33 public:
35  virtual SDKResult SDK_CALLTYPE Initialize(
36  const sdk::gdb::routes::IRouteSP& route,
37  const ISDKParametersSP& parameters) throw() = 0;
38 
40  virtual SDKResult SDK_CALLTYPE GetRouteData(
41  const ISDKParametersSP& input_parameters,
42  VoyageProperties voyage_property,
43  SDKAny& data) const throw() = 0;
44 
46  template<class T>
47  SDKResult GetRouteDataT(const ISDKParametersSP& input_parameters,
48  VoyageProperties voyage_property, T& out_value) const throw() {
49  ScopedAny value;
50  SDKResult res = GetRouteData(input_parameters, voyage_property, value);
51  if (SDK_FAILED(res))
52  return res;
53  if (ANY_IS_EMPTY(&value))
54  return kSDKResult_NotExist;
55  return value.GetAs< T >(out_value) ? kSDKResult_Succeeded :
57  }
58 
59  SDK_IMPLEMENT_IID(IRouteCalculator)
60  SDK_END_INTERFACE(IRouteCalculator)
61 };
62 SDK_DECLARE_IID(IRouteCalculator)
63 
64 } // namespace routes
65 
66 SDK_ECDISLAYER_END_NAMESPACE
67 
68 #endif // SDK_ROUTE_CALCULATOR_INTERFACE_H_
route_storage_interfaces.h
Route storage and route.
routes::IRouteCalculator
Route calculator interface.
Definition: route_calculator_interface.h:32
kSDKResult_Succeeded
static const SDKResult kSDKResult_Succeeded
Operation completed successfully.
Definition: sdk_results.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_component_interface.h
Common base SDK interfaces.
SDK_FAILED
#define SDK_FAILED(res)
Checks failed result.
Definition: sdk_results_enum.h:69
routes::IRouteCalculator::GetRouteData
virtual SDKResult SDK_CALLTYPE GetRouteData(const ISDKParametersSP &input_parameters, VoyageProperties voyage_property, SDKAny &data) const =0
Returns calculated data.
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
routes::IRouteCalculator::Initialize
virtual SDKResult SDK_CALLTYPE Initialize(const sdk::gdb::routes::IRouteSP &route, const ISDKParametersSP &parameters)=0
Initializes calculator with a route.
kSDKResult_NotExist
static const SDKResult kSDKResult_NotExist
Something does not exist.
Definition: sdk_results.h:79
routes::RouteCalculatorParametersEnum
RouteCalculatorParametersEnum
Route calculator parameters.
Definition: route_calculator_interface.h:26
kSDKResult_InvalidArgument
static const SDKResult kSDKResult_InvalidArgument
Wrong argument passed to function.
Definition: sdk_results.h:55
routes::IRouteCalculator::GetRouteDataT
SDKResult GetRouteDataT(const ISDKParametersSP &input_parameters, VoyageProperties voyage_property, T &out_value) const
Returns calculated data.
Definition: route_calculator_interface.h:47
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
voyage_properties.h
Voyage properties.
sdk_uuid.h
Definition of the Universal Unique Identifier.
routes::VoyageProperties
VoyageProperties
Voyage properties.
Definition: voyage_properties.h:20