Changes between Version 42 and Version 43 of FDORfc34
- Timestamp:
- 09/08/09 19:39:51 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc34
v42 v43 305 305 306 306 /// \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 307 320 /// Gets a reference to an FdoIFeatureReader to read the data contained in 308 321 /// the object or object collection property defined at the specified index … … 587 600 }}} 588 601 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 useis the same as the collection of properties returned by the class definition.602 As 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. 590 603 591 604 === Managed FDO API === … … 601 614 { 602 615 public: 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 603 633 FDO_API virtual FdoBoolean IsNull(FdoInt32 index); 604 634 FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index); … … 620 650 }; 621 651 }}} 652 Note: 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. 622 653 All pure virtual functions for access by index are overrided with the default implementation in a similar way. e.g. 623 654 {{{