- Main Page
- Related Pages
- Modules
- Classes
- Files

# IConnection.h

Go to the documentation of this file.

    00001 #ifndef _ICONNECTION_H_
    00002 #define _ICONNECTION_H_
    00003 //
    00004
    00005 //
    00006 // Copyright (C) 2004-2006  Autodesk, Inc.
    00007 //
    00008 // This library is free software; you can redistribute it and/or
    00009 // modify it under the terms of version 2.1 of the GNU Lesser
    00010 // General Public License as published by the Free Software Foundation.
    00011 //
    00012 // This library is distributed in the hope that it will be useful,
    00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00015 // Lesser General Public License for more details.
    00016 //
    00017 // You should have received a copy of the GNU Lesser General Public
    00018 // License along with this library; if not, write to the Free Software
    00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    00020 //
    00021
    00022 #ifdef _WIN32
    00023 #pragma once
    00024 #endif
    00025
    00026 #include <FdoStd.h>
    00027 #include <Fdo/Commands/ICommand.h>
    00028 #include <Fdo/Commands/Schema/PhysicalSchemaMapping.h>
    00029 #include <Fdo/Connections/ConnectionException.h>
    00030 #include <Fdo/Connections/ConnectionState.h>
    00031 #include <Fdo/Connections/IConnection.h>
    00032 #include <Fdo/Connections/IConnectionInfo.h>
    00033 #include <Fdo/Connections/IConnectionPropertyDictionary.h>
    00034 #include <Fdo/Connections/ITransaction.h>
    00035 #include <Fdo/Connections/Capabilities/ArgumentDefinition.h>
    00036 #include <Fdo/Connections/Capabilities/FunctionDefinition.h>
    00037 #include <Fdo/Connections/Capabilities/ICommandCapabilities.h>
    00038 #include <Fdo/Connections/Capabilities/IConnectionCapabilities.h>
    00039 #include <Fdo/Connections/Capabilities/IExpressionCapabilities.h>
    00040 #include <Fdo/Connections/Capabilities/IFilterCapabilities.h>
    00041 #include <Fdo/Connections/Capabilities/ISchemaCapabilities.h>
    00042 #include <Fdo/Connections/Capabilities/ThreadCapability.h>
    00043 #include <Fdo/Connections/Capabilities/IRasterCapabilities.h>
    00044 #include <Fdo/Connections/Capabilities/ITopologyCapabilities.h>
    00045 #include <Fdo/Connections/Capabilities/IGeometryCapabilities.h>
    00046
    00047 class FdoICommand;
    00048
    00049 /// \brief
    00050 /// The FdoIConnection interface enables a feature provider to implement a
    00051 /// connection class, which represents a unique session with a data
    00052 /// store.
    00053 class FdoIConnection : public FdoIDisposable
    00054 {
    00055 public:
    00056     /// \brief
    00057     /// Gets an FdoIConnectionCapabilities interface describing the capabilities
    00058     /// of the connection.
    00059     ///
    00060     /// \return
    00061     /// Returns the connection capabilities
    00062     ///
    00063     FDO_API virtual FdoIConnectionCapabilities* GetConnectionCapabilities() = 0;
    00064
    00065     /// \brief
    00066     /// Gets an FdoISchemaCapabilities interface describing the provider's support for the feature schema.
    00067     ///
    00068     /// \return
    00069     /// Returns schema capabilities
    00070     ///
    00071     FDO_API virtual FdoISchemaCapabilities* GetSchemaCapabilities() = 0;
    00072
    00073     /// \brief
    00074     /// Gets an FdoICommandCapabilities interface describing the commands a provider supports.
    00075     ///
    00076     /// \return
    00077     /// Returns the command capabilities
    00078     ///
    00079     FDO_API virtual FdoICommandCapabilities* GetCommandCapabilities() = 0;
    00080
    00081     /// \brief
    00082     /// Gets an FdoIFilterCapabilities interface describing the provider's support for filters.
    00083     ///
    00084     /// \return
    00085     /// Returns the filter capabilities
    00086     ///
    00087     FDO_API virtual FdoIFilterCapabilities* GetFilterCapabilities() = 0;
    00088
    00089     /// \brief
    00090     /// Gets an FdoIExpressionCapabilities interface describing the provider's support for expressions.
    00091     ///
    00092     /// \return
    00093     /// Returns the expression capabilities
    00094     ///
    00095     FDO_API virtual FdoIExpressionCapabilities* GetExpressionCapabilities() = 0;
    00096
    00097     /// \brief
    00098     /// Gets an FdoIRasterCapabilities interface describing the provider's support for raster images.
    00099     ///
    00100     /// \return
    00101     /// Returns the raster capabilities
    00102     ///
    00103     FDO_API virtual FdoIRasterCapabilities* GetRasterCapabilities() = 0;
    00104
    00105     /// \brief
    00106     /// Gets an FdoITopologyCapabilities interface describing the provider's support for topology.
    00107     ///
    00108     /// \return
    00109     /// Returns the topology capabilities
    00110     ///
    00111     FDO_API virtual FdoITopologyCapabilities* GetTopologyCapabilities() = 0;
    00112
    00113     /// \brief
    00114     /// Gets an FdoIGeometryCapabilities interface describing the provider's support for geometry.
    00115     ///
    00116     /// \return
    00117     /// Returns the geometry capabilities
    00118     ///
    00119     FDO_API virtual FdoIGeometryCapabilities* GetGeometryCapabilities() = 0;
    00120
    00121     /// \brief
    00122     /// Gets the connection string used to open a DataStore.
    00123     ///
    00124     /// \return
    00125     /// Returns the connection string
    00126     ///
    00127     FDO_API virtual FdoString* GetConnectionString() = 0;
    00128
    00129     /// \brief
    00130     /// Sets the connection string used to open a DataStore. SetConnectionString can only be set while the
    00131     /// connection is closed.
    00132     ///
    00133     /// \param value
    00134     /// Input the connection string
    00135     ///
    00136     /// \return
    00137     /// Returns nothing
    00138     ///
    00139     FDO_API virtual void SetConnectionString(FdoString* value) = 0;
    00140
    00141     /// \brief
    00142     /// Gets an FdoIConnectionInfo interface that can be used to interrogate and set connection properties.
    00143     ///
    00144     /// \return
    00145     /// Returns the connection info
    00146     ///
    00147     FDO_API virtual FdoIConnectionInfo* GetConnectionInfo() = 0;
    00148
    00149     /// \brief
    00150     /// Gets the current state of the connection.
    00151     ///
    00152     /// \return
    00153     /// Returns the current state of the connection
    00154     ///
    00155     FDO_API virtual FdoConnectionState GetConnectionState() = 0;
    00156
    00157     /// \brief
    00158     /// Gets the number of milliseconds to wait while trying to establish a
    00159     /// connection before terminating the attempt and generating an error. If
    00160     /// the provider does not support the timeout capability 0 will be returned
    00161     ///
    00162     /// \return
    00163     /// Returns the time to wait (in milliseconds)
    00164     ///
    00165     FDO_API virtual FdoInt32 GetConnectionTimeout() = 0;
    00166
    00167     /// \brief
    00168     /// Sets the number of milliseconds to wait while trying to establish a
    00169     /// connection before terminating the attempt and generating an error. If
    00170     /// the provider does not support the timeout capability then attempting to
    00171     /// set a timeout will result in an exception
    00172     ///
    00173     /// \param value
    00174     /// Input the time to wait (in milliseconds)
    00175     ///
    00176     /// \return
    00177     /// Returns nothing
    00178     ///
    00179     FDO_API virtual void SetConnectionTimeout(FdoInt32 value) = 0;
    00180
    00181     /// \brief
    00182     /// Opens a feature connection with the settings specified by the
    00183     /// ConnectionString attribute of the provider-specific feature connection
    00184     /// object.
    00185     ///
    00186     /// \return
    00187     /// Returns nothing
    00188     ///
    00189     FDO_API virtual FdoConnectionState Open() = 0;
    00190
    00191     /// \brief
    00192     /// Closes the connection to the DataStore
    00193     ///
    00194     /// \return
    00195     /// Returns nothing
    00196     ///
    00197     FDO_API virtual void Close() = 0;
    00198
    00199     /// \brief
    00200     /// Begins a transaction and returns an object that realizes
    00201     /// FdoITransaction.
    00202     ///
    00203     /// \return
    00204     /// Returns the transaction
    00205     ///
    00206     FDO_API virtual FdoITransaction* BeginTransaction() = 0;
    00207
    00208     /// \brief
    00209     /// Creates and returns the specified type of command object associated with
    00210     /// the connection.
    00211     ///
    00212     /// \param commandType
    00213     /// Input the command type to be created
    00214     ///
    00215     /// \return
    00216     /// Returns the command
    00217     ///
    00218     FDO_API virtual FdoICommand* CreateCommand(FdoInt32 commandType) = 0;
    00219
    00220     /// \brief
    00221     /// Factory function that creates an empty Schema Override set specific
    00222     /// to this FDO Provider.
    00223     ///
    00224     /// \return
    00225     /// Returns FdoPhysicalSchemaMapping
    00226     ///
    00227     FDO_API virtual FdoPhysicalSchemaMapping* CreateSchemaMapping() = 0;
    00228
    00229     /// \brief
    00230     /// Sets the XML configuration stream used to configure the Data Store.
    00231     /// SetConfiguration can only be called while the connection is closed.
    00232     ///
    00233     /// \param configStream
    00234     /// Input the XML configuration stream
    00235     ///
    00236     /// \return
    00237     /// Returns nothing
    00238     ///
    00239     FDO_API virtual void SetConfiguration(FdoIoStream* configStream) = 0;
    00240
    00241     /// \brief
    00242     /// Forces the writes of any cached data to the targed datastore.
    00243     ///
    00244     /// \return
    00245     /// Returns nothing
    00246     ///
    00247     FDO_API virtual void Flush() = 0;
    00248 };
    00249 #endif
    00250
    00251

Please send us your comment about this page