GlsMap Toolkit  1.9.0
disti::VPFUtil Class Reference

#include <vpf_util.h>

Classes

struct  Coord2DLong
 
struct  Coord2DShort
 
struct  Coord3DLong
 
struct  Coord3DShort
 
struct  DateTime
 
class  FilePath
 
class  PointerArray
 
struct  Triplet
 

Public Types

enum  { FACC_CODE_LENGTH = 5u }
 
enum  EndianMode { ENDIAN_MODE_LITTLE , ENDIAN_MODE_BIG }
 
enum  DataType {
  DATA_TYPE_TEXT , DATA_TYPE_TEXT_LATIN , DATA_TYPE_TEXT_FULL_LATIN , DATA_TYPE_TEXT_MULTILINGUAL ,
  DATA_TYPE_SHORT_FLOAT , DATA_TYPE_LONG_FLOAT , DATA_TYPE_SHORT_INTEGER , DATA_TYPE_LONG_INTEGER ,
  DATA_TYPE_2D_COORD_SHORT , DATA_TYPE_2D_COORD_LONG , DATA_TYPE_3D_COORD_SHORT , DATA_TYPE_3D_COORD_LONG ,
  DATA_TYPE_DATE_TIME , DATA_TYPE_NULL , DATA_TYPE_TRIPLET
}
 
enum  KeyType { KEY_TYPE_PRIMARY , KEY_TYPE_UNIQUE , KEY_TYPE_NON_UNIQUE }
 
enum  FeatureType {
  FEATURE_TYPE_POINT , FEATURE_TYPE_LINE , FEATURE_TYPE_AREA , FEATURE_TYPE_TEXT ,
  FEATURE_TYPE_COMPLEX
}
 
enum  SecurityClass {
  SECURITY_CLASS_TOP_SECRET , SECURITY_CLASS_SECRET , SECURITY_CLASS_CONFIDENTIAL , SECURITY_CLASS_RESTRICTED ,
  SECURITY_CLASS_UNCLASSIFIED
}
 
typedef float Float32
 
typedef double Float64
 
typedef unsigned short UInt16
 
typedef unsigned int UInt32
 
typedef bool WarningBool
 

Static Public Member Functions

static UInt16 DecodeUInt16 (const unsigned char *const intData, const EndianMode srcMode)
 
static UInt32 DecodeUInt32 (const unsigned char *const intData, const EndianMode srcMode)
 
static Float32 DecodeFloat32 (const unsigned char *const floatData, const EndianMode srcMode)
 
static Float64 DecodeFloat64 (const unsigned char *const floatData, const EndianMode srcMode)
 
static bool IsFloat32NULL (const Float32 f)
 
static bool IsFloat64NULL (const Float64 f)
 
static bool IsUInt16NULL (const UInt16 i)
 
static bool IsUInt32NULL (const UInt32 i)
 
static bool IsTextNULL (const char *const txt)
 
static void KillTrailingWS (char *const src)
 
static bool StricmpWS (const char *const s1, const char *const s2)
 
static bool FileExists (const char *const fname)
 
static bool DecodeFeatureType (const char featTypeChar, FeatureType &featType)
 
static bool DecodeSecurityClass (const char securityClassChar, SecurityClass &securityClass)
 

Static Public Attributes

static const char *const DHT_NAME = "dht"
 
static const char *const LAT_NAME = "lat"
 
static const char *const BROWSE_LIB_NAME = "browse"
 
static const char *const LHT_NAME = "lht"
 
static const char *const GRT_NAME = "grt"
 
static const char *const CAT_NAME = "cat"
 
static const char *const FCS_NAME = "fcs"
 
static const char *const FCA_NAME = "fca"
 
static const char *const NRAT_NAME = "notes.rat"
 
static const char *const CVDT_NAME = "char.vdt"
 
static const char *const IVDT_NAME = "int.vdt"
 
static const char *const CND_NAME = "cnd"
 
static const char *const END_NAME = "end"
 
static const char *const EDG_NAME = "edg"
 
static const char *const FAC_NAME = "fac"
 
static const char *const TXT_NAME = "txt"
 
static const char *const RNG_NAME = "rng"
 
static const char *const EBR_NAME = "ebr"
 
static const char *const FBR_NAME = "fbr"
 
static const char *const TILEREF_COV_NAME = "tileref"
 
static const char *const LIBREF_COV_NAME = "libref"
 
static const char *const LIB_COV_NAME = "lib"
 
static const char *const TILEREF_AFT_NAME = "tileref.aft"
 
static const char *const LIBREF_LFT_NAME = "libref.lft"
 
static const char *const POINT_FEATURE_EXT = ".pft"
 
static const char *const LINE_FEATURE_EXT = ".lft"
 
static const char *const AREA_FEATURE_EXT = ".aft"
 
static const char *const TEXT_FEATURE_EXT = ".tft"
 
static const char *const LINE_FEATURE_JOIN_EXT = ".ljt"
 
static const char *const AREA_FEATURE_JOIN_EXT = ".ajt"
 
static const char *const COMPLEX_FEATURE_EXT = ".cft"
 
static const char *const ID_COLUMN_NAME = "id"
 
static const char *const TILE_ID_COLUMN_NAME = "tile_id"
 
static const char *const END_ID_COLUMN_NAME = "end_id"
 
static const char *const RIGHT_FACE_COLUMN_NAME = "right_face"
 
static const char *const LEFT_FACE_COLUMN_NAME = "left_face"
 
static const char *const RIGHT_EDGE_COLUMN_NAME = "right_edge"
 
static const char *const LEFT_EDGE_COLUMN_NAME = "left_edge"
 
static const char *const EDGE_ID_COLUMN_NAME = "edg_id"
 
static const char *const TEXT_ID_COLUMN_NAME = "txt_id"
 
static const char *const FACC_CODE_COLUMN_NAME = "f_code"
 

Protected Types

enum  { UINT16_NULL_VALUE = 0x8000u }
 
enum  { UINT32_NULL_VALUE = 0x80000000U }
 

Static Protected Member Functions

static void SwapTwo (const unsigned char *const src, unsigned char *const dst, const EndianMode srcMode)
 
static void SwapFour (const unsigned char *const src, unsigned char *const dst, const EndianMode srcMode)
 
static void SwapEight (const unsigned char *const src, unsigned char *const dst, const EndianMode srcMode)
 

Static Protected Attributes

static const EndianMode _targetEndianMode = ENDIAN_MODE_BIG
 

Detailed Description

collection of VPF related utility functions, types, and constants

Member Typedef Documentation

◆ Float32

typedef float disti::VPFUtil::Float32

32-bit floating point

◆ Float64

typedef double disti::VPFUtil::Float64

64-bit floating point

◆ UInt16

typedef unsigned short disti::VPFUtil::UInt16

16-bit VPF unsigned integer

◆ UInt32

typedef unsigned int disti::VPFUtil::UInt32

32-bit VPF unsigned integer

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected

a NULL UInt32 value

◆ anonymous enum

anonymous enum
protected

a NULL UInt16 value

◆ DataType

possible VPF data types

Enumerator
DATA_TYPE_TEXT 

text

DATA_TYPE_TEXT_LATIN 

text Level 1, Latin 1 - ISO 8859

DATA_TYPE_TEXT_FULL_LATIN 

text Level 2, Full Latin - ISO 6937

DATA_TYPE_TEXT_MULTILINGUAL 

text Level 3, Multilingual ISO 10646

DATA_TYPE_SHORT_FLOAT 

IEEE 784 single precision float 32-bits

DATA_TYPE_LONG_FLOAT 

IEEE 784 double precision float 64-bits

DATA_TYPE_SHORT_INTEGER 

16-bit integer

DATA_TYPE_LONG_INTEGER 

32-bit integer

DATA_TYPE_2D_COORD_SHORT 

2D coordinate of short float

DATA_TYPE_2D_COORD_LONG 

2D coordinate of long float

DATA_TYPE_3D_COORD_SHORT 

3D coordinate of short float

DATA_TYPE_3D_COORD_LONG 

3D coordinate of long float

DATA_TYPE_DATE_TIME 

Date and Time

DATA_TYPE_NULL 

NULL field

DATA_TYPE_TRIPLET 

Triplet ID

◆ EndianMode

enum of byte ordering modes

◆ FeatureType

possible VPF feature types

◆ KeyType

possible VPF table column key types

Enumerator
KEY_TYPE_PRIMARY 

primary key

KEY_TYPE_UNIQUE 

unique key

KEY_TYPE_NON_UNIQUE 

non unique key

◆ SecurityClass

security classifications

Member Function Documentation

◆ DecodeFeatureType()

bool VPFUtil::DecodeFeatureType ( const char  featTypeChar,
FeatureType featType 
)
static

Decode a feature type character indicator from a VPF table into a feature type

Parameters
featTypeCharfeature type character indicator
&featType[out] gets feature type on success
Returns
true on success else false

◆ DecodeFloat32()

VPFUtil::Float32 VPFUtil::DecodeFloat32 ( const unsigned char *const  floatData,
const EndianMode  srcMode 
)
static

Construct a Float32 from four bytes of data read from a VPF file, correcting for source and target endian mode as needed.

Parameters
floatDatafour bytes of data
srcModeendian mode of floatData
Returns
Float32 value

◆ DecodeFloat64()

VPFUtil::Float64 VPFUtil::DecodeFloat64 ( const unsigned char *const  floatData,
const EndianMode  srcMode 
)
static

Construct a Float64 from eight bytes of data read from a VPF file, correcting for source and target endian mode as needed.

Parameters
floatDataeight bytes of data
srcModeendian mode of floatData
Returns
Float64 value

◆ DecodeSecurityClass()

bool VPFUtil::DecodeSecurityClass ( const char  securityClassChar,
SecurityClass securityClass 
)
static

Decode a security class character indicator from a VPF table into a security class

Parameters
securityClassCharsecurity class character indicator
&securityClass[out] gets security class on success
Returns
true on success else false

◆ DecodeUInt16()

VPFUtil::UInt16 VPFUtil::DecodeUInt16 ( const unsigned char *const  intData,
const EndianMode  srcMode 
)
static

Construct an UInt16 from tow bytes of data read from a VPF file, correcting for source and target endian mode as needed.

Parameters
intDatatow bytes of data
srcModeendian mode of intData
Returns
UInt16 integer value

◆ DecodeUInt32()

VPFUtil::UInt32 VPFUtil::DecodeUInt32 ( const unsigned char *const  intData,
const EndianMode  srcMode 
)
static

Construct an UInt32 from four bytes of data read from a VPF file, correcting for source and target endian mode as needed.

Parameters
intDatafour bytes of data
srcModeendian mode of intData
Returns
UInt32 integer value

◆ FileExists()

bool VPFUtil::FileExists ( const char *const  fname)
static

Determine if a file exists

Parameters
fnamename of file
Returns
true if file exists else false

◆ IsFloat32NULL()

static bool disti::VPFUtil::IsFloat32NULL ( const Float32  f)
inlinestatic

Determine if the given Float32 is a NULL value

Parameters
fFloat32 in question
Returns
true if NULL else false

◆ IsFloat64NULL()

static bool disti::VPFUtil::IsFloat64NULL ( const Float64  f)
inlinestatic

Determine if the given Float64 is a NULL value

Parameters
fFloat64 in question
Returns
true if NULL else false

◆ IsTextNULL()

static bool disti::VPFUtil::IsTextNULL ( const char *const  txt)
inlinestatic

Determine if the given text value is a NULL value

Parameters
txttext in question
Returns
true if NULL text value else NULL

◆ IsUInt16NULL()

static bool disti::VPFUtil::IsUInt16NULL ( const UInt16  i)
inlinestatic

Determine if the given UInt16 is NULL value

Parameters
iUInt16 in question
Returns
true if NULL else false

◆ IsUInt32NULL()

static bool disti::VPFUtil::IsUInt32NULL ( const UInt32  i)
inlinestatic

Determine if the given UInt32 is NULL value

Parameters
iUInt32 in question
Returns
true if NULL else false

◆ KillTrailingWS()

void VPFUtil::KillTrailingWS ( char *const  src)
static

Kill any trailing white space in the given string

Parameters
srcstring in question

◆ StricmpWS()

bool VPFUtil::StricmpWS ( const char *const  s1,
const char *const  s2 
)
static

Perform a lower case comparison of the two strings, stopping at the first whitespace character

Parameters
s1first string to compare
s2second string to compare
Returns
true if strings match else false

◆ SwapEight()

void VPFUtil::SwapEight ( const unsigned char *const  src,
unsigned char *const  dst,
const EndianMode  srcMode 
)
staticprotected

Swap (reverse) the given eight byte buffer if its endian mode does not match the mode of the endian mode of the target architecture

Parameters
srcsource data to swap (must be at least 8 bytes long)
dst[out] receives potentially swapped data (must be at least 8 bytes long)
srcModeendian mode of source data

◆ SwapFour()

void VPFUtil::SwapFour ( const unsigned char *const  src,
unsigned char *const  dst,
const EndianMode  srcMode 
)
staticprotected

Swap (reverse) the given four byte buffer if its endian mode does not match the mode of the endian mode of the target architecture

Parameters
srcsource data to swap (must be at least 4 bytes long)
dst[out] receives potentially swapped data (must be at least 4 bytes long)
srcModeendian mode of source data

◆ SwapTwo()

void VPFUtil::SwapTwo ( const unsigned char *const  src,
unsigned char *const  dst,
const EndianMode  srcMode 
)
staticprotected

Swap (reverse) the given two byte buffer if its endian mode does not match the mode of the endian mode of the target architecture

Parameters
srcsource data to swap (must be at least 2 bytes long)
dst[out] receives potentially swapped data (must be at least 2 bytes long)
srcModeendian mode of source data

Member Data Documentation

◆ _targetEndianMode

const VPFUtil::EndianMode VPFUtil::_targetEndianMode = ENDIAN_MODE_BIG
staticprotected

endian mode of target architecture

◆ AREA_FEATURE_EXT

const char *const VPFUtil::AREA_FEATURE_EXT = ".aft"
static

file extension for an area feature table

◆ AREA_FEATURE_JOIN_EXT

const char *const VPFUtil::AREA_FEATURE_JOIN_EXT = ".ajt"
static

file extension for an area join table

◆ BROWSE_LIB_NAME

const char *const VPFUtil::BROWSE_LIB_NAME = "browse"
static

name of browse library

◆ CAT_NAME

const char *const VPFUtil::CAT_NAME = "cat"
static

name of coverage attribute table

◆ CND_NAME

const char *const VPFUtil::CND_NAME = "cnd"
static

name of connected node primitive table

◆ COMPLEX_FEATURE_EXT

const char *const VPFUtil::COMPLEX_FEATURE_EXT = ".cft"
static

file extension for a complex feature table

◆ CVDT_NAME

const char *const VPFUtil::CVDT_NAME = "char.vdt"
static

name of character value descriptor table

◆ DHT_NAME

const char *const VPFUtil::DHT_NAME = "dht"
static

name of database header table

◆ EBR_NAME

const char *const VPFUtil::EBR_NAME = "ebr"
static

name of edge bounding rectangle table

◆ EDG_NAME

const char *const VPFUtil::EDG_NAME = "edg"
static

name of edge primitive table

◆ EDGE_ID_COLUMN_NAME

const char *const VPFUtil::EDGE_ID_COLUMN_NAME = "edg_id"
static

name of edge ID column in a VPF table

◆ END_ID_COLUMN_NAME

const char *const VPFUtil::END_ID_COLUMN_NAME = "end_id"
static

name of entity node ID column in a VPF table

◆ END_NAME

const char *const VPFUtil::END_NAME = "end"
static

name of entity node primitive table

◆ FAC_NAME

const char *const VPFUtil::FAC_NAME = "fac"
static

name of face primitive table

◆ FACC_CODE_COLUMN_NAME

const char *const VPFUtil::FACC_CODE_COLUMN_NAME = "f_code"
static

name of facc code column in a VPF table

◆ FBR_NAME

const char *const VPFUtil::FBR_NAME = "fbr"
static

name of face bounding rectangle table

◆ FCA_NAME

const char *const VPFUtil::FCA_NAME = "fca"
static

name of feature class attribute table

◆ FCS_NAME

const char *const VPFUtil::FCS_NAME = "fcs"
static

name of feature class schema table

◆ GRT_NAME

const char *const VPFUtil::GRT_NAME = "grt"
static

name of geographic reference table

◆ ID_COLUMN_NAME

const char *const VPFUtil::ID_COLUMN_NAME = "id"
static

name of ID column in any VPF table (always first column)

◆ IVDT_NAME

const char *const VPFUtil::IVDT_NAME = "int.vdt"
static

name of integer value descriptor table

◆ LAT_NAME

const char *const VPFUtil::LAT_NAME = "lat"
static

name of library attribute table

◆ LEFT_EDGE_COLUMN_NAME

const char *const VPFUtil::LEFT_EDGE_COLUMN_NAME = "left_edge"
static

name of left edge column in a VPF table

◆ LEFT_FACE_COLUMN_NAME

const char *const VPFUtil::LEFT_FACE_COLUMN_NAME = "left_face"
static

name of left face column in a VPF table

◆ LHT_NAME

const char *const VPFUtil::LHT_NAME = "lht"
static

name of library header table

◆ LIB_COV_NAME

const char *const VPFUtil::LIB_COV_NAME = "lib"
static

name of the library coverage

◆ LIBREF_COV_NAME

const char *const VPFUtil::LIBREF_COV_NAME = "libref"
static

name of the libref coverage

◆ LIBREF_LFT_NAME

const char *const VPFUtil::LIBREF_LFT_NAME = "libref.lft"
static

name of the libref line feature table

◆ LINE_FEATURE_EXT

const char *const VPFUtil::LINE_FEATURE_EXT = ".lft"
static

file extension for a line feature table

◆ LINE_FEATURE_JOIN_EXT

const char *const VPFUtil::LINE_FEATURE_JOIN_EXT = ".ljt"
static

file extension for a line join table

◆ NRAT_NAME

const char *const VPFUtil::NRAT_NAME = "notes.rat"
static

name of notes related attribute table

◆ POINT_FEATURE_EXT

const char *const VPFUtil::POINT_FEATURE_EXT = ".pft"
static

file extension for a point feature table

◆ RIGHT_EDGE_COLUMN_NAME

const char *const VPFUtil::RIGHT_EDGE_COLUMN_NAME = "right_edge"
static

name of right edge column in a VPF table

◆ RIGHT_FACE_COLUMN_NAME

const char *const VPFUtil::RIGHT_FACE_COLUMN_NAME = "right_face"
static

name of right face column in a VPF table

◆ RNG_NAME

const char *const VPFUtil::RNG_NAME = "rng"
static

name of ring table

◆ TEXT_FEATURE_EXT

const char *const VPFUtil::TEXT_FEATURE_EXT = ".tft"
static

file extension for a text feature table

◆ TEXT_ID_COLUMN_NAME

const char *const VPFUtil::TEXT_ID_COLUMN_NAME = "txt_id"
static

name of text ID column in a VPF table

◆ TILE_ID_COLUMN_NAME

const char *const VPFUtil::TILE_ID_COLUMN_NAME = "tile_id"
static

name of tile ID column in a VPF table

◆ TILEREF_AFT_NAME

const char *const VPFUtil::TILEREF_AFT_NAME = "tileref.aft"
static

name of the tileref area feature table

◆ TILEREF_COV_NAME

const char *const VPFUtil::TILEREF_COV_NAME = "tileref"
static

name of the tileref coverage

◆ TXT_NAME

const char *const VPFUtil::TXT_NAME = "txt"
static

name of text primitive table


The documentation for this class was generated from the following files: