NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
generic_configuration_interface.h
1 #ifndef SDK_BASE_CONFIGURATION_INTERFACE_H_
11 #define SDK_BASE_CONFIGURATION_INTERFACE_H_
12 
13 #include <base/inc/base_types.h>
14 #include <base/inc/sdk_ref_ptr.h>
16 
17 namespace sdk {
18 namespace base {
19 
20 FWD_DECL_INTERFACE(ISDKConfiguration);
21 FWD_DECL_INTERFACE(ISDKConfigurationEnumerator);
22 FWD_DECL_INTERFACE(ISDKConfigEntriesEnumerator);
23 FWD_DECL_INTERFACE(ISDKConfigEntryParser);
24 typedef SDKRefPtr<ISDKConfiguration> SDKConfigurationSP;
25 typedef SDKRefPtr<ISDKConfigurationEnumerator> SDKConfigurationEnumeratorSP;
26 typedef SDKRefPtr<ISDKConfigEntriesEnumerator> SDKConfigEntriesEnumeratorSP;
27 typedef SDKRefPtr<ISDKConfigEntryParser> SDKConfigEntryParserSP;
28 
29 static const wchar_t* kConfigProperty_EntryParser = L"entry_parser";
30 
35 {
36  public:
40  virtual SDKResult SDK_CALLTYPE GetSubConfig(const SDKString& path,
41  SDKConfigurationSP& config) throw() = 0;
42 
44  virtual SDKResult SDK_CALLTYPE AddSubConfig(const SDKString& path,
45  SDKConfigurationSP& config) throw() = 0;
46 
48  virtual SDKResult SDK_CALLTYPE DeleteSubConfig(const SDKString& path) throw() = 0;
49 
51  virtual SDKResult SDK_CALLTYPE EnumSubConfigs(
52  SDKConfigurationEnumeratorSP& configs) throw() = 0;
53 
55  virtual SDKResult SDK_CALLTYPE GetConfigEntry(const SDKString& name,
56  SDKAny& value) throw() = 0;
58  virtual SDKResult SDK_CALLTYPE SetConfigEntry(const SDKString& name,
59  const SDKAny& value) throw() = 0;
61  virtual SDKResult SDK_CALLTYPE AddConfigEntry(const SDKString& name,
62  const SDKAny& value) throw() = 0;
64  virtual SDKResult SDK_CALLTYPE DeleteConfigEntry(
65  const SDKString& name) throw() = 0;
67  virtual SDKResult SDK_CALLTYPE EnumConfigEntries(
68  SDKConfigEntriesEnumeratorSP& entries) throw() = 0;
70  virtual SDKResult SDK_CALLTYPE Flush() throw() = 0;
71 
72  SDK_IMPLEMENT_IID(ISDKConfiguration)
73  SDK_END_INTERFACE(ISDKConfiguration)
74 };
75 SDK_DECLARE_IID(ISDKConfiguration)
76 
80 {
81 public:
83  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
86  virtual SDKResult SDK_CALLTYPE Next(SDKString& name,
87  SDKConfigurationSP& config) throw() = 0;
88 
89  SDK_IMPLEMENT_IID(ISDKConfigurationEnumerator)
90  SDK_END_INTERFACE(ISDKConfigurationEnumerator)
91 };
92 SDK_DECLARE_IID(ISDKConfigurationEnumerator)
93 
97 {
98 public:
100  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
103  virtual SDKResult SDK_CALLTYPE Next(SDKString& name, SDKAny& value) throw() = 0;
104 
105  SDK_IMPLEMENT_IID(ISDKConfigEntriesEnumerator)
106  SDK_END_INTERFACE(ISDKConfigEntriesEnumerator)
107 };
108 SDK_DECLARE_IID(ISDKConfigEntriesEnumerator)
109 
110 /* \internal */
111 
115 {
116 public:
117  virtual SDKResult SDK_CALLTYPE GetName(SDKString& name) throw() = 0;
118  virtual SDKResult SDK_CALLTYPE GetType(SDKString& type) throw() = 0;
119  virtual SDKResult SDK_CALLTYPE Parse(const SDKString& value_str,
120  SDKAny& value) throw() = 0;
121 
122  SDK_IMPLEMENT_IID(ISDKConfigEntryParser)
123  SDK_END_INTERFACE(ISDKConfigEntryParser)
124 };
125 SDK_DECLARE_IID(ISDKConfigEntryParser)
126 
127 /* \endinternal */
128 
129 } // namespace base
130 } // namespace sdk
131 
132 #endif // SDK_BASE_CONFIGURATION_INTERFACE_H_
sdk::base::ISDKConfiguration::Flush
virtual SDKResult SDK_CALLTYPE Flush()=0
Writes any buffered data to the underlying device.
sdk::base::ISDKConfigEntriesEnumerator
Interface to configuration values enumerator.
Definition: generic_configuration_interface.h:96
base_types.h
SDK base types.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::base::ISDKConfigurationEnumerator::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the enumeration sequence to the beginning.
sdk::base::ISDKConfiguration::GetSubConfig
virtual SDKResult SDK_CALLTYPE GetSubConfig(const SDKString &path, SDKConfigurationSP &config)=0
Returns a sub-config, specified by path.
sdk::base::ISDKConfiguration::AddConfigEntry
virtual SDKResult SDK_CALLTYPE AddConfigEntry(const SDKString &name, const SDKAny &value)=0
Adds a config entry.
sdk::base::ISDKConfiguration
Provides access to members that return information and manage the configuration.
Definition: generic_configuration_interface.h:34
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::base::ISDKConfiguration::EnumConfigEntries
virtual SDKResult SDK_CALLTYPE EnumConfigEntries(SDKConfigEntriesEnumeratorSP &entries)=0
Enumerates config entries.
sdk::base::ISDKConfiguration::AddSubConfig
virtual SDKResult SDK_CALLTYPE AddSubConfig(const SDKString &path, SDKConfigurationSP &config)=0
Adds a sub-config, specified by path.
sdk::base::ISDKConfigurationEnumerator
Interface to configurations enumerator.
Definition: generic_configuration_interface.h:79
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.
sdk::base::ISDKConfigEntryParser
Interface to configuration entries parser.
Definition: generic_configuration_interface.h:114
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
sdk::base::ISDKConfiguration::EnumSubConfigs
virtual SDKResult SDK_CALLTYPE EnumSubConfigs(SDKConfigurationEnumeratorSP &configs)=0
Enumerates sub-configs.
sdk::base::ISDKConfiguration::SetConfigEntry
virtual SDKResult SDK_CALLTYPE SetConfigEntry(const SDKString &name, const SDKAny &value)=0
Sets a config entry.
sdk::base::ISDKConfiguration::GetConfigEntry
virtual SDKResult SDK_CALLTYPE GetConfigEntry(const SDKString &name, SDKAny &value)=0
Returns a config entry.
sdk::base::ISDKConfiguration::DeleteSubConfig
virtual SDKResult SDK_CALLTYPE DeleteSubConfig(const SDKString &path)=0
Deletes a sub-config, specified by path.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
sdk::base::ISDKConfiguration::DeleteConfigEntry
virtual SDKResult SDK_CALLTYPE DeleteConfigEntry(const SDKString &name)=0
Deletes a config entry.
sdk::base::ISDKConfigurationEnumerator::Next
virtual SDKResult SDK_CALLTYPE Next(SDKString &name, SDKConfigurationSP &config)=0
Returns the name and the ISDKConfiguration interface of the next config in the enumeration sequence.