Logo Search packages:      
Sourcecode: qt4-x11 version File versions

Equators.cpp

/*------------------------------------------------------------------------------
* 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.
------------------------------------------------------------------------------*/
#include "CLucene/StdHeader.h"
#include "Equators.h"
CL_NS_DEF(util)

bool Equals::Int32::operator()( const int32_t val1, const int32_t val2 ) const{
      return (val1)==(val2);
}

bool Equals::Char::operator()( const char* val1, const char* val2 ) const{
      if ( val1 == val2 )
            return true;
      return (strcmp( val1,val2 ) == 0);
}

#ifdef _UCS2
bool Equals::WChar::operator()( const wchar_t* val1, const wchar_t* val2 ) const{
      if ( val1 == val2 )
            return true;
      return (_tcscmp( val1,val2 ) == 0);
}
#endif


////////////////////////////////////////////////////////////////////////////////
// Comparors
////////////////////////////////////////////////////////////////////////////////

int32_t Compare::Int32::getValue() const{ return value; }
Compare::Int32::Int32(int32_t val){
      value = val;
}
Compare::Int32::Int32(){
      value = 0;
}
int32_t Compare::Int32::compareTo(void* o){
      try{
            Int32* other = (Int32*)o;
            if (value == other->value)
                  return 0;
            // Returns just -1 or 1 on inequality; doing math might overflow.
            return value > other->value ? 1 : -1;
      }catch(...){
            _CLTHROWA(CL_ERR_Runtime, "Couldnt compare types");
      }  
}

bool Compare::Int32::operator()( int32_t t1, int32_t t2 ) const{
      return t1 > t2 ? true : false;
}
size_t Compare::Int32::operator()( int32_t t ) const{
      return t;
}


float_t Compare::Float::getValue() const{
      return value;
}
Compare::Float::Float(float_t val){
      value = val;
}
int32_t Compare::Float::compareTo(void* o){
      try{
            Float* other = (Float*)o;
            if (value == other->value)
                  return 0;
            // Returns just -1 or 1 on inequality; doing math might overflow.
            return value > other->value ? 1 : -1;
      }catch(...){
            _CLTHROWA(CL_ERR_Runtime,"Couldnt compare types");
      }  
}


bool Compare::Char::operator()( const char* val1, const char* val2 ) const{
      if ( val1==val2)
            return false;
      return (strcmp( val1,val2 ) < 0);
}
size_t Compare::Char::operator()( const char* val1) const{
      return CL_NS(util)::Misc::ahashCode(val1);
}

#ifdef _UCS2
bool Compare::WChar::operator()( const wchar_t* val1, const wchar_t* val2 ) const{
      if ( val1==val2)
            return false;
      bool ret = (_tcscmp( val1,val2 ) < 0);
      return ret;
}
size_t Compare::WChar::operator()( const wchar_t* val1) const{
      return CL_NS(util)::Misc::whashCode(val1);
}
#endif

const TCHAR* Compare::TChar::getValue() const{ return s; }
Compare::TChar::TChar(){
      s=NULL;
}
Compare::TChar::TChar(const TCHAR* str){
      this->s = str;
}
int32_t Compare::TChar::compareTo(void* o){
      try{
            TChar* os = (TChar*)o;
            return _tcscmp(s,os->s);
      }catch(...){
            _CLTHROWA(CL_ERR_Runtime,"Couldnt compare types");
      }  

}

bool Compare::TChar::operator()( const TCHAR* val1, const TCHAR* val2 ) const{
      if ( val1==val2)
            return false;
      bool ret = (_tcscmp( val1,val2 ) < 0);
      return ret;
}
size_t Compare::TChar::operator()( const TCHAR* val1) const{
      return CL_NS(util)::Misc::thashCode(val1);
}

CL_NS_END

Generated by  Doxygen 1.6.0   Back to index