wiki:FDORfc24

Version 2 (modified by gregboone, 16 years ago) ( diff )

--

FDO RFC 24 - Enhanced Capability Support

This page contains an change request (RFC) for the FDO Open Source project. More FDO RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission Date April 30, 2008
Last Modified Thomas Knoell Timestamp
AuthorThomas Knoell
RFC StatusDeferred
Implementation StatusPending
Proposed Milestone3.4.0.0
Assigned PSC guide(s)Greg Boone
Voting History(vote date)
+1
+0
-0
-1

Motivation/Proposal

Some providers do not allow different shapes to be stored in the same geometry property. For example, if the geometry in a SHP file is set to store points, multi-point shapes are not allowed. Another example would be if the geometry type are lines, point data cannot be stored.

Currently, a provider cannot indicate whether or not it can handle a combination of different geometry shapes. This issue will be addressed by a new capability. It will return TRUE if multiple geometry types are supported, FALSE otherwise. This new capability will be available via the new FDO capability interfaces (see RFC 20) only. To address the capability, the identifier !FdoCapabilityType_SupportsMultipleGeometries will be added to the enumeration FdoCapabilityType and !CapabilityType_SupportsMultipleGeometriesto the enumeration CapabilityType.

To retrieve the capability value, the caller would implement the following sequence (it is assumed that the connection is already established and given):

bool                   isUnknown;
FdoPtr<FdoICapability> capability;

capability = connection->GetCapability();
bool allowsMultipleGeometries = cap->GetBooleanCapability(FdoCapabilityType_SupportsMultipleGeometries, &isUnknown);
if (isUnknown) {

  ..  specific handling if the capability is not supported

}  //  if (isUnknown) 

Test Plan

Existing unit tests will be enhanced and new unit tests added to test all changes.

Funding/Resources

Autodesk to provide resource / funding to implement the feature for the affected providers.

Note: See TracWiki for help on using the wiki.