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