NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
s57_dictionary_interface.h
Go to the documentation of this file.
1 #ifndef SDK_S57_DICTIONARY_INTERFACE_H_
11 #define SDK_S57_DICTIONARY_INTERFACE_H_
12 
13 #include <base/inc/platform.h>
14 #include <base/inc/base_types.h>
17 #include <base/inc/sdk_ref_ptr.h>
18 
19 namespace sdk {
20 namespace s63 {
21 
26 typedef SDKUInt32 S57AttributeCode;
28 typedef SDKString S57AttributeName;
30 typedef SDKString S57AttributeAcronym;
32 typedef wchar_t S57AttributeType;
34 typedef SDKString S57AttributeClass;
36 
52 
56 static const wchar_t kS57AttrClass_FeatureObjectAttributes[] =
57  L"Feature object attributes";
60  L"National language attributes";
63  L"Spatial and meta object attributes";
65 
67 class IS57Attribute;
68 typedef sdk::SDKRefPtr<IS57Attribute> S57AttributeSP;
69 
71 class IS57Attribute : public sdk::ISDKComponent
72 {
73 public:
75  virtual SDKResult SDK_CALLTYPE GetCode(S57AttributeCode& code) const throw() = 0;
77  virtual SDKResult SDK_CALLTYPE GetName(S57AttributeName& name) const throw() = 0;
79  virtual SDKResult SDK_CALLTYPE GetAcronym(S57AttributeAcronym& acronym) const throw() = 0;
81  virtual SDKResult SDK_CALLTYPE GetType(S57AttributeType& type) const throw() = 0;
83  virtual SDKResult SDK_CALLTYPE GetClass(S57AttributeClass& cls) const throw() = 0;
84 
86  SDK_IMPLEMENT_IID(IS57Attribute)
87  SDK_END_INTERFACE(IS57Attribute)
88 };
89 SDK_DECLARE_IID(IS57Attribute)
90 
94 typedef sdk::SDKRefPtr<IS57AttributesIterator> S57AttributesIteratorSP;
95 
97 class IS57AttributesIterator : public sdk::ISDKComponent
98 {
99 public:
101  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
103  virtual SDKResult SDK_CALLTYPE Next(S57AttributeSP& attribute) throw() = 0;
104 
106  SDK_IMPLEMENT_IID(IS57AttributesIterator)
107  SDK_END_INTERFACE(IS57AttributesIterator)
108 };
109 SDK_DECLARE_IID(IS57AttributesIterator)
110 
111 typedef SDKUInt32 S57FOClassCode;
117 typedef SDKString S57FOClassName;
119 typedef SDKString S57FOClassAcronym;
121 typedef SDKUInt32 S57FOClassPrimitives;
123 typedef SDKString S57FOClassType;
125 
135 
139 static const wchar_t kS57FOClassType_GeoObjectClasses[] =
140  L"Geo object classes";
142 static const wchar_t kS57FOClassType_MetaObjectClasses[] =
143  L"Meta object classes";
146  L"Collection object classes";
149  L"Cartographic object classes";
151 
153 class IS57FOClass;
154 typedef sdk::SDKRefPtr<IS57FOClass> S57FOClassSP;
155 
158 class IS57FOClass : public sdk::ISDKComponent
159 {
160 public:
162  virtual SDKResult SDK_CALLTYPE GetCode(
163  S57FOClassCode& code) const throw() = 0;
165  virtual SDKResult SDK_CALLTYPE GetName(
166  S57FOClassName& name) const throw() = 0;
168  virtual SDKResult SDK_CALLTYPE GetAcronym(
169  S57FOClassAcronym& acronym) const throw() = 0;
171  virtual SDKResult SDK_CALLTYPE GetPrimitives(
172  S57FOClassPrimitives& type) const throw() = 0;
174  virtual SDKResult SDK_CALLTYPE GetType(
175  S57AttributeClass& cls) const throw() = 0;
176 
179  virtual SDKResult SDK_CALLTYPE GetAttributesSubsetA(
180  S57AttributesIteratorSP& iterator) const throw() = 0;
183  virtual SDKResult SDK_CALLTYPE GetAttributesSubsetB(
184  S57AttributesIteratorSP& iterator) const throw() = 0;
187  virtual SDKResult SDK_CALLTYPE GetAttributesSubsetC(
188  S57AttributesIteratorSP& iterator) const throw() = 0;
189 
192  virtual SDKResult SDK_CALLTYPE GetAttributesSubsetABC(
193  S57AttributesIteratorSP& iterator) const throw() = 0;
194 
196  SDK_IMPLEMENT_IID(IS57FOClass)
197  SDK_END_INTERFACE(IS57FOClass)
198 };
199 SDK_DECLARE_IID(IS57FOClass)
200 
204 typedef sdk::SDKRefPtr<IS57FOClassesIterator> S57FOClassesIteratorSP;
205 
208 class IS57FOClassesIterator : public sdk::ISDKComponent
209 {
210 public:
212  virtual SDKResult SDK_CALLTYPE Reset() throw() = 0;
214  virtual SDKResult SDK_CALLTYPE Next(S57FOClassSP& fo_class) throw() = 0;
215 
217  SDK_IMPLEMENT_IID(IS57FOClassesIterator)
218  SDK_END_INTERFACE(IS57FOClassesIterator)
219 };
220 SDK_DECLARE_IID(IS57FOClassesIterator)
221 
222 class IS57Dictionary;
225 typedef sdk::SDKRefPtr<IS57Dictionary> S57DictionarySP;
226 
229 class IS57Dictionary : public sdk::ISDKComponent
230 {
231  public:
233  virtual SDKResult SDK_CALLTYPE GetAttributeByCode(
234  const S57AttributeCode& code,
235  S57AttributeSP& attribute) const throw() = 0;
236 
238  virtual SDKResult SDK_CALLTYPE GetAttributeByAcronym(
239  const S57AttributeAcronym& acronym,
240  S57AttributeSP& attribute) const throw() = 0;
241 
244  virtual SDKResult SDK_CALLTYPE GetAttributesIterator(
245  S57AttributesIteratorSP& iterator) const throw() = 0;
246 
248  virtual SDKResult SDK_CALLTYPE GetFOClassByCode(const S57FOClassCode& code,
249  S57FOClassSP& fo_class) const throw() = 0;
250 
252  virtual SDKResult SDK_CALLTYPE GetFOClassByAcronym(
253  const S57FOClassAcronym& acronym,
254  S57FOClassSP& fo_class) const throw() = 0;
255 
258  virtual SDKResult SDK_CALLTYPE GetFOClassesIterator(
259  S57FOClassesIteratorSP& iterator) const throw() = 0;
260 
262  SDK_IMPLEMENT_IID(IS57Dictionary)
263  SDK_END_INTERFACE(IS57Dictionary)
264 };
265 SDK_DECLARE_IID(IS57Dictionary)
266 
267 } // namespace s63
268 } // namespace sdk
269 
270 #endif // SDK_S57_DICTIONARY_INTERFACE_H_
sdk::s63::S57FOClassName
SDKString S57FOClassName
S-57 feature object class name.
Definition: s57_dictionary_interface.h:117
sdk::s63::S57FOClassType
SDKString S57FOClassType
S-57 feature object class type. See predefined values.
Definition: s57_dictionary_interface.h:123
sdk::s63::kS57AttributeType_List
static const S57AttributeType kS57AttributeType_List
List.
Definition: s57_dictionary_interface.h:42
sdk::s63::S57AttributeClass
SDKString S57AttributeClass
S-57 attribute class. See predefined values.
Definition: s57_dictionary_interface.h:34
sdk::s63::IS57Dictionary::GetFOClassByAcronym
virtual SDKResult SDK_CALLTYPE GetFOClassByAcronym(const S57FOClassAcronym &acronym, S57FOClassSP &fo_class) const =0
Returns IS57FOClass by the feature object class acronym, if exists.
sdk::s63::S57FOClassCode
SDKUInt32 S57FOClassCode
S-57 feature object class code.
Definition: s57_dictionary_interface.h:115
sdk::s63::kS57FOClassType_CollectionObjectClasses
static const wchar_t kS57FOClassType_CollectionObjectClasses[]
Collection object classes.
Definition: s57_dictionary_interface.h:145
sdk::s63::IS57FOClassesIterator::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the iterator state.
sdk::s63::kS57FOClassPrimitive_Line
static const S57FOClassPrimitives kS57FOClassPrimitive_Line
Line primitive.
Definition: s57_dictionary_interface.h:131
sdk::s63::IS57FOClassesIterator
S-57 feature object classes iterator.
Definition: s57_dictionary_interface.h:208
sdk::s63::IS57Attribute
A single S-57 attribute item.
Definition: s57_dictionary_interface.h:71
base_types.h
SDK base types.
sdk::s63::IS57AttributesIterator
S-57 attributes iterator.
Definition: s57_dictionary_interface.h:97
sdk::s63::kS57AttributeType_FreeText
static const S57AttributeType kS57AttributeType_FreeText
Free text.
Definition: s57_dictionary_interface.h:50
sdk::s63::S57FOClassPrimitives
SDKUInt32 S57FOClassPrimitives
S-57 feature object class primitives.
Definition: s57_dictionary_interface.h:121
sdk::s63::S57FOClassAcronym
SDKString S57FOClassAcronym
S-57 feature object class acronym.
Definition: s57_dictionary_interface.h:119
sdk::s63::kS57AttrClass_NationalLanguageAttributes
static const wchar_t kS57AttrClass_NationalLanguageAttributes[]
National language attributes class.
Definition: s57_dictionary_interface.h:59
sdk::s63::S57AttributeCode
SDKUInt32 S57AttributeCode
S-57 attribute code.
Definition: s57_dictionary_interface.h:26
sdk::s63::IS57Attribute::GetCode
virtual SDKResult SDK_CALLTYPE GetCode(S57AttributeCode &code) const =0
Returns the code of an S-57 attribute.
sdk::s63::IS57FOClass::GetAcronym
virtual SDKResult SDK_CALLTYPE GetAcronym(S57FOClassAcronym &acronym) const =0
Returns the acronym of the S-57 feature object.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::s63::kS57FOClassType_MetaObjectClasses
static const wchar_t kS57FOClassType_MetaObjectClasses[]
Meta object classes.
Definition: s57_dictionary_interface.h:142
sdk::s63::IS57Attribute::GetClass
virtual SDKResult SDK_CALLTYPE GetClass(S57AttributeClass &cls) const =0
Returns the class of an S-57 attribute.
sdk::s63::kS57FOClassType_CartographicObjectClasses
static const wchar_t kS57FOClassType_CartographicObjectClasses[]
Cartographic object classes.
Definition: s57_dictionary_interface.h:148
sdk::s63::kS57FOClassPrimitive_Point
static const S57FOClassPrimitives kS57FOClassPrimitive_Point
Point primitive.
Definition: s57_dictionary_interface.h:129
sdk::s63::IS57FOClass::GetCode
virtual SDKResult SDK_CALLTYPE GetCode(S57FOClassCode &code) const =0
Returns the code of the S-57 feature object class.
sdk::s63::IS57Dictionary::GetFOClassByCode
virtual SDKResult SDK_CALLTYPE GetFOClassByCode(const S57FOClassCode &code, S57FOClassSP &fo_class) const =0
Returns IS57FOClass by the feature object class code, if exists.
sdk::s63::kS57AttributeType_Integer
static const S57AttributeType kS57AttributeType_Integer
Integer.
Definition: s57_dictionary_interface.h:46
sdk::s63::kS57AttrClass_SpatialAndMetaObjectAttributes
static const wchar_t kS57AttrClass_SpatialAndMetaObjectAttributes[]
Spatial and meta object attributes.
Definition: s57_dictionary_interface.h:62
sdk::s63::kS57AttributeType_Float
static const S57AttributeType kS57AttributeType_Float
Float.
Definition: s57_dictionary_interface.h:44
sdk::s63::IS57FOClass::GetPrimitives
virtual SDKResult SDK_CALLTYPE GetPrimitives(S57FOClassPrimitives &type) const =0
Returns possible primitives of the S-57 feature object class.
sdk::s63::kS57AttributeType_CodedString
static const S57AttributeType kS57AttributeType_CodedString
Coded string.
Definition: s57_dictionary_interface.h:48
sdk_string_handler.h
Wrappers and helper functions for SDKString.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::s63::IS57AttributesIterator::Next
virtual SDKResult SDK_CALLTYPE Next(S57AttributeSP &attribute)=0
Returns the next S-57 attribute.
sdk::s63::IS57Dictionary::GetAttributeByCode
virtual SDKResult SDK_CALLTYPE GetAttributeByCode(const S57AttributeCode &code, S57AttributeSP &attribute) const =0
Returns IS57Attribute by the attribute code, if exists.
sdk::s63::S57AttributeAcronym
SDKString S57AttributeAcronym
S-57 attribute acronym.
Definition: s57_dictionary_interface.h:30
sdk::s63::IS57Attribute::GetAcronym
virtual SDKResult SDK_CALLTYPE GetAcronym(S57AttributeAcronym &acronym) const =0
Returns the acronym of an S-57 attribute.
sdk::s63::IS57Attribute::GetType
virtual SDKResult SDK_CALLTYPE GetType(S57AttributeType &type) const =0
Returns the type of an S-57 attribute.
sdk::s63::IS57AttributesIterator::Reset
virtual SDKResult SDK_CALLTYPE Reset()=0
Resets the iterator state.
sdk::s63::IS57FOClass::GetAttributesSubsetA
virtual SDKResult SDK_CALLTYPE GetAttributesSubsetA(S57AttributesIteratorSP &iterator) const =0
Returns an iterator to interate all S-57 attributes from the subset A for the feature object class.
sdk::s63::IS57FOClassesIterator::Next
virtual SDKResult SDK_CALLTYPE Next(S57FOClassSP &fo_class)=0
Returns the next S-57 attribute.
sdk::s63::kS57FOClassPrimitive_Area
static const S57FOClassPrimitives kS57FOClassPrimitive_Area
Area primitive.
Definition: s57_dictionary_interface.h:133
sdk_component_interface.h
Common base SDK interfaces.
sdk::s63::IS57FOClass::GetName
virtual SDKResult SDK_CALLTYPE GetName(S57FOClassName &name) const =0
Returns the name of the S-57 feature object class.
platform.h
Describes the platform constants.
sdk::s63::S57AttributeName
SDKString S57AttributeName
S-57 attribute name.
Definition: s57_dictionary_interface.h:28
sdk::s63::IS57Dictionary::GetAttributeByAcronym
virtual SDKResult SDK_CALLTYPE GetAttributeByAcronym(const S57AttributeAcronym &acronym, S57AttributeSP &attribute) const =0
Returns IS57Attribute by the attribute acronym, if exists.
sdk::s63::IS57FOClass
Single S-57 feature object class.
Definition: s57_dictionary_interface.h:158
sdk::s63::IS57FOClass::GetAttributesSubsetABC
virtual SDKResult SDK_CALLTYPE GetAttributesSubsetABC(S57AttributesIteratorSP &iterator) const =0
Returns an iterator to iterate all S-57 attributes from subsets A/B/C for the feature object class.
sdk::s63::IS57Dictionary::GetFOClassesIterator
virtual SDKResult SDK_CALLTYPE GetFOClassesIterator(S57FOClassesIteratorSP &iterator) const =0
Returns the S-57 FO class iterator to iterate all registered FO classes.
sdk::s63::S57AttributeType
wchar_t S57AttributeType
S-57 attribute type. See predefined values.
Definition: s57_dictionary_interface.h:32
sdk::s63::kS57FOClassType_GeoObjectClasses
static const wchar_t kS57FOClassType_GeoObjectClasses[]
Geo object classes.
Definition: s57_dictionary_interface.h:139
sdk::s63::IS57FOClass::GetType
virtual SDKResult SDK_CALLTYPE GetType(S57AttributeClass &cls) const =0
Returns the type of the S-57 feature object class.
sdk::s63::IS57Attribute::GetName
virtual SDKResult SDK_CALLTYPE GetName(S57AttributeName &name) const =0
Returns the name of an S-57 attribute.
sdk::s63::IS57FOClass::GetAttributesSubsetB
virtual SDKResult SDK_CALLTYPE GetAttributesSubsetB(S57AttributesIteratorSP &iterator) const =0
Returns an iterator to iterate all S-57 attributes from the subset B for the feature object class.
sdk::s63::IS57Dictionary
Set of interfaces for S-57 dictionary description.
Definition: s57_dictionary_interface.h:229
sdk::s63::IS57Dictionary::GetAttributesIterator
virtual SDKResult SDK_CALLTYPE GetAttributesIterator(S57AttributesIteratorSP &iterator) const =0
Returns the S-57 attributes iterator to iterate all registered attributes.
sdk::s63::IS57FOClass::GetAttributesSubsetC
virtual SDKResult SDK_CALLTYPE GetAttributesSubsetC(S57AttributesIteratorSP &iterator) const =0
Returns an iterator to iterate all S-57 attributes from the subset C for the feature object class.
sdk::s63::kS57AttributeType_Enumerated
static const S57AttributeType kS57AttributeType_Enumerated
Enumerated.
Definition: s57_dictionary_interface.h:40
sdk::s63::kS57AttrClass_FeatureObjectAttributes
static const wchar_t kS57AttrClass_FeatureObjectAttributes[]
Feature object attributes class.
Definition: s57_dictionary_interface.h:56