]> www.ginac.de Git - cln.git/blob - src/integer/hash/cl_I_hash_gcobject.h
49d2d18bda7c16f1df12305b6162dcdcd264eec8
[cln.git] / src / integer / hash / cl_I_hash_gcobject.h
1 // cl_I hash tables
2
3 #ifndef _CL_I_HASH_GCOBJECT_H
4 #define _CL_I_HASH_GCOBJECT_H
5
6 #include "cln/number.h"
7 #include "cln/integer.h"
8 #include "base/hash/cl_hash1.h"
9
10 namespace cln {
11
12 typedef cl_htentry1<cl_I,cl_gcobject> cl_htentry_from_integer_to_gcobject;
13
14 typedef cl_heap_hashtable_1<cl_I,cl_gcobject> cl_heap_hashtable_from_integer_to_gcobject;
15
16 typedef _cl_hashtable_iterator<cl_htentry_from_integer_to_gcobject> cl_hashtable_from_integer_to_gcobject_iterator;
17
18 struct cl_ht_from_integer_to_gcobject : public cl_gcpointer {
19         // Constructors.
20         cl_ht_from_integer_to_gcobject ();
21         cl_ht_from_integer_to_gcobject (const cl_ht_from_integer_to_gcobject&);
22         // Assignment operators.
23         cl_ht_from_integer_to_gcobject& operator= (const cl_ht_from_integer_to_gcobject&);
24         // Iterator.
25         cl_hashtable_from_integer_to_gcobject_iterator iterator () const
26         { return ((cl_heap_hashtable_from_integer_to_gcobject*)pointer)->iterator(); }
27         // Lookup.
28         cl_gcobject * get (const cl_I& x) const;
29         // Store.
30         void put (const cl_I& x, const cl_gcobject& y) const;
31 };
32
33 }  // namespace cln
34
35 #endif /* _CL_I_HASH_GCOBJECT_H */