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 #ifndef _SHPCOMPAREHANDLER_H 00019 #define _SHPCOMPAREHANDLER_H 00020 00021 #include "stdafx.h" 00022 00023 class ShpCompareHandler: public FdoIDisposable 00024 { 00025 private: 00026 ShpCompareHandler(); 00027 00028 protected: 00029 virtual ~ShpCompareHandler(); 00030 00031 // dispose this object 00032 virtual void Dispose() { delete this; } 00033 00034 public: 00035 /// <summary>The factory function that can be used to create new instance of this class.</summary> 00036 /// <returns>Returns a new instance of theShpCompareHandler class.</returns> 00037 static ShpCompareHandler* Create(); 00038 00039 /// <summary>Compares double values.</summary> 00040 /// <param name="name">Is the property name.</param> 00041 /// <param name="val1">Is the value of the first object.</param> 00042 /// <param name="val1">Is the value of the second object.</param> 00043 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00044 virtual int Compare( const wchar_t* name, double val1, double val2 ); 00045 00046 /// <summary>Compares float values.</summary> 00047 /// <param name="name">Is the property name.</param> 00048 /// <param name="val1">Is the value of the first object.</param> 00049 /// <param name="val1">Is the value of the second object.</param> 00050 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00051 virtual int Compare( const wchar_t* name, float val1, float val2 ); 00052 00053 /// <summary>Compares int64 values.</summary> 00054 /// <param name="name">Is the property name.</param> 00055 /// <param name="val1">Is the value of the first object.</param> 00056 /// <param name="val1">Is the value of the second object.</param> 00057 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00058 virtual int Compare( const wchar_t* name, FdoInt64 val1, FdoInt64 val2 ); 00059 00060 /// <summary>Compares int32 values.</summary> 00061 /// <param name="name">Is the property name.</param> 00062 /// <param name="val1">Is the value of the first object.</param> 00063 /// <param name="val1">Is the value of the second object.</param> 00064 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00065 virtual int Compare( const wchar_t* name, FdoInt32 val1, FdoInt32 val2 ); 00066 00067 /// <summary>Compares int16 values.</summary> 00068 /// <param name="name">Is the property name.</param> 00069 /// <param name="val1">Is the value of the first object.</param> 00070 /// <param name="val1">Is the value of the second object.</param> 00071 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00072 virtual int Compare( const wchar_t* name, FdoInt16 val1, FdoInt16 val2 ); 00073 00074 /// <summary>Compares string values.</summary> 00075 /// <param name="name">Is the property name.</param> 00076 /// <param name="val1">Is the value of the first object.</param> 00077 /// <param name="val1">Is the value of the second object.</param> 00078 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00079 virtual int Compare( const wchar_t* name, const wchar_t* val1, const wchar_t* val2 ); 00080 00081 /// <summary>Compares date time values.</summary> 00082 /// <param name="name">Is the property name.</param> 00083 /// <param name="val1">Is the value of the first object.</param> 00084 /// <param name="val1">Is the value of the second object.</param> 00085 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00086 virtual int Compare( const wchar_t* name, FdoDateTime val1, FdoDateTime val2 ); 00087 00088 /// <summary>Compares unsigned char values.</summary> 00089 /// <param name="name">Is the property name.</param> 00090 /// <param name="val1">Is the value of the first object.</param> 00091 /// <param name="val1">Is the value of the second object.</param> 00092 /// <returns>Returns a positive value if val1 is greater than val2, negative if val1 is smaller than val2 or zero if both val1 and val2 are equal.</returns> 00093 virtual int Compare( const wchar_t* name, unsigned char val1, unsigned char val2 ); 00094 00095 }; 00096 00097 00098 #endif 00099 00100