FDO API Reference | Feature Data Objects |
00001 #ifndef FDO_XML_IFEATUREREADER_H_ 00002 #define FDO_XML_IFEATUREREADER_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/Schema/ClassDefinition.h> 00028 #include <Fdo/Raster/IRaster.h> 00029 #include <Fdo/Expression/LOBValue.h> 00030 #include <Fdo/Commands/Feature/IReader.h> 00031 00032 /// \brief 00033 /// The FdoIFeatureReader interface provides a forward-only, read-only iterator 00034 /// for reading feature data. A reference to an FdoIFeatureReader is returned 00035 /// from the Select and SelectAndLock commands. Because the initial position of the 00036 /// FdoIFeatureReader is prior to the first item, you must call 00037 /// ReadNext to begin accessing any data. 00038 class FdoIFeatureReader: public FdoIReader 00039 { 00040 public: 00041 /// \brief 00042 /// Gets the definition of the object currently being read. If the user 00043 /// has requested only a subset of the class properties, the class 00044 /// definition reflects what the user has asked, rather than the full class 00045 /// definition. 00046 /// 00047 /// \return 00048 /// Returns the class definition object. 00049 /// 00050 FDO_API virtual FdoClassDefinition* GetClassDefinition() = 0; 00051 00052 /// \brief 00053 /// Gets a value indicating the depth of nesting for the current reader. 00054 /// The depth value increases each time GetFeatureObject is called and a new 00055 /// reader is returned. The outermost reader has a depth of 0. 00056 /// 00057 /// \return 00058 /// Returns the depth 00059 /// 00060 FDO_API virtual FdoInt32 GetDepth() = 0; 00061 00062 /// \brief 00063 /// Gets the geometry value of the specified property as a byte array in 00064 /// FGF format. Because no conversion is performed, the property must be 00065 /// of Geometric type; otherwise, an exception is thrown. 00066 /// This method is a language-specific performance optimization that returns a 00067 /// pointer to the array data, rather than to an object that encapsulates 00068 /// the array. The array's memory area is only guaranteed to be valid 00069 /// until a call to ReadNext() or Close(), or the disposal of this reader 00070 /// object. 00071 /// 00072 /// \param propertyName 00073 /// Input the property name. 00074 /// \param count 00075 /// Output the number of bytes in the array. 00076 /// 00077 /// \return 00078 /// Returns a pointer to the byte array in FGF format. 00079 /// 00080 FDO_API virtual const FdoByte * GetGeometry(FdoString* propertyName, FdoInt32 * count) = 0; 00081 00082 /// \brief 00083 /// Gets the geometry value of the specified property as a byte array in 00084 /// FGF format. Because no conversion is performed, the property must be 00085 /// of Geometric type; otherwise, an exception is thrown. 00086 /// 00087 /// \param propertyName 00088 /// Input the property name. 00089 /// 00090 /// \return 00091 /// Returns the byte array in FGF format. 00092 /// 00093 FDO_API virtual FdoByteArray* GetGeometry(FdoString* propertyName) = 0; 00094 00095 /// \brief 00096 /// Gets a reference to an FdoIFeatureReader to read the data contained in 00097 /// the object or object collection property. If the property is not an 00098 /// object property, an exception is thrown. 00099 /// 00100 /// \param propertyName 00101 /// Input the property name. 00102 /// 00103 /// \return 00104 /// Returns the nested feature reader 00105 /// 00106 FDO_API virtual FdoIFeatureReader* GetFeatureObject(FdoString* propertyName) = 0; 00107 }; 00108 #endif 00109 00110
Comments or suggestions? Send us feedback. |