NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
base_types.h File Reference

SDK base types. More...

#include "platform.h"
#include <float.h>
#include <math.h>
#include "sdk_pshpack1.h"
#include "sdk_poppack.h"

Go to the source code of this file.

Macros

#define IsNullSDKString(str)   (str.data == NULL)
 Returns true is a string is a null string.
 
#define IsEmptySDKString(str)   ((str.data == NULL) || (str.length == 0))
 Return true if a string is an empty string.
 
#define ANY_UNION(X, Y)   ((X)->Y)
 SDKAny access macros.
 
#define kSDK_PACKED_TIME_INVALID_YEAR   0
 Date data type validity checks.
 
#define DENY_COPY_AND_ASSIGN(T)
 A macro to disallow the copy constructor and operator= functions.
 

Typedefs

typedef SDKUInt16 SDKArrayElementType
 Basic type for one dimensional array of any values, use SDKArray* functions from base library.
 
typedef SDKUInt32 SDKCRC32
 CRC32 value.
 

Enumerations

enum  SDKAnyTypeEnum {
  kSDKAnyType_Empty = 0, kSDKAnyType_Null = 1, kSDKAnyType_Uint8 = 2, kSDKAnyType_Uint16 = 3,
  kSDKAnyType_Uint32 = 4, kSDKAnyType_Uint64 = 5, kSDKAnyType_Int8 = 6, kSDKAnyType_Int16 = 7,
  kSDKAnyType_Int32 = 8, kSDKAnyType_GeoInt = kSDKAnyType_Int32, kSDKAnyType_Int64 = 9, kSDKAnyType_Float = 10,
  kSDKAnyType_Double = 11, kSDKAnyType_Geo = kSDKAnyType_Double, kSDKAnyType_Bool = 12, kSDKAnyType_SDKTime = 13,
  kSDKAnyType_SDKStringPtr = 14, kSDKAnyType_SDKAnyPtr = 15, kSDKAnyType_SDKArrayPtr = 16, kSDKAnyType_SDKComponentPtr = 17,
  kSDKAnyType_SDKTimePacked = 18, kSDKAnyType_SDKTimeDelta = 19, kSDKAnyType_3DGeoInt = 20, kSDKAnyType_3DGeo = 21,
  kSDKAnyType_3DFloat = 22, kSDKAnyType_UserPtr = 255
}
 Enumeration of supported types of data. More...
 

Functions

 SDK_PACK (struct SDKTimeStruct { SDKInt16 year;SDKUInt8 month;SDKUInt16 yday;SDKUInt8 mday;SDKUInt8 wday;SDKUInt8 hour;SDKUInt8 minute;SDKUInt8 second;SDKUInt16 millisec;})
 Represents the exploded SDKTime.
 
 SDK_PACK (struct SDKString { SDKUInt32 length;SDKUInt16 *data;})
 SDKString is a string data type that is used in SDK interfaces. SDKString is a composite data type that consists of a length and a data string.
 
 SDK_PACK (struct SDKAny { SDKAnyType any_type;union { SDKInt8 i8;SDKUInt8 ui8;SDKInt16 i16;SDKUInt16 ui16;SDKInt32 i32;SDKUInt32 ui32;SDKInt64 i64;SDKUInt64 ui64;float flt;double dbl;SDKInt8 bl;SDKTime time;SDKTimeDelta dtime;SDKString *str;SDKAny *any;SDKArray *arr;sdk::ISDKComponent *obj;void *vd;union { SDKUInt64 time_packed;struct { SDKInt64 year :16;SDKUInt64 month:4;SDKUInt64 mday:6;SDKUInt64 hour:5;SDKUInt64 minute:6;SDKUInt64 second:6;SDKUInt64 millisec:10;};};};})
 SDKAny structure is a container for an union that carries many types of data.
 

Variables

static const SDKUInt16 kSDKTimeStruct_Year_Min = 1970
 Minimum year value.
 
static const SDKUInt16 kSDKTimeStruct_Year_Max = 3000
 Maximum year value.
 
static const SDKUInt8 kSDKTimeStruct_Month_Min = 1
 Minimum month value.
 
static const SDKUInt8 kSDKTimeStruct_Month_Max = 12
 Maximum month value.
 
static const SDKUInt16 kSDKTimeStruct_Yday_Min = 1
 Minimum day of year value.
 
static const SDKUInt16 kSDKTimeStruct_Yday_Max = 366
 Maximum day of year value.
 
static const SDKUInt8 kSDKTimeStruct_Mday_Min = 1
 Minimum day of month value.
 
static const SDKUInt8 kSDKTimeStruct_Mday_Max = 31
 Maximum day of month value.
 
static const SDKUInt8 kSDKTimeStruct_Wday_Min = 1
 Minimum day of week value.
 
static const SDKUInt8 kSDKTimeStruct_Wday_Max = 7
 Maximum day of week value.
 
static const SDKUInt8 kSDKTimeStruct_Hour_Min = 0
 Minimum hour value.
 
static const SDKUInt8 kSDKTimeStruct_Hour_Max = 23
 Maximum hour value.
 
static const SDKUInt8 kSDKTimeStruct_Minute_Min = 0
 Minimum minute value.
 
static const SDKUInt8 kSDKTimeStruct_Minute_Max = 59
 Maximum minute value.
 
static const SDKUInt8 kSDKTimeStruct_Second_Min = 0
 Minimum second value.
 
static const SDKUInt8 kSDKTimeStruct_Second_Max = 59
 Maximum second value.
 
static const SDKUInt16 kSDKTimeStruct_Millisec_Min = 0
 Minimum millisecond value.
 
static const SDKUInt16 kSDKTimeStruct_Millisec_Max = 999
 Maximum millisecond value.
 
SDK_END_NAMESPACE typedef SDKInt64 SDKTime
 Milliseconds from Unix epoch.
 
static const SDKTime kInvalidSDKTime = SDK_MAX_INT64
 SDKTime invalid value.
 
static const SDKTimeDelta kInvalidSDKTimeDelta = SDK_MAX_INT64
 SDKTimeDelta invalid value.
 
static const SDKUInt16 kUnixEpoch = 1970
 Unix epoch definition.
 
static const SDKUInt16 kMillisecondsInSecond = 1000
 Milliseconds in second.
 
typedef SDKInt64 SDKTimeDelta
 Time delta in Milliseconds.
 

Detailed Description

SDK base types.

Copyright (c) 2011 The NAVTOR SDK. All Rights Reserved.

Author
The NAVTOR SDK authors
Date
08/2011
Maintenance:
The NAVTOR SDK authors