Changes between Version 42 and Version 43 of FDORfc34


Ignore:
Timestamp:
Sep 8, 2009, 7:39:51 PM (15 years ago)
Author:
klain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc34

    v42 v43  
    305305
    306306    /// \brief
     307    /// Gets the geometry value of the specified property at the specified index
     308    /// as a byte array in FGF format. Because no conversion is performed,
     309    /// the property must be of Geometric type; otherwise, an exception is thrown.
     310    ///
     311    /// \param index
     312    /// Input the index of the property.
     313    ///
     314    /// \return
     315    /// Returns the byte array in FGF format.
     316    ///
     317    FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) = 0;
     318
     319    /// \brief
    307320    /// Gets a reference to an FdoIFeatureReader to read the data contained in
    308321    /// the object or object collection property defined at the specified index
     
    587600}}}
    588601
    589 In order to make it work in all cases, FdoIFeatureReader also needs to expose a function of {{{FdoString* GetPropertyName(FdoInt32 index)}}} and each provider needs to override it. It has been illustrated in above updated FdoIFeatureReader interface. This work is avoidless that each provider has to know how to map between property name and index for the default implementation. For FdoIFeatureReader, the order that the default implementation will use is the same as the collection of properties returned by the class definition.
     602As for FdoIFeatureReader, there is no such function of {{{FdoString* GetPropertyName(FdoInt32 index)}}}. The default implementation will use GetClassDefinition() to enumerate the property names. The index order is the same as the collection of properties returned by the class definition.
    590603
    591604=== Managed FDO API ===
     
    601614{
    602615public:
     616    FDO_API virtual bool FdoIReader::GetBoolean(FdoString* propertyName) = 0;
     617    FDO_API virtual FdoByte FdoIReader::GetByte(FdoString* propertyName) = 0;
     618    FDO_API virtual FdoDateTime FdoIReader::GetDateTime(FdoString* propertyName) = 0;
     619    FDO_API virtual double FdoIReader::GetDouble(FdoString* propertyName) = 0;
     620    FDO_API virtual FdoInt16 FdoIReader::GetInt16(FdoString* propertyName) = 0;
     621    FDO_API virtual FdoInt32 FdoIReader::GetInt32(FdoString* propertyName) = 0;
     622    FDO_API virtual FdoInt64 FdoIReader::GetInt64(FdoString* propertyName) = 0;
     623    FDO_API virtual float FdoIReader::GetSingle(FdoString* propertyName) = 0;
     624    FDO_API virtual FdoString* FdoIReader::GetString(FdoString* propertyName) = 0;
     625    FDO_API virtual FdoLOBValue* FdoIReader::GetLOB(FdoString* propertyName) = 0;
     626    FDO_API virtual FdoIStreamReader* FdoIReader::GetLOBStreamReader(const wchar_t* propertyName ) = 0;
     627    FDO_API virtual bool FdoIReader::IsNull(FdoString* propertyName) = 0;
     628    FDO_API virtual FdoByteArray* FdoIReader::GetGeometry(FdoString* propertyName) = 0;
     629    FDO_API virtual FdoIRaster* FdoIReader::GetRaster(FdoString* propertyName) = 0;
     630    FDO_API virtual FdoDataType FdoIDataReader::GetDataType(FdoString* propertyName) = 0;
     631    FDO_API virtual FdoPropertyType FdoIDataReader::GetPropertyType(FdoString* propertyName) = 0;
     632
    603633    FDO_API virtual FdoBoolean IsNull(FdoInt32 index);
    604634    FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index);
     
    620650};
    621651}}}
     652Note: it needs to expose access by property name functions as well, otherwise they will be hiden by access by index functions that can't be visible to derived classes.
    622653All pure virtual functions for access by index are overrided with the default implementation in a similar way. e.g.
    623654{{{