Lines Matching refs:set
53 * int MultiSet_getNumElements (const MultiSet* set);
54 * deBool MultiSet_exists (const MultiSet* set, Key key);
55 * deBool MultiSet_insert (MultiSet* set, Key key);
56 * void MultiSet_delete (MultiSet* set, Key key);
57 * int MultiSet_getKeyCount (const MultiSet* set, Key key);
58 * deBool MultiSet_setKeyCount (MultiSet* set, Key key, int count);
73 void TYPENAME##_reset (DE_PTR_TYPE(TYPENAME) set); \
74 deBool TYPENAME##_setKeyCount (DE_PTR_TYPE(TYPENAME) set, KEYTYPE key, int newCount); \
76 DE_INLINE int TYPENAME##_getNumElements (const TYPENAME* set) \
78 return set->numElements; \
81 DE_INLINE int TYPENAME##_getKeyCount (const TYPENAME* set, KEYTYPE key) \
83 int* countPtr = TYPENAME##Hash_find(set->hash, key); \
89 DE_INLINE deBool TYPENAME##_exists (const TYPENAME* set, KEYTYPE key) \
91 return (TYPENAME##_getKeyCount(set, key) > 0); \
94 DE_INLINE deBool TYPENAME##_insert (DE_PTR_TYPE(TYPENAME) set, KEYTYPE key) \
96 int oldCount = TYPENAME##_getKeyCount(set, key); \
97 return TYPENAME##_setKeyCount(set, key, oldCount + 1); \
100 DE_INLINE void TYPENAME##_delete (DE_PTR_TYPE(TYPENAME) set, KEYTYPE key) \
102 int oldCount = TYPENAME##_getKeyCount(set, key); \
104 TYPENAME##_setKeyCount(set, key, oldCount - 1); \
116 * This macro has implements the set declared with DE_DECLARE_POOL_MULTISET.
128 DE_PTR_TYPE(TYPENAME) set = DE_POOL_NEW(pool, TYPENAME); \
129 if (!set) \
133 memset(set, 0, sizeof(TYPENAME)); \
134 set->pool = pool; \
136 set->hash = TYPENAME##Hash_create(pool); \
138 return set; \
141 void TYPENAME##_reset (DE_PTR_TYPE(TYPENAME) set) \
143 TYPENAME##Hash_reset(set->hash); \
144 set->numElements = 0; \
147 deBool TYPENAME##_setKeyCount (DE_PTR_TYPE(TYPENAME) set, KEYTYPE key, int newCount) \
149 int* countPtr = TYPENAME##Hash_find(set->hash, key); \
154 set->numElements += (newCount - oldCount); \
157 TYPENAME##Hash_delete(set->hash, key); \
161 return TYPENAME##Hash_insert(set->hash, key, newCount); \
168 * \brief Declare set-wise operations for a multiset template.
169 * \param TYPENAME Type name of the declared set.
177 * The functions for operating the set are: