summaryrefslogtreecommitdiffstats
path: root/3rdparty/clucene/src/CLucene/util/Equators.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/clucene/src/CLucene/util/Equators.h')
-rw-r--r--3rdparty/clucene/src/CLucene/util/Equators.h274
1 files changed, 274 insertions, 0 deletions
diff --git a/3rdparty/clucene/src/CLucene/util/Equators.h b/3rdparty/clucene/src/CLucene/util/Equators.h
new file mode 100644
index 000000000..11fcb0eaf
--- /dev/null
+++ b/3rdparty/clucene/src/CLucene/util/Equators.h
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
+ *
+ * Distributable under the terms of either the Apache License (Version 2.0) or
+ * the GNU Lesser General Public License, as specified in the COPYING file.
+ *
+ * Changes are Copyright(C) 2007, 2008 by Nokia Corporation and/or its subsidiary(-ies), all rights reserved.
+*/
+#ifndef _lucene_util_Equators_
+#define _lucene_util_Equators_
+
+#if defined(_LUCENE_PRAGMA_ONCE)
+# pragma once
+#endif
+
+#include <QtCore/QString>
+
+//#ifdef QT_LINUXBASE
+// we are going to use qreal now, we basically maintain our own clucene anyway
+//// LSB doesn't define float_t - see http://bugs.linuxbase.org/show_bug.cgi?id=2374
+//typedef float float_t;
+//#endif
+
+CL_NS_DEF(util)
+
+///////////////////////////////////////////////////////////////////////////////
+// Equators
+///////////////////////////////////////////////////////////////////////////////
+
+class Equals{
+public:
+ class Int32:public CL_NS_STD(binary_function)<const int32_t*,const int32_t*,bool>
+ {
+ public:
+ bool operator()( const int32_t val1, const int32_t val2 ) const;
+ };
+
+ class Char:public CL_NS_STD(binary_function)<const char*,const char*,bool>
+ {
+ public:
+ bool operator()( const char* val1, const char* val2 ) const;
+ };
+#ifdef _UCS2
+ class WChar: public CL_NS_STD(binary_function)<const wchar_t*,const wchar_t*,bool>
+ {
+ public:
+ bool operator()( const wchar_t* val1, const wchar_t* val2 ) const;
+ };
+ class TChar: public WChar{
+ };
+#else
+ class TChar: public Char{
+ };
+#endif
+
+ template<typename _cl>
+ class Void:public CL_NS_STD(binary_function)<const void*,const void*,bool>
+ {
+ public:
+ bool operator()( _cl* val1, _cl* val2 ) const{
+ return val1==val2;
+ }
+ };
+
+ class Qstring : public CL_NS_STD(binary_function)<const QString&, const QString&, bool>
+ {
+ public:
+ bool operator() (const QString& val1, const QString& val2) const;
+ };
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Comparors
+///////////////////////////////////////////////////////////////////////////////
+
+class Comparable : LUCENE_BASE
+{
+public:
+ virtual ~Comparable(){
+ }
+
+ virtual int32_t compareTo(void* o) = 0;
+};
+
+/** @internal */
+class Compare{
+public:
+ class _base
+ { // traits class for hash containers
+ public:
+ enum
+ { // parameters for hash table
+ bucket_size = 4, // 0 < bucket_size
+ min_buckets = 8
+ }; // min_buckets = 2 ^^ N, 0 < N
+
+ _base()
+ {
+ }
+ };
+
+ class Int32:public _base, public Comparable{
+ int32_t value;
+ public:
+ int32_t getValue() const;
+ Int32(int32_t val);
+ Int32();
+ int32_t compareTo(void* o);
+ bool operator()( int32_t t1, int32_t t2 ) const;
+ size_t operator()( int32_t t ) const;
+ };
+
+
+ class Float:public Comparable{
+ qreal value;
+ public:
+ qreal getValue() const;
+ Float(qreal val);
+ int32_t compareTo(void* o);
+ };
+
+
+ class Char: public _base //<char*>
+ {
+ public:
+ bool operator()( const char* val1, const char* val2 ) const;
+ size_t operator()( const char* val1) const;
+ };
+
+#ifdef _UCS2
+ class WChar: public _base //<wchar_t*>
+ {
+ public:
+ bool operator()( const wchar_t* val1, const wchar_t* val2 ) const;
+ size_t operator()( const wchar_t* val1) const;
+ };
+#endif
+
+ class TChar: public _base, public Comparable{
+ const TCHAR* s;
+ public:
+ const TCHAR* getValue() const;
+
+ TChar();
+ TChar(const TCHAR* str);
+ int32_t compareTo(void* o);
+ bool operator()( const TCHAR* val1, const TCHAR* val2 ) const;
+ size_t operator()( const TCHAR* val1) const;
+ };
+
+
+ template<typename _cl>
+ class Void:public _base //<const void*,const void*,bool>
+ {
+ public:
+ int32_t compareTo(_cl* o){
+ if ( this == o )
+ return o;
+ else
+ return this > o ? 1 : -1;
+ }
+ bool operator()( _cl* t1, _cl* t2 ) const{
+ return t1 > t2 ? true : false;
+ }
+ size_t operator()( _cl* t ) const{
+ return (size_t)t;
+ }
+ };
+
+ class Qstring : public _base
+ {
+ public:
+ bool operator() (const QString& val1, const QString& val2) const;
+ size_t operator() (const QString& val1) const;
+ };
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// allocators
+///////////////////////////////////////////////////////////////////////////////
+
+class Deletor
+{
+public:
+
+ template<typename _kt>
+ class Array{
+ public:
+ static void doDelete(_kt* arr){
+ _CLDELETE_LARRAY(arr);
+ }
+ };
+ class tcArray{
+ public:
+ static void doDelete(const TCHAR* arr){
+ _CLDELETE_CARRAY(arr);
+ }
+ };
+ class acArray{
+ public:
+ static void doDelete(const char* arr){
+ _CLDELETE_CaARRAY(arr);
+ }
+ };
+
+ class Unintern{
+ public:
+ static void doDelete(TCHAR* arr);
+ };
+ template<typename _kt>
+ class Object{
+ public:
+ static void doDelete(_kt* obj){
+ _CLLDELETE(obj);
+ }
+ };
+ template<typename _kt>
+ class Void{
+ public:
+ static void doDelete(_kt* obj){
+ _CLVDELETE(obj);
+ }
+ };
+ class Dummy{
+ public:
+ static void doDelete(const void* nothing)
+ {
+ // TODO: remove all occurances where it hits this point
+ // CND_WARNING(false, "Deletor::Dummy::doDelete run, set deleteKey
+ // or deleteValue to false");
+ }
+ };
+ class DummyInt32{
+ public:
+ static void doDelete(const int32_t nothing){
+ }
+ };
+ class DummyFloat{
+ public:
+ static void doDelete(const qreal nothing){
+ }
+ };
+ template <typename _type>
+ class ConstNullVal{
+ public:
+ static void doDelete(const _type nothing)
+ {
+ // TODO: remove all occurances where it hits this point
+ // CND_WARNING(false, "Deletor::Dummy::doDelete run, set deleteKey
+ // or deleteValue to false");
+ }
+ };
+
+ template <typename _type>
+ class NullVal{
+ public:
+ static void doDelete(_type nothing)
+ {
+ // TODO: remove all occurances where it hits this point
+ // CND_WARNING(false, "Deletor::Dummy::doDelete run, set deleteKey
+ // or deleteValue to false");
+ }
+ };
+ class DummyQString {
+ public:
+ static void doDelete(const QString& nothing) {
+ }
+ };
+};
+////////////////////////////////////////////////////////////////////////////////
+
+CL_NS_END
+#endif