• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*---------------------------------------------------------------------------*
2  *  HashMap.c  *
3  *                                                                           *
4  *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
5  *                                                                           *
6  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
7  *  you may not use this file except in compliance with the License.         *
8  *                                                                           *
9  *  You may obtain a copy of the License at                                  *
10  *      http://www.apache.org/licenses/LICENSE-2.0                           *
11  *                                                                           *
12  *  Unless required by applicable law or agreed to in writing, software      *
13  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
15  *  See the License for the specific language governing permissions and      *
16  *  limitations under the License.                                           *
17  *                                                                           *
18  *---------------------------------------------------------------------------*/
19 
20 #include "HashMap.h"
21 #include "HashMapImpl.h"
22 #include "pmemory.h"
23 #include <string.h>
24 
HashMapPut(HashMap * self,const LCHAR * key,void * value)25 ESR_ReturnCode HashMapPut(HashMap* self, const LCHAR* key, void* value)
26 {
27   if (self == NULL)
28     return ESR_INVALID_ARGUMENT;
29   return self->put(self, key, value);
30 }
31 
HashMapRemove(HashMap * self,const LCHAR * key)32 ESR_ReturnCode HashMapRemove(HashMap* self, const LCHAR* key)
33 {
34   if (self == NULL)
35     return ESR_INVALID_ARGUMENT;
36   return self->remove(self, key);
37 }
38 
HashMapRemoveAndFree(HashMap * self,const LCHAR * key)39 ESR_ReturnCode HashMapRemoveAndFree(HashMap* self, const LCHAR* key)
40 {
41   if (self == NULL)
42     return ESR_INVALID_ARGUMENT;
43   return self->removeAndFree(self, key);
44 }
45 
HashMapRemoveAtIndex(HashMap * self,const size_t index)46 ESR_ReturnCode HashMapRemoveAtIndex(HashMap* self, const size_t index)
47 {
48   if (self == NULL)
49     return ESR_INVALID_ARGUMENT;
50   return self->removeAtIndex(self, index);
51 }
52 
HashMapRemoveAll(HashMap * self)53 ESR_ReturnCode HashMapRemoveAll(HashMap* self)
54 {
55   if (self == NULL)
56     return ESR_INVALID_ARGUMENT;
57   return self->removeAll(self);
58 }
59 
HashMapRemoveAndFreeAll(HashMap * self)60 ESR_ReturnCode HashMapRemoveAndFreeAll(HashMap* self)
61 {
62   if (self == NULL)
63     return ESR_INVALID_ARGUMENT;
64   return self->removeAndFreeAll(self);
65 }
66 
HashMapContainsKey(HashMap * self,const LCHAR * key,ESR_BOOL * exists)67 ESR_ReturnCode HashMapContainsKey(HashMap* self, const LCHAR* key, ESR_BOOL* exists)
68 {
69   if (self == NULL)
70     return ESR_INVALID_ARGUMENT;
71   return self->containsKey(self, key, exists);
72 }
73 
HashMapGetSize(HashMap * self,size_t * size)74 ESR_ReturnCode HashMapGetSize(HashMap* self, size_t* size)
75 {
76   if (self == NULL)
77     return ESR_INVALID_ARGUMENT;
78   return self->getSize(self, size);
79 }
80 
HashMapGet(HashMap * self,const LCHAR * key,void ** value)81 ESR_ReturnCode HashMapGet(HashMap* self, const LCHAR* key, void** value)
82 {
83   if (self == NULL)
84     return ESR_INVALID_ARGUMENT;
85   return self->get(self, key, value);
86 }
87 
HashMapGetKeyAtIndex(HashMap * self,const size_t index,LCHAR ** key)88 ESR_ReturnCode HashMapGetKeyAtIndex(HashMap* self, const size_t index, LCHAR** key)
89 {
90   if (self == NULL)
91     return ESR_INVALID_ARGUMENT;
92   return self->getKeyAtIndex(self, index, key);
93 }
94 
HashMapGetValueAtIndex(HashMap * self,const size_t index,void ** value)95 ESR_ReturnCode HashMapGetValueAtIndex(HashMap* self, const size_t index, void** value)
96 {
97   if (self == NULL)
98     return ESR_INVALID_ARGUMENT;
99   return self->getValueAtIndex(self, index, value);
100 }
101 
HashMapDestroy(HashMap * self)102 ESR_ReturnCode HashMapDestroy(HashMap* self)
103 {
104   if (self == NULL)
105     return ESR_INVALID_ARGUMENT;
106   return self->destroy(self);
107 }
108