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
