NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
gdb_const.h
Go to the documentation of this file.
1 
9 #ifndef SDK_GDB_CONST_H_
10 #define SDK_GDB_CONST_H_
11 
12 #include <base/inc/platform.h>
13 #include <base/inc/base_types.h>
15 
16 #ifndef SDK_GDB_NAMESPACE
17 #define SDK_GDB_NAMESPACE SDK_NAMESPACE::gdb
18 #endif // SDK_GDB_NAMESPACE
19 
20 #ifndef SDK_GDB_BEGIN_NAMESPACE
21 #define SDK_GDB_BEGIN_NAMESPACE namespace SDK_NAMESPACE { \
22  namespace gdb {
23 #endif // SDK_GDB_BEGIN_NAMESPACE
24 
25 #ifndef SDK_GDB_END_NAMESPACE
26 #define SDK_GDB_END_NAMESPACE } }
27 #endif // SDK_GDB_END_NAMESPACE
28 
29 SDK_GDB_BEGIN_NAMESPACE
30 
32 
34 typedef SDKResult GDBResult; // Result is used for return values.
36 
37 static const double kInfiniteDegree = 361.0;
38 
39 typedef SDKUInt32 DatasetID;
40 #define DatasetID_SDKAnyType kSDKAnyType_Uint32
41 #define DatasetID_SDKAnyValue(v) ANY_UI32(v)
42 typedef SDKUInt8 WorkspaceID;
43 #define ObjectID_SDKAnyType kSDKAnyType_Uint64
44 #define ObjectID_SDKAnyValue(v) ANY_UI64(v)
45 
46 #define DatasetID_SlaveDatasetMask 0x00C00000
47 #define DatasetID_MakeID(workspace, dataset) \
48  ((static_cast<sdk::gdb::DatasetID>(workspace) << 24) | (dataset & 0x003FFFFF))
49 #define DatasetID_MakeID_ForSlaveDataset(workspace, dataset, slave_dataset) \
50  (DatasetID_MakeID(workspace, dataset) | \
51  ((slave_dataset << 22) & DatasetID_SlaveDatasetMask))
52 #define DatasetID_DatasetID(did) \
53  static_cast<sdk::gdb::DatasetID>(did & 0x003FFFFF)
54 #define DatasetID_MarkSlaveDataset(did, slave_dataset) \
55  (did | ((slave_dataset << 22) & DatasetID_SlaveDatasetMask))
56 #define DatasetID_Native(did) (did & ~DatasetID_SlaveDatasetMask)
57 #define DatasetID_WorkspaceID(did) static_cast<sdk::gdb::WorkspaceID>(did >> 24)
58 #define DatasetID_WorkspaceID_MaxValue 255
59 #define DatasetID_WorkspaceID_ExternalUser 220
60 #define DatasetID_WorkspaceID_InternalUser 200
61 
62 typedef enum WorkspaceID_InternalUser {
63  kWorkspaceID_InternalUser_OwnShip = DatasetID_WorkspaceID_InternalUser,
64  kWorkspaceID_InternalUser_RadarTargets,
65  kWorkspaceID_InternalUser_AISTargets,
66  kWorkspaceID_InternalUser_Routes,
67  kWorkspaceID_InternalUser_TotalTide,
68  kWorkspaceID_InternalUser_ADP,
69  kWorkspaceID_InternalUser_ARCS,
70 } WorkspaceID_InternalUser;
71 
72 static const char kWorkspace_InternalUser_Name_OwnShip[] = "Workspace_OwnShip";
73 static const char kWorkspace_InternalUser_Name_RadarTargets[] =
74  "Workspace_RadarTargets";
75 static const char kWorkspace_InternalUser_Name_AISTargets[] =
76  "Workspace_AISTargets";
77 static const char kWorkspace_InternalUser_Name_Routes[] =
78  "Workspace_Routes";
79 static const char kWorkspace_InternalUser_Name_TotalTide[] =
80  "Workspace_TotalTide";
81 static const char kWorkspace_InternalUser_Name_ADP[] =
82  "Workspace_ADP";
83 static const char kWorkspace_InternalUser_Name_LOP[] =
84  "Workspace_LOP";
85 static const char kWorkspace_InternalUser_Name_ARCS[] =
86  "Workspace_ARCS";
87 
88 #if defined(__cplusplus)
89 inline bool IsEqualDatasetID(const sdk::gdb::DatasetID& did1,
90  const DatasetID& did2) {
91  return (did1 == did2);
92 }
93 inline void InitDatasetID(sdk::gdb::DatasetID& _did) { _did = -1; }
94 inline bool IsNullDatasetID(const DatasetID& did) {
95  return (did == static_cast<SDKUInt32>(-1));
96 }
97 inline bool IsSlaveDataset(const DatasetID& did) {
98  return (did & DatasetID_SlaveDatasetMask) ? true : false;
99 }
100 #else
101 #define IsEqualDatasetID(did1, did2) (did1 == did2)
102 #define InitDatasetID(did) did = -1;
103 #define IsNullDatasetID(did) (did == -1)
104 #define IsSlaveDataset(did) (did & DatasetID_SlaveDatasetFlag)
105 #endif
106 
109 typedef SDKUInt32 OID;
111 typedef SDKUInt64 RAW_OID;
112 
115 union ObjectID {
116  RAW_OID raw_oid;
117  struct {
118  DatasetID did;
120  };
121 };
122 #define ObjectID_OID(section, record) \
123  ((static_cast<SDKUInt32>(section) << 24) | (record & 0x00FFFFFF))
124 #define ObjectID_Record(id) \
125  static_cast<sdk::gdb::senc::UInt32>(id.oid & 0x00FFFFFF)
126 #define ObjectID_Section(id) \
127  static_cast<sdk::gdb::senc::SECI_ENUM>(id.oid >> 24)
128 #define ObjectID_DatasetID(id) DatasetID_DatasetID(id.did)
129 #define ObjectID_WorkspaceID(id) DatasetID_WorkspaceID(id.did)
130 #define ObjectID_MakeObjectID(did, oid) \
131  ((did & 0x00000000FFFFFFFFULL) | \
132  ((static_cast<SDKUInt64>(oid) << 32) & 0xFFFFFFFF00000000ULL))
133 
134 #if defined(__cplusplus)
135 
136 inline bool IsEqualObjectID(const ObjectID& oid1, const ObjectID& oid2) {
137  return (IsEqualDatasetID(oid1.did, oid2.did) && (oid1.oid == oid2.oid));
138 }
139 
140 inline int operator==(const ObjectID& oid1, const ObjectID& oid2) {
141  return IsEqualObjectID(oid1, oid2);
142 }
143 
144 inline void InitObjectID(ObjectID& oid) {InitDatasetID(oid.did); oid.oid = 0;}
145 inline bool IsNullObjectID(const ObjectID& oid) {
146  return (IsNullDatasetID(oid.did) && (oid.oid == 0));
147 }
148 #else
149  #define IsEqualObjectID(oid1, oid2) \
150  (IsEqualDatasetID(oid1.did, oid2.did) && (oid1.oid == oid2.oid))
151  #define InitObjectID(oid) \
152  InitDatasetID(oid.did) oid.oid = 0;
153  #define IsNullObjectID(oid) \
154  (IsNullDatasetID(oid.did) && (oid.oid == 0))
155 #endif
156 
159 // const ObjectID kNULL_OID = { 0xFFFFFFFF00000000UL };
160 
163 typedef SDKUInt32 RCID;
164 static const SDKUInt32 kRCIDAnyType = kSDKAnyType_Uint32;
165 static const RCID kUndefinedRCID = -1;
166 static const RCID kDeprecatedRCID = 0;
167 
170 union FOID {
171  SDKUInt64 foid;
172  struct {
173  SDKUInt16 agen;
174  SDKUInt16 fids;
175  SDKUInt32 fidn;
176  };
177 };
178 union MU_FOID {
179  SDKUInt64 foid;
180  struct {
181  SDKUInt16 agen;
182  SDKUInt16 rcid;
183  SDKUInt32 relation;
184  };
185 };
186 const FOID kNULL_FOID = {0};
187 const MU_FOID kNULL_MU_FOID = {0};
188 
189 inline bool IsNullFOID(const FOID& foid) {
190  return (kNULL_FOID.foid == foid.foid);
191 }
192 
193 inline bool IsNullMU_FOID(const MU_FOID& foid) {
194  return (kNULL_FOID.foid == foid.foid);
195 }
196 
197 inline void InitFOID(FOID& foid) {
198  foid.foid = kNULL_FOID.foid;
199 }
200 
201 inline void InitMU_FOID(MU_FOID& foid) {
202  foid.foid = kNULL_FOID.foid;
203 }
204 
205 // Converts chart (senc) object RCID to appropriate MU FOID for
206 // GetFeaturesByFOID method
207 inline FOID GetMUFoidFromChartObjectRCID(const RCID& chart_obj_rcid) {
208  FOID foid;
209  foid.agen = 0;
210  foid.fids = 0;
211  foid.fidn = chart_obj_rcid;
212 
213  return foid;
214 }
215 
216 #if defined(__cplusplus)
217 inline bool IsEqualFOID(const FOID& foid1, const FOID& foid2) {
218  return (foid1.agen == foid2.agen && foid1.fidn == foid2.fidn &&
219  foid1.fids == foid2.fids);
220 }
221 #else
222 #define IsEqualFOID(foid1, foid2) \
223  (foid1.agen == foid2.agen && foid1.fidn == foid2.fidn \
224  && foid1.fids == foid2.fids)
225 #endif
226 
229 typedef SDKUInt32 ClassCode;
230 #define ClassCode_SDKAnyType kSDKAnyType_Uint32
231 #define ClassCode_SDKAnyValue(v) ANY_UI32(v)
232 
235 static const SDKUInt32 kInvalidClassCode = 0;
238 static const SDKUInt32 kAnyClassCode = kInvalidClassCode;
239 
240 // \brief Definition of the feature and attribute types.
241 
250 typedef SDKUInt32 PRSP;
253 static const SDKUInt32 kSDKAnyType_PRSP = kSDKAnyType_Uint32;
254 #define PRSP_SDKAnyType kSDKAnyType_Uint32
255 #define PRSP_SDKAnyValue(v) ANY_UI32(v)
256 
259 typedef enum PRSPEnum {
271  kPRSP_AML3 = 57,
272  kPRSP_AIO = 80,
276  kPRSP_ARPA = 252,
277  kPRSP_AIS = 251,
278  kPRSP_RADAR = 250,
288  kPRSP_ARCS = 240,
293  kPRSP_MARPOL = 220,
297  kPRSP_Ports = 2010,
298  kPRSP_User = SDK_MAX_UINT16 + 1
299 } PRSPEnum;
300 
301 // \brief Relationship constants and structures.
302 
305 typedef enum RelationshipRole {
310 
313 typedef enum RelationshipClass {
325  // End of constants
327 
328 typedef enum DebugFlags {
329  kDebugFlag_WorkspaceDatasetList = 1,
330  kDebugFlag_WorkspaceDatasetListCount = 2,
331 } DebugFlags;
332 
333 static const SDKUInt32 kScaleMin_InvalidValue = 0;
334 static const SDKUInt32 kScaleMax_InvalidValue = -1;
335 
336 SDK_GDB_END_NAMESPACE
337 
338 #endif // SDK_GDB_CONST_H_
kPRSP_OVERVIEW_CHART
@ kPRSP_OVERVIEW_CHART
Overview charts.
Definition: gdb_const.h:273
kPRSP_InlandENC
@ kPRSP_InlandENC
Inland Nautical charts.
Definition: gdb_const.h:264
kPRSP_LoadLines
@ kPRSP_LoadLines
Load lines.
Definition: gdb_const.h:289
kPRSP_RADAR
@ kPRSP_RADAR
RADAR.
Definition: gdb_const.h:278
kPRSP_ARPA
@ kPRSP_ARPA
ARPA targets.
Definition: gdb_const.h:276
PRSPEnum
PRSPEnum
Specifies values for the product specification aka PRSP.
Definition: gdb_const.h:259
kPRSP_AML3
@ kPRSP_AML3
AML3 - All layers.
Definition: gdb_const.h:271
kPRSP_MarinerObjects
@ kPRSP_MarinerObjects
Mariner's objects.
Definition: gdb_const.h:280
kPRSP_S107
@ kPRSP_S107
Ice charts.
Definition: gdb_const.h:263
kPRSP_SignalsVol6
@ kPRSP_SignalsVol6
Radio Signals vol.6.
Definition: gdb_const.h:284
RelationshipRole
RelationshipRole
Definition of the Relation role.
Definition: gdb_const.h:305
kPRSP_Navareas
@ kPRSP_Navareas
Navareas warnings.
Definition: gdb_const.h:286
OID
SDKUInt32 OID
Feature internal identifier.
Definition: gdb_const.h:109
base_types.h
SDK base types.
kPRSP_AIS
@ kPRSP_AIS
AIS targets.
Definition: gdb_const.h:277
kPRSP_Ports
@ kPRSP_Ports
Ports data.
Definition: gdb_const.h:297
kPRSP_ListOfLights
@ kPRSP_ListOfLights
List Of Lights.
Definition: gdb_const.h:282
kRelationshipRole_Master
@ kRelationshipRole_Master
Master.
Definition: gdb_const.h:307
kPRSP_Repareas
@ kPRSP_Repareas
Reporting areas.
Definition: gdb_const.h:291
kRelationshipClass_ManualUpdatesHistory
@ kRelationshipClass_ManualUpdatesHistory
MU history list.
Definition: gdb_const.h:322
kPRSP_MARPOL
@ kPRSP_MARPOL
MARPOL. Marine pollution.
Definition: gdb_const.h:293
kPRSP_TotalTide
@ kPRSP_TotalTide
Total Tide.
Definition: gdb_const.h:279
kPRSP_S101
@ kPRSP_S101
S-101/S-57 Nautical charts.
Definition: gdb_const.h:261
kRelationshipClass_AssociationMaster
@ kRelationshipClass_AssociationMaster
Reference to master associations.
Definition: gdb_const.h:318
kPRSP_AeNPCatalogue
@ kPRSP_AeNPCatalogue
eNP Catalogue from AeNP SDK.
Definition: gdb_const.h:287
kRelationshipClass_PeerToPeer
@ kRelationshipClass_PeerToPeer
Peer To Peer relationship.
Definition: gdb_const.h:316
kPRSP_NavtexObjects
@ kPRSP_NavtexObjects
Navtex objects.
Definition: gdb_const.h:281
kRelationshipClass_ManualUpdatesHistoryBackward
@ kRelationshipClass_ManualUpdatesHistoryBackward
MU history list.
Definition: gdb_const.h:323
kPRSP_OWNSHIP
@ kPRSP_OWNSHIP
Own ship.
Definition: gdb_const.h:275
kPRSP_AML12_ESB
@ kPRSP_AML12_ESB
AML1&2 - Environment, Seabed and Beach.
Definition: gdb_const.h:269
kRelationshipClass_MasterSlave
@ kRelationshipClass_MasterSlave
Master.
Definition: gdb_const.h:315
kAnyClassCode
static const SDKUInt32 kAnyClassCode
Any class code.
Definition: gdb_const.h:238
kPRSP_SignalsVol2
@ kPRSP_SignalsVol2
Radio Signals vol.2.
Definition: gdb_const.h:283
kPRSP_TimeZones
@ kPRSP_TimeZones
Time zones.
Definition: gdb_const.h:292
PRSP
SDKUInt32 PRSP
Product specification.
Definition: gdb_const.h:250
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
kRelationshipClass_SpatialAssociation
@ kRelationshipClass_SpatialAssociation
Reference to spatially associated features.
Definition: gdb_const.h:317
kRelationshipClass_RCID
@ kRelationshipClass_RCID
Relation to RCID.
Definition: gdb_const.h:319
kSDKAnyType_Uint32
@ kSDKAnyType_Uint32
unsigned integer 32 bit value
Definition: base_types.h:142
kPRSP_Weather_New
@ kPRSP_Weather_New
Weather data.
Definition: gdb_const.h:296
ObjectID::did
DatasetID did
Dataset identifier.
Definition: gdb_const.h:118
ClassCode
SDKUInt32 ClassCode
Definition of the ClassCode types.
Definition: gdb_const.h:229
FOID
Feature object global identifier.
Definition: gdb_const.h:170
FOID::fidn
SDKUInt32 fidn
Feature identification number.
Definition: gdb_const.h:175
kPRSP_AIO
@ kPRSP_AIO
Admiralty information overlay.
Definition: gdb_const.h:272
kPRSP_AML12_CLB
@ kPRSP_AML12_CLB
AML1&2 - Contour Line Bathymetry.
Definition: gdb_const.h:268
sdk_component_interface.h
Common base SDK interfaces.
RAW_OID
SDKUInt64 RAW_OID
Feature raw identifier.
Definition: gdb_const.h:111
kPRSP_Service
@ kPRSP_Service
Service.
Definition: gdb_const.h:290
kPRSP_Weather_Old
@ kPRSP_Weather_Old
Weather data.
Definition: gdb_const.h:295
ObjectID::oid
OID oid
Object identification number.
Definition: gdb_const.h:119
kSDKAnyType_PRSP
static const SDKUInt32 kSDKAnyType_PRSP
Any type PRSP.
Definition: gdb_const.h:253
platform.h
Describes the platform constants.
ObjectID
Object identifier.
Definition: gdb_const.h:115
FeatureClassCode
ClassCode FeatureClassCode
Feature class code type.
Definition: gdb_const.h:244
kPRSP_AML12_SBO
@ kPRSP_AML12_SBO
AML1&2 - Small Bottom Objects.
Definition: gdb_const.h:270
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
kPRSP_ARCS
@ kPRSP_ARCS
ARCS raster charts.
Definition: gdb_const.h:288
kPRSP_IENC_Bathymetry
@ kPRSP_IENC_Bathymetry
Inland Nautical charts (bathymetry).
Definition: gdb_const.h:294
FOID::fids
SDKUInt16 fids
Feature identification subdivision.
Definition: gdb_const.h:174
kPRSP_VESSELS
@ kPRSP_VESSELS
Vessels.
Definition: gdb_const.h:274
kRelationshipClass_Any
@ kRelationshipClass_Any
Return all classes.
Definition: gdb_const.h:314
kPRSP_Unknown
@ kPRSP_Unknown
Unknown PRSP.
Definition: gdb_const.h:260
kRelationshipRole_Slave
@ kRelationshipRole_Slave
Slave.
Definition: gdb_const.h:308
AttributeClassCode
ClassCode AttributeClassCode
Attribute class code type.
Definition: gdb_const.h:247
kPRSP_AML12_Routes
@ kPRSP_AML12_Routes
AML1&2 - Areas and Limits RAL.
Definition: gdb_const.h:266
kPRSP_AML12_MFF
@ kPRSP_AML12_MFF
AML1&2 - Maritime Foundation and Facilities.
Definition: gdb_const.h:265
RCID
SDKUInt32 RCID
NULL object identifier.
Definition: gdb_const.h:163
RelationshipClass
RelationshipClass
Definition of the Relationship class.
Definition: gdb_const.h:313
kRelationshipClass_ManualUpdates
@ kRelationshipClass_ManualUpdates
Relation to manual updates.
Definition: gdb_const.h:320
kPRSP_AML12_LBO
@ kPRSP_AML12_LBO
AML1&2 - Large Bottom Objects.
Definition: gdb_const.h:267
kRelationshipRole_Any
@ kRelationshipRole_Any
Return all roles.
Definition: gdb_const.h:306
kPRSP_S106
@ kPRSP_S106
Route.
Definition: gdb_const.h:262
kPRSP_SignalsVol1345
@ kPRSP_SignalsVol1345
Radio Signals vol.1345.
Definition: gdb_const.h:285
FOID::agen
SDKUInt16 agen
Producing agency.
Definition: gdb_const.h:173
SDK_MAX_UINT16
static const SDKUInt16 SDK_MAX_UINT16
Max limit of 16-bit unsigned integer.
Definition: platform.h:172
kInvalidClassCode
static const SDKUInt32 kInvalidClassCode
Invalid class code.
Definition: gdb_const.h:235
kRelationshipClass_FOID
@ kRelationshipClass_FOID
Relation to FOID.
Definition: gdb_const.h:321