3 #ifndef _CL_I_HASH_RCPOINTER_H
4 #define _CL_I_HASH_RCPOINTER_H
7 #include "cl_integer.h"
9 // For the sake of gcc-2.7.x, this declaration must come before cl_hash1.h.
10 extern unsigned long hashcode (const cl_I& x);
15 static inline bool equal (const cl_I& x, const cl_I& y)
16 { return (bool)cl_equal(x,y); }
18 typedef cl_htentry1<cl_I,cl_rcpointer> cl_htentry_from_integer_to_rcpointer;
20 typedef cl_heap_hashtable_1<cl_I,cl_rcpointer> cl_heap_hashtable_from_integer_to_rcpointer;
22 typedef _cl_hashtable_iterator<cl_htentry_from_integer_to_rcpointer> cl_hashtable_from_integer_to_rcpointer_iterator;
24 struct cl_ht_from_integer_to_rcpointer : public cl_gcpointer {
26 cl_ht_from_integer_to_rcpointer ();
27 cl_ht_from_integer_to_rcpointer (const cl_ht_from_integer_to_rcpointer&);
28 // Assignment operators.
29 cl_ht_from_integer_to_rcpointer& operator= (const cl_ht_from_integer_to_rcpointer&);
31 cl_hashtable_from_integer_to_rcpointer_iterator iterator () const
32 { return ((cl_heap_hashtable_from_integer_to_rcpointer*)pointer)->iterator(); }
34 cl_rcpointer * get (const cl_I& x) const;
36 void put (const cl_I& x, const cl_rcpointer& y) const;
39 #endif /* _CL_I_HASH_RCPOINTER_H */