FDO .NET API Reference Feature Data Objects

mgIReaderImp.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma once
00020 
00021 #include "FDO\Commands\Feature\mgIReader.h"
00022 
00023 class FdoIReader;
00024 
00025 BEGIN_NAMESPACE_OSGEO_FDO_EXPRESSION
00026 public __gc class LOBValue;
00027 END_NAMESPACE_OSGEO_FDO_EXPRESSION
00028 
00029 BEGIN_NAMESPACE_OSGEO_COMMON
00030 public __gc __interface IStreamReader;
00031 END_NAMESPACE_OSGEO_COMMON
00032 
00033 BEGIN_NAMESPACE_OSGEO_FDO_RASTER
00034 public __gc __interface IRaster;
00035 END_NAMESPACE_OSGEO_FDO_RASTER
00036 
00037 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE
00038 
00039 /// \ingroup (OSGeoFDOCommandsFeature)
00040 /// \brief
00041 /// The IReaderImp class is a concrete implementation class for interface IReader.
00042 /// The IReader interface provides a forward-only, read-only iterator for reading data. 
00043 /// Because the initial position of the IReader is prior to the first item, you must call
00044 /// ReadNext to begin accessing any data.
00045 private __gc class IReaderImp : public NAMESPACE_OSGEO_RUNTIME::Disposable, 
00046                                 public NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IReader
00047 {
00048 public:
00049     /// \brief
00050     /// Gets the Boolean value of the specified property. No conversion is
00051     /// performed, thus the property must be DataType_Boolean or an 
00052     /// exception is thrown.
00053     /// 
00054     /// \param name 
00055     /// Input the property name.
00056     /// 
00057     /// \return
00058     /// Returns the Boolean value.
00059     /// 
00060     System::Boolean GetBoolean(System::String* name);
00061 
00062     /// \brief
00063     /// Gets the byte value of the specified property. No conversion is 
00064     /// performed, thus the property must be DataType_Byte or an 
00065     /// exception is thrown.
00066     /// 
00067     /// \param name 
00068     /// Input the property name.
00069     /// 
00070     /// \return
00071     /// Returns the byte value.
00072     /// 
00073     System::Byte GetByte(System::String* name);
00074 
00075     /// \brief
00076     ///  Gets the date and time value of the specified property. No conversion is 
00077     /// performed, thus the property must be DataType_DateTime or an 
00078     /// exception is thrown.
00079     /// 
00080     /// \param name 
00081     /// Input the property name.
00082     /// 
00083     /// \return
00084     /// Returns the date and time value.
00085     /// 
00086     System::DateTime GetDateTime(System::String* name);
00087 
00088     /// \brief
00089     /// Gets the double-precision floating point value of the specified property. No
00090     /// conversion is performed, thus the property must be DataType_Double
00091     /// or an exception is thrown.
00092     /// 
00093     /// \param name 
00094     /// Input the property name.
00095     /// 
00096     /// \return
00097     /// Returns the double floating point value
00098     /// 
00099     System::Double GetDouble(System::String* name);
00100 
00101     /// \brief
00102     /// Gets the 16-bit integer value of the specified property. No conversion is
00103     /// performed, thus the property must be DataType_Int16 or an exception
00104     /// is thrown.
00105     /// 
00106     /// \param name 
00107     /// Input the property name.
00108     /// 
00109     /// \return
00110     /// Returns the System::Int16 value.
00111     /// 
00112     System::Int16 GetInt16(System::String* name);
00113 
00114     /// \brief
00115     /// Gets the 32-bit integer value of the specified property. No conversion is
00116     /// performed, thus the property must be DataType_Int32 or an exception
00117     /// is thrown.
00118     /// 
00119     /// \param name 
00120     /// Input the property name.
00121     /// 
00122     /// \return
00123     /// Returns the System::Int32 value
00124     /// 
00125     System::Int32 GetInt32(System::String* name);
00126 
00127     /// \brief
00128     /// Gets the 64-bit integer value of the specified property. No conversion is
00129     /// performed, thus the property must be DataType_Int64 or an exception
00130     /// is thrown.
00131     /// 
00132     /// \param name 
00133     /// Input the property name.
00134     /// 
00135     /// \return
00136     /// Returns the System::Int63 value.
00137     /// 
00138     System::Int64 GetInt64(System::String* name);
00139 
00140     /// \brief
00141     /// Gets the Single floating point value of the specified property. No
00142     /// conversion is performed, thus the property must be DataType_Single
00143     /// or an exception is thrown.
00144     /// 
00145     /// \param name 
00146     /// Input the property name.
00147     /// 
00148     /// \return
00149     /// Returns the single value
00150     /// 
00151     System::Single GetSingle(System::String* name);
00152 
00153     /// \brief
00154     /// Gets the string value of the specified property. No conversion is
00155     /// performed, thus the property must be DataType_String or an exception
00156     /// is thrown.
00157     /// 
00158     /// \param name 
00159     /// Input the property name.
00160     /// 
00161     /// \return
00162     /// Returns the string value
00163     /// 
00164     System::String* GetString(System::String* name);
00165 
00166     /// \brief
00167     /// Gets a LOBValue reference. The LOB is fully read in and data available.
00168     /// Because no conversion is performed, the property must be DataType_BLOB or
00169     /// DataType_CLOB etc. (a LOB type)
00170     /// 
00171     /// \param name 
00172     /// Input the property name.
00173     /// 
00174     /// \return
00175     /// Returns the reference to LOBValue
00176     /// 
00177     NAMESPACE_OSGEO_FDO_EXPRESSION::LOBValue* GetLOB(System::String* name);
00178 
00179     /// \brief
00180     /// Gets a reference of the specified LOB property as a BLOBStreamReader or
00181     /// CLOBStreamReader etc. to allow reading in blocks of data.
00182     /// Because no conversion is performed, the property must be DataType_BLOB 
00183     /// or DataType_CLOB etc. (a LOB type)
00184     /// Cast the IStreamReader to the appropiate LOB Stream Reader.
00185     /// 
00186     /// \param name 
00187     /// Input the property name.
00188     /// 
00189     /// \return
00190     /// Returns a reference to a LOB stream reader
00191     /// 
00192     NAMESPACE_OSGEO_COMMON::IStreamReader* GetLOBStreamReader(System::String* name);
00193 
00194     /// \brief
00195     /// Returns true if the value of the specified property is null.
00196     /// 
00197     /// \param name 
00198     /// Input the property name.
00199     /// 
00200     /// \return
00201     /// Returns true if the value is null.
00202     /// 
00203     System::Boolean IsNull(System::String* name);
00204 
00205     /// \brief
00206     /// Gets the geometry value of the specified property as a byte array in 
00207     /// FGF format. Because no conversion is performed, the property must be
00208     /// of Geometric type; otherwise, an exception is thrown.
00209     /// 
00210     /// \param name 
00211     /// Input the property name.
00212     /// 
00213     /// \return
00214     /// Returns the byte array in FGF format.
00215     /// 
00216     System::Byte GetGeometry(System::String* name) [];
00217 
00218     /// \brief
00219     /// Gets the raster object of the specified property.
00220     /// Because no conversion is performed, the property must be
00221     /// of Raster type; otherwise, an exception is thrown.
00222     /// 
00223     /// \param name 
00224     /// Input the property name.
00225     /// 
00226     /// \return
00227     /// Returns the raster object.
00228     /// 
00229     NAMESPACE_OSGEO_FDO_RASTER::IRaster* GetRaster(System::String* name);
00230 
00231     /// \brief
00232     /// Advances the reader to the next item and returns true if there is
00233     /// another object to read or false if reading is complete. The default
00234     /// position of the reader is prior to the first item. Thus you must
00235     /// call ReadNext to begin accessing any data.
00236     /// 
00237     /// \return
00238     /// Returns true if there is a next item.
00239     /// 
00240     System::Boolean ReadNext();
00241 
00242     /// \brief
00243     /// Closes the IFeatureReader object, freeing any resources it may be holding.
00244     /// 
00245     /// \return
00246     /// Returns nothing
00247     /// 
00248     System::Void Close();
00249 
00250 /// \cond DOXYGEN-IGNORE
00251 protected:
00252     System::Void ReleaseUnmanagedObject();
00253 /// \endcond
00254 
00255 public private:
00256     IReaderImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_RUNTIME::Disposable(unmanaged, autoDelete)
00257     {
00258 
00259     }
00260 
00261     inline FdoIReader* GetImpObj();
00262 };
00263 
00264 END_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE
00265 
00266 

Comments or suggestions? Send us feedback.