FDO .NET API Reference Feature Data Objects

mgIFeatureReaderImp.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\mgIReaderImp.h"
00022 #include "FDO\Commands\Feature\mgIFeatureReader.h"
00023 
00024 class FdoIFeatureReader;
00025 
00026 BEGIN_NAMESPACE_OSGEO_FDO_SCHEMA
00027 public __gc class ClassDefinition;
00028 END_NAMESPACE_OSGEO_FDO_SCHEMA
00029 
00030 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE
00031 
00032 /// \ingroup (OSGeoFDOCommandsFeature)
00033 /// \brief
00034 /// The IFeatureReaderImp class is a concrete implementation class for interface IFeatureReader.
00035 /// The IFeatureReader interface provides a forward-only, read-only iterator
00036 /// for reading feature data.  A reference to an IFeatureReader is returned
00037 /// from the Select and SelectAndLock commands. Because the initial position of the
00038 /// IFeatureReader is prior to the first item, you must call
00039 /// ReadNext to begin accessing any data.
00040 private __gc class IFeatureReaderImp : public NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IReaderImp, 
00041                                        public NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IFeatureReader
00042 {
00043 public:
00044     /// \brief
00045     /// Gets the definition of the object currently being read. If the user
00046     /// has requested only a subset of the class properties, the class 
00047     /// definition reflects what the user has asked, rather than the full class 
00048     /// definition.
00049     /// 
00050     /// \return
00051     /// Returns the class definition object.
00052     /// 
00053     NAMESPACE_OSGEO_FDO_SCHEMA::ClassDefinition* GetClassDefinition();
00054 
00055     /// \brief
00056     /// Gets a value indicating the depth of nesting for the current reader.
00057     /// The depth value increases each time GetFeatureObject is called and a new 
00058     /// reader is returned. The outermost reader has a depth of 0.
00059     /// 
00060     /// \return
00061     /// Returns the feature reader depth
00062     /// 
00063     System::Int32 GetDepth();
00064 
00065     /// \brief
00066     /// Gets the geometry value of the specified property as a byte array in 
00067     /// FGF format. Because no conversion is performed, the property must be
00068     /// of Geometric type; otherwise, an exception is thrown. 
00069     /// This method is a language-specific performance optimization that returns a
00070     /// pointer to the array data, rather than to an object that encapsulates
00071     /// the array.  The array's memory area is only guaranteed to be valid
00072     /// until a call to ReadNext() or Close(), or the disposal of this reader
00073     /// object.
00074     /// 
00075     /// \param propertyName 
00076     /// Input the property name.
00077     /// 
00078     /// \return
00079     /// Returns a pointer to the byte array in FGF format.
00080     /// 
00081     System::Byte GetGeometry(System::String* propertyName) [];
00082 
00083     /// \brief
00084     /// Gets a reference to an IFeatureReader to read the data contained in
00085     /// the object or object collection property. If the property is not an
00086     /// object property, an exception is thrown.
00087     /// 
00088     /// \param propertyName 
00089     /// Input the property name.
00090     /// 
00091     /// \return
00092     /// Returns the nested feature reader
00093     /// 
00094     NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IFeatureReader* GetFeatureObject(System::String* propertyName);
00095 
00096 public private:
00097     IFeatureReaderImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE::IReaderImp(unmanaged, autoDelete)
00098     {
00099 
00100     }
00101 
00102     inline FdoIFeatureReader* GetImpObj();
00103 };
00104 
00105 END_NAMESPACE_OSGEO_FDO_COMMANDS_FEATURE
00106 
00107 

Comments or suggestions? Send us feedback.