FDO 3.0 vs. FDO 3.2

FDO API Naming Changes

The naming conventions used in version 3.2 of the FDO API have been modified from those exposed in version 3.0. These modifications were undertaken to move the naming conventions used in the API away from its Autodesk roots and position itself within the OSGeo framework. As a result of implementing these changes, users will be required to modify their applications to use the names of the renamed FDO classes, enumerations,  header files, libraries, etc.

 

NOTE: The API changes made moving from 3.0 and 3.2 are also applicable when discussing the differences between 3.1 and 3.2.

 

The following sections provide an overview on the naming changes that were made in FDO 3.2.

Removal of Unused FDO API Interfaces

There was a subset of the FDO API that had not been implemented in any provider. These unimplemented interfaces were removed from the FDO API.

Removal of the Topology API

Removing the Topology API meant that all the topology related classes, files and enumeration values were removed from the FDO API.

 

A summary of the required changes are as follows:

 

·        The FdoITopologyCapabilities interface was removed from the FDO API.

 

·        The FdoIConnection interface was modified to remove the topology related capabilities method.

 

virtual FdoITopologyCapabilities* GetTopologyCapabilities();

 

·        The FdoCommandType Enumeration was updated to remove the Topology related enumeration values.

 

FdoCommandType_ActivateTopologyArea

FdoCommandType_DeactivateTopologyArea

FdoCommandType_ActivateTopologyInCommandResult

FdoCommandType_DeactivateTopologyInCommandResults

 

·        The following command interfaces were removed from the FDO API as well as their associated .h and .cpp files.

 

FdoIActivateTopologyArea

FdoIDeactivateTopologyArea

FdoIActivateTopologyInCommandResults

FdoIDeactivateTopologyInCommandResults

FdoIMoveTopoNode

FdoIReconnectTopoEdge

 

·        The following schema management classes were removed from the FDO API as well as their associated .h and .cpp files.

 

FdoTopoGeometryPropertyDefinition

FdoTopology

 

Removal of the Network API

Removing the Network API will mean that all the network related classes, files and enumeration values were removed from the FDO API.

 

A summary of the required changes are as follows:

 

·        The FdoISchemaCapabilities interface was modified to remove the following network related capabilities method.

 

virtual bool SupportsNetworkModel();

 

·        The FdoCommandType Enumeration was updated to remove the FDO Network related enumeration values.

 

FdoCommandType_NetworkShortestPath

FdoCommandType_NetworkAllPaths

FdoCommandType_NetworkReachableNodes

FdoCommandType_NetworkReachingNodes

FdoCommandType_NetworkNearestNeighbors

FdoCommandType_NetworkWithinCost

FdoCommandType_NetworkTSP

 

·        The following command and reader interfaces were removed from the FDO API as well as their associated .h and .cpp files.

 

FdoINetworkCommand

FdoINetworkAllPathsCommand

FdoINetworkNearestNeighborsCommand

FdoINetworkPathReader

FdoINetworkReachableNodesCommand

FdoINetworkReachingNodesCommand

FdoINetworkReader

FdoINetworkShortestPathCommand

FdoINetworkTSPCommand

FdoINetworkWithinCostCommand

 

·        The following enumeration values were removed from the FdoClassType enumeration.

 

FdoClassType_NetworkClass,

FdoClassType_NetworkLayerClass,

FdoClassType_NetworkNodeClass,

FdoClassType_NetworkLinkClass

 

·        The following schema management classes were removed from the API as well as their associated .h and .cpp files.

 

FdoNetworkClass

FdoNetworkFeatureClass

FdoNetworkLayerClass

FdoNetworkLinkFeatureClass

FdoNetworkNodeFeatureClass

Naming Modifications for the FDO API Libraries

Components in the FDO API were renamed to remove references to Gis and to standardize the components to use FDO (uppercase) as a prefix. 

 

Component

Description

GisCommon

Common type definition and templates. Renamed to FDOCommon.

GisGeometry

Geometry interfaces and factory for FGF. Renamed to FDOGeometry

FdoMessage

Message catalogue for FDO. Renamed to FDOMessage

GisMessage

Message catalogue for GisCommon and GisGeometry Integrated with FDOMessage to form a single message catalogue.

GisNLS

Globalization utility Renamed to FDONLS

GisSpatial

Utility component around GisGeometry.  Includes: geometry validation, transformation of ordinate (integer to double), approximation algorithm. Renamed to FDOSpatial

MgCommon

Managed wrapper for GisCommon. Renamed to OSGeo.FDO.Common.dll

MgFDO

Managed wrapper for Fdo.  Renamed to OSGeo.FDO.dll

MgGeometry

Managed wrapper for GisGeometry. Renamed to OSGeo.FDO.Geometry.dll

MgSpatial

Spatial utility based on GisGeometry. Renamed to OSGeo.FDO.Spatial.dll

 

 

Enforcing Open Source Code Naming Conventions

With these changes, all class names in the FDO API should now start with camel case “Fdo”. The FDO interface definitions will start with “FdoI”. Class members will be defined by getter and setter prefix with Get/Set. 

 

The FDO providers implmentations have been 'somewhat' standardized to name their Fdo implementation classes following the pattern: Fdo<provider abbreviation>Implementation.

 

The current FDO API makes use of terms ‘Autodesk’ and ‘Gis’. These terms will be replaced in the Open Source release with ‘OSGeo’ and ‘Fdo’. The following sections outline the major areas of change.

Managed API Namespaces Changes

In version 3.0 the namespaces for the FDO Managed APIs refer to Autodesk.Gis.Fdo.  These namespaces will be modified to reference OSGeo.FDO as follows:

 

3.0 API

3.2 API

Autodesk.Gis

OSGeo

Autodesk.Gis.Runtime

OSGeo.Runtime

Autodesk.Gis.Common

OSGeo.Common

Autodesk.Gis.Geometry

OSGeo.Geometry

Autodesk.Gis.Spatial

OSGeo.Spatial

Autodesk.Gis.Fdo

OSGeo.FDO

Autodesk.Gis.Fdo.Utilities

OSGeo.FDO.Utilities

Autodesk.Gis.Fdo.Providers

OSGeo.FDO.Providers

Autodesk.Gis.Fdo.Providers.Shape

OSGeo.FDO.Providers.SHP

Autodesk.Gis.Fdo.Providers.ODBC

OSGeo.FDO.Providers.ODBC

Autodesk.Gis.Fdo.Providers.MySQL

OSGeo.FDO.Providers.MySQL

Autodesk.Gis.Fdo.Providers.WMS

OSGeo.FDO.Providers.WMS

Autodesk.Gis.Fdo.Providers.WFS

OSGeo.FDO.Providers.WFS

Macro/Preprocessor Name Changes

There are a number of FDO macro and preprocessor definitions that were renamed to remove references to Gis.

 

3.0 API

3.2 API

EXP_GIS

EXP_FDO

EXP_GISGEOM

EXP_GEOM

GIS_API

FDO_API

GISGEOM_API

GEOM_API

GISSPATIAL_STATIC

SPATIAL_STATIC

EXP_GISSPATIAL

EXP_SPATIAL

GISSPATIAL_API

SPATIAL_API

GIS_COLL_MAP_THRESHOLD

FDO_COLL_MAP_THRESHOLD

GIS_NLSID

FDO_NLSID

GIS_SAFE_RELEASE

FDO_SAFE_RELEASE

GIS_SAFE_ADDREF

FDO_SAFE_ADDREF

Type Name Changes

There were a number of FDO type definitions that were renamed to remove references to Gis.

 

3.0 API

3.2 API

GisDimensionality

FdoDimensionality

GisGeometryType

FdoGeometryType

GisGeometryComponentType

FdoGeometryComponentType

GisStreamReaderType

FdoStreamReaderType

GisSpatialGeometryValidity

FdoSpatialGeometryValidity

GisToken

FdoToken

gis_awkt_yytokentype

fdo_awkt_yytokentype

GisByte

FdoByte

GisInt8

FdoInt8

GisInt16

FdoInt16

GisInt32

FdoInt32

GisInt64

FdoInt64

GisCharacter

FdoCharacter

GisVoid

FdoVoid

GisDouble

FdoDouble

GisFloat

FdoFloat

GisSize

FdoSize

GisBoolean

FdoBoolean

GisString

FdoString

GisDateTime

FdoDateTime

GisSpatialGeometryValidity

FdoSpatialGeometryValidity

Class/Interface Name Changes

The prefix for the FDO Common classes was changed from Gis to Fdo

 

3.0 Class Names

3.2 Class Names

 

 

GisArray

FdoArray

GisIntArray

FdoIntArray

GisArrayHelper

FdoArrayHelper

GisCollection

FdoCollection

GisDictionary

FdoDictionary

GisDictionaryElement

FdoDictionaryElement

GisDisposable

FdoDisposable

GisIDisposable

FdoIDisposable

GisException

FdoException

GisPtr

FdoPtr

GisSemaphore

FdoSemaphore

GisStringP

FdoStringP

GisIDisposable

FdoIDisposable

GisIStreamReader

FdoIStreamReader

GisIStreamReaderTmpl

FdoIStreamReaderTmpl

GisNamedCollection

FdoNamedCollection

GisReadOnlyNamedCollection

FdoReadOnlyNamedCollection

GisRestrictedNamedCollection

FdoRestrictedNamedCollection

GisStack

FdoStack

GisStringElement

FdoStringElement

GisStringCollection

FdoStringCollection

GisStringsP

FdoStringsP

GisDateTime

FdoDateTime

GisVectorElement

FdoVectorElement

GisVector

FdoVector

GisVectorP

FdoVectorP

GisGml212

FdoGml212

GisGml212Schema

FdoGml212Schema

GisIoBufferStream

FdoIoBufferStream

GisIoByteStreamReader

FdoIoByteStreamReader

GisIoFileStream

FdoIoFileStream

GisIoMemoryStream

FdoIoMemoryStream

GisIoObjectStreamReader

FdoIoObjectStreamReader

GisIoObjectStream

FdoIoObjectStream

GisIoStream

FdoIoStream

GisIoTextReader

FdoIoTextReader

GisIoTextWriter

FdoIoTextWriter

GisXmlAttribute

FdoXmlAttribute

GisXmlAttributeCollection

FdoXmlAttributeCollection

GisXmlCharDataHandler

FdoXmlCharDataHandler

GisXmlCopyHandler

FdoXmlCopyHandler

GisXmlReader

FdoXmlReader

GisXmlSaxContext

FdoXmlSaxContext

GisXmlSaxHandler

FdoXmlSaxHandler

GisXmlSkipElementHandler

FdoXmlSkipElementHandler

GisXmlUtilXrcs

FdoXmlUtilXrcs

GisXmlWriter

FdoXmlWriter

GisXml

FdoXml

GisXslTransformer

FdoXslTransformer

GisXslTransformerXalan

FdoXslTransformerXalan

 

 

 

NOTE: Class GisException and class FdoException were merged together to form a single FdoException exception class.

 

The prefix of the FDO Geometry classes was changed from Gis to Fdo

 

3.0 Class Names

3.2 Class Names

 

 

GisDirectPositionImpl

FdoDirectPositionImpl

GisEnvelopeImpl

FdoEnvelopeImpl

GisGeometryFactoryAbstract

FdoGeometryFactoryAbstract

GisIArcSegmentAbstract

FdoIArcSegmentAbstract

GisICircularArcSegment

FdoICircularArcSegment

GisICurveAbstract

FdoICurveAbstract

GisICurvePolygon

FdoICurvePolygon

GisCurvePolygonCollection

FdoCurvePolygonCollection

GisICurveSegmentAbstract

FdoICurveSegmentAbstract

GisCurveSegmentCollection

FdoCurveSegmentCollection

GisICurveString

FdoICurveString

GisCurveStringCollection

FdoCurveStringCollection

GisIDirectPosition

FdoIDirectPosition

GisDirectPositionCollection

FdoDirectPositionCollection

GisIEnvelope

FdoIEnvelope

GisIGeometricAggregateAbstract

FdoIGeometricAggregateAbstract

GisIGeometry

FdoIGeometry

GisGeometryCollection

FdoGeometryCollection

GisILinearRing

FdoILinearRing

GisLinearRingCollection

FdoLinearRingCollection

GisILineString

FdoILineString

GisLineStringCollection

FdoLineStringCollection

GisILineStringSegment

FdoILineStringSegment

GisIMultiCurvePolygon

FdoIMultiCurvePolygon

GisIMultiCurveString

FdoIMultiCurveString

GisIMultiGeometry

FdoIMultiGeometry

GisIMultiLineString

FdoIMultiLineString

GisIMultiPoint

FdoIMultiPoint

GisIMultiPolygon

FdoIMultiPolygon

GisIPoint

FdoIPoint

GisPointCollection

FdoPointCollection

GisIPolygon

FdoIPolygon

GisPolygonCollection

FdoPolygonCollection

GisIRing

FdoIRing

GisRingCollection

FdoRingCollection

GisIRingAbstract

FdoIRingAbstract

GisISurfaceAbstract

FdoISurfaceAbstract

GisAgfGeometryFactory

FdoFgfGeometryFactory

GisGeometryStreamFactory

FdoGeometryStreamFactory

GisGeometryStreamReader

FdoGeometryStreamReader

GisGeometryStreamWriter

FdoGeometryStreamWriter

 

 

 

The prefix of the FDO Spatial API classes was changed from Gis to Fdo