1/* 2 File: CItemComparer.cpp 3 4 Contains: Implementation of the CItemComparer class 5 6*/ 7 8#include "CItemComparer.h" 9 10//-------------------------------------------------------------------------------- 11#define super OSObject 12 OSDefineMetaClassAndStructors(CItemComparer, OSObject); 13//-------------------------------------------------------------------------------- 14 15 16//-------------------------------------------------------------------------------- 17// CItemComparer::cItemComparer 18//-------------------------------------------------------------------------------- 19CItemComparer * 20CItemComparer::cItemComparer(const void* testItem, const void* keyValue) 21{ 22 CItemComparer *obj = new CItemComparer; 23 if (obj && !obj->init(testItem, keyValue)) { 24 obj->release(); 25 obj = nil; 26 } 27 return obj; 28} 29 30 31//-------------------------------------------------------------------------------- 32// CItemComparer::init 33//-------------------------------------------------------------------------------- 34Boolean 35CItemComparer::init(const void* testItem, const void* keyValue) 36{ 37 if (!super::init()) return false; 38 fItem = testItem; 39 fKey = keyValue; 40 return true; 41} 42 43 44//-------------------------------------------------------------------------------- 45// CItemComparer::TestItem 46//-------------------------------------------------------------------------------- 47CompareResult CItemComparer::TestItem(const void* criteria) const 48{ 49 XASSERT(fItem); 50 XASSERT(criteria); 51 52 if (fItem < criteria) 53 return kItemLessThanCriteria; 54 55 else if (fItem > criteria) 56 return kItemGreaterThanCriteria; 57 58 else 59 return kItemEqualCriteria; 60} 61 62 63//-------------------------------------------------------------------------------- 64// functions that wrap inline methods so they can be used by external callers 65// FXU - For External Use 66//-------------------------------------------------------------------------------- 67void CItemComparer::FXUSetTestItem(const void* testItem) 68{ 69 SetTestItem(testItem); 70} 71 72void CItemComparer::FXUSetKeyValue(const void* keyValue) 73{ 74 SetKeyValue(keyValue); 75} 76 77 78