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 #ifndef _SdfIExtendedSelect_H_ 00018 #define _SdfIExtendedSelect_H_ 00019 00020 #include "FdoStd.h" 00021 #include "Fdo.h" 00022 #include "SDF/IScrollableFeatureReader.h" 00023 #include "SDF/SdfCompareHandler.h" 00024 00025 class SdfIExtendedSelect : public FdoIExtendedSelect 00026 { 00027 public: 00028 // Expose the FdoISelect hidden functions 00029 using FdoISelect::GetOrderingOption; 00030 using FdoISelect::SetOrderingOption; 00031 // Expose the FdoIExtendedSelect hidden function 00032 using FdoIExtendedSelect::ExecuteScrollable; 00033 using FdoIExtendedSelect::GetOrderingOption; 00034 using FdoIExtendedSelect::SetOrderingOption; 00035 00036 /// \brief 00037 /// Executes the select command and returns a SdfIScrollableFeatureReader. 00038 /// \remarks 00039 /// Creates a temporary SDF file that contains the selected properties. 00040 /// If ordering is enabled, then the created temporary SDF file 00041 /// is sorted according to the ordering collection. 00042 /// In this case the sorting is file based where the SQLite BTree is used. 00043 // The extendedProps and extendedDefaults can be used to extend the class definition of the selected data. 00044 /// Both collections have to be in-sync otherwise an exception will be thrown. 00045 /// 00046 /// \param sdfCacheFile 00047 /// File path and name used to store the result of the query. 00048 /// 00049 /// \param extendedProps 00050 /// A collection of data property definition that extends the class definition defined by the selected properties. 00051 /// 00052 /// \param extendedDefaults 00053 /// A collection of property values used as defaults for extended properties defined by extendedProps parameter. 00054 /// 00055 /// \return 00056 /// Returns a SdfIScrollableFeatureReader object. 00057 virtual SdfIScrollableFeatureReader* ExecuteScrollable( const wchar_t* sdfCacheFile, FdoDataPropertyDefinitionCollection* extendedProps, FdoPropertyValueCollection* extendedDefaults ) = 0; 00058 }; 00059 00060 #endif 00061