Changes between Initial Version and Version 1 of FdoIReaderGetConnection

Oct 18, 2007 8:30:35 AM (12 years ago)



  • FdoIReaderGetConnection

    v1 v1  
     2== FDO IReader !GetConnection Support ==
     4=== Overview ===
     6The OSGeo !MapGuide web tier architecture is currently designed to hang on to an FDO IReader interface. In such an architecture, when the web tier finally calls the Close() method on the reader, the server doesn't know which FDO connection was released along with the Reader. This makes it difficult to track how many active FDO connections are currently open. Such a limitation is going makes restricting the # of concurrent FDO provider connections and supporting single-threaded providers difficult in !MapGuide.
     8With this change, an enhancement will be implemented that would see the FdoIReader interface updated to include a !GetConnection method. The following section defines how this new method will be specified.
     10=== FdoIReader::!GetConnection ===
     12The FdoIReader interface will be modified to support a Connection property as follows. All Provider implementations of FdoIReader, FdoIFeatureReader, FdoIScrollableFeatureReader, will be required to implement support for returning the Connection property. No default implementation will be provided.
     15/// \brief
     16/// The FdoIFeatureReader interface provides a forward-only, read-only iterator
     17/// for reading feature data.  A reference to an FdoIFeatureReader is returned
     18/// from the Select and SelectAndLock commands. Because the initial position of the
     19/// FdoIFeatureReader is prior to the first item, you must call
     20/// ReadNext to begin accessing any data.
     21class FdoIReader: public FdoIDisposable
     24    /// \brief
     25    /// Retrieves the FdoIConnection associated to the reader object
     26    ///
     27    /// \return
     28    /// Returns the FdoIConnection object attached to the reader object. The
     29    /// returned connection object's reference count will be incremented.
     30    /// Callers are expected to Release the connection once finished with it.
     31    ///
     32    /// \remarks
     33    /// Throws an instance of FdoException if an error occurs.
     34    ///
     35    FDO_API virtual FdoIConnection* GetConnection(void) = 0;