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