Changes between Version 10 and Version 11 of MapGuideRfc117


Ignore:
Timestamp:
Aug 26, 2011, 8:02:31 AM (13 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc117

    v10 v11  
    131131This RFC proposes that the desktop implementation that currently resides in Google Code be integrated into the offical MapGuide Source Tree. Doing so allows us to have a desktop API that will automatically gain all the enhancements/bugfixes that are made to the shared components. In addition, we can reuse the existing SWIG recipe files because both desktop and server will be using the same header files, allowing for reusable .net wrapper assemblies. The SWIG recipe files hosted on Google Code currently generate a monolithic .net assembly.
    132132
     133== Desktop API additions to base platform APIs ==
     134
     135In addition to implementing the core abstract classes provided by the MgPlatformBase library, the implementations are extended with additional APIs exclusive to this particular implementation:
     136
     137{{{
     138
     139class MgdFeatureService : public MgFeatureService
     140{
     141...
     142
     143PUBLISHED_API:
     144    // Registers a new FDO provider given its library path
     145    void RegisterProvider(CREFSTRING providerLibraryPath);
     146
     147    // Un-registers a given FDO provider from the provider registry
     148    void UnregisterProvider(CREFSTRING providerName);
     149
     150    // Inserts a new feature into the specified feature class of the specified feature source
     151    MgFeatureReader* InsertFeatures(MgResourceIdentifier* resource, CREFSTRING className, MgPropertyCollection* propertyValues);
     152
     153    // Updates features of the specified feature class of the specified feature source with the specified filter
     154    int UpdateFeatures(MgResourceIdentifier* resource, CREFSTRING className, MgPropertyCollection* propertyValues, CREFSTRING filter);
     155
     156    // Deletes features from the specified feature class of the specified feature source with the specified filter
     157    int DeleteFeatures(MgResourceIdentifier* resource, CREFSTRING className, CREFSTRING filter);
     158
     159    // Inserts a new feature into the specified feature class of the specified feature source using the specified transaction
     160    MgFeatureReader* InsertFeatures(MgResourceIdentifier* resource, CREFSTRING className, MgPropertyCollection* propertyValues, MgTransaction* trans);
     161
     162    // Updates features of the specified feature class of the specified feature source with the specified filter using the specified transaction
     163    int UpdateFeatures(MgResourceIdentifier* resource, CREFSTRING className, MgPropertyCollection* propertyValues, CREFSTRING filter, MgTransaction* trans);
     164
     165    // Deletes features from the specified feature class of the specified feature source with the specified filter using the specified transaction
     166    int DeleteFeatures(MgResourceIdentifier* resource, CREFSTRING className, CREFSTRING filter, MgTransaction* trans);
     167};
     168
     169}}}
     170
    133171== Implications ==
    134172
     
    161199 * Print Layout
    162200
     201Other features that are not yet fully implemented, tested or incomplete:
     202
     203 * MgTransaction support
     204
    163205In terms of compatibility, existing MapGuide application code is compatible at the source code level provided the code is targeting the subset of the MapGuide API that is supported and implemented by this desktop API.
    164206