1e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly/*--------------------------------------------------------------------------
261a2c6a19dbd06a317a419623020e02056661876Praveen ChavanCopyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
3e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
4e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyRedistribution and use in source and binary forms, with or without
5e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellymodification, are permitted provided that the following conditions are met:
6e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    * Redistributions of source code must retain the above copyright
7e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      notice, this list of conditions and the following disclaimer.
8e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    * Redistributions in binary form must reproduce the above copyright
9e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      notice, this list of conditions and the following disclaimer in the
10e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      documentation and/or other materials provided with the distribution.
116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    * Neither the name of The Linux Foundation nor
12e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      the names of its contributors may be used to endorse or promote
13e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      products derived from this software without specific prior written
14e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly      permission.
15e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
16e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyNON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly--------------------------------------------------------------------------*/
28e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly#ifndef _MAP_H_
29e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly#define _MAP_H_
30e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
31e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly#include <stdio.h>
32e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellyusing namespace std;
33e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
34e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellytemplate <typename T,typename T2>
35e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellyclass Map
36e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
3761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    struct node {
38e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        T    data;
39e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        T2   data2;
40e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        node* prev;
41e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        node* next;
42e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        node(T t, T2 t2,node* p, node* n) :
4361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            data(t), data2(t2), prev(p), next(n) {}
44e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    };
45e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node* head;
46e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node* tail;
47e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node* tmp;
48e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    unsigned size_of_list;
49e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    static Map<T,T2> *m_self;
5061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    public:
51e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    Map() : head( NULL ), tail ( NULL ),tmp(head),size_of_list(0) {}
5261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    bool empty() const {
5361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        return ( !head || !tail );
5461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    }
5561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    operator bool() const {
5661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        return !empty();
5761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    }
58e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    void insert(T,T2);
59e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    void show();
60e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    int  size();
61e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    T2 find(T); // Return VALUE
62e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    T find_ele(T);// Check if the KEY is present or not
63e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    T2 begin(); //give the first ele
64e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    bool erase(T);
65e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    bool eraseall();
66e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    bool isempty();
6761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    ~Map() {
6861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        while (head) {
69e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            node* temp(head);
70e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            head=head->next;
71e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            size_of_list--;
72e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            delete temp;
73e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
74e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
75e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly};
76e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
7761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
78e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyT2 Map<T,T2>::find(T d1)
79e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
80e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
8161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
8261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (tmp) {
8361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if (tmp->data == d1) {
84e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            return tmp->data2;
85e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
8661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
87e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp = tmp->next;
88e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
8961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
90e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return 0;
91e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
92e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
9361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
94e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyT Map<T,T2>::find_ele(T d1)
95e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
96e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
9761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
9861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (tmp) {
9961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if (tmp->data == d1) {
100e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            return tmp->data;
101e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
10261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
103e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp = tmp->next;
104e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
10561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
106e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return 0;
107e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
108e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
10961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
110e7273837b521d16f87dd5fb6eea3750a51ea92daNick PellyT2 Map<T,T2>::begin()
111e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
112e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
11361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
11461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    if (tmp) {
115e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        return (tmp->data2);
116e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
11761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
118e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return 0;
119e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
120e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
12161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
122e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellyvoid Map<T,T2>::show()
123e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
124e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
12561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
12661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (tmp) {
127e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        printf("%d-->%d\n",tmp->data,tmp->data2);
128e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp = tmp->next;
129e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
130e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
131e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
13261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
133e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellyint Map<T,T2>::size()
134e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
135e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    int count =0;
136e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
13761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
13861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (tmp) {
139e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp = tmp->next;
140e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        count++;
141e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
14261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
143e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return count;
144e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
145e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
14661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
147e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellyvoid Map<T,T2>::insert(T data, T2 data2)
148e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
149e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tail = new node(data, data2,tail, NULL);
15061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
15161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    if ( tail->prev )
152e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tail->prev->next = tail;
153e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
15461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    if ( empty() ) {
155e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        head = tail;
156e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp=head;
157e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
15861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
159e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
160e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    size_of_list++;
161e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
162e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
16361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
164e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellybool Map<T,T2>::erase(T d)
165e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
166e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    bool found = false;
167e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
168e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node* prevnode = tmp;
169e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node *tempnode;
170e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
17161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (tmp) {
17261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if ((head == tail) && (head->data == d)) {
17361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            found = true;
17461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            tempnode = head;
17561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            head = tail = NULL;
17661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            delete tempnode;
17761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan            break;
178e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
17961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
18061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if ((tmp ==head) && (tmp->data ==d)) {
181e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            found = true;
182e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tempnode = tmp;
183e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tmp = tmp->next;
184e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tmp->prev = NULL;
185e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            head = tmp;
186e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tempnode->next = NULL;
187e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            delete tempnode;
188e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            break;
189e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
19061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
19161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if ((tmp == tail) && (tmp->data ==d)) {
192e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            found = true;
193e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tempnode = tmp;
194e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            prevnode->next = NULL;
195e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tmp->prev = NULL;
196e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tail = prevnode;
197e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            delete tempnode;
198e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            break;
199e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
20061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
20161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        if (tmp->data == d) {
202e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            found = true;
203e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            prevnode->next = tmp->next;
204e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tmp->next->prev = prevnode->next;
205e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            tempnode = tmp;
206e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            //tmp = tmp->next;
207e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            delete tempnode;
208e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly            break;
209e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        }
21061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
211e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        prevnode = tmp;
212e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly        tmp = tmp->next;
213e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
21461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
21561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    if (found)size_of_list--;
21661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
217e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return found;
218e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
219e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
22061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
221e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellybool Map<T,T2>::eraseall()
222e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
223e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    node *tempnode;
224e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tmp = head;
22561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
22661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    while (head) {
22761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        tempnode = head;
22861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        tempnode->next = NULL;
22961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        head = head->next;
23061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan        delete tempnode;
231e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    }
23261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
233e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    tail = head = NULL;
234e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    return true;
235e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
236e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
237e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
23861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    template <typename T,typename T2>
239e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pellybool Map<T,T2>::isempty()
240e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly{
24161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    if (!size_of_list) return true;
242e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly    else return false;
243e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly}
244e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly
245e7273837b521d16f87dd5fb6eea3750a51ea92daNick Pelly#endif // _MAP_H_
246