X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fscm-hash.hh;h=9d1bcf8ca74effb26bb120475d3554b0ad4d380b;hb=eeb973b4126dad28bd9f60ab2af772c919401e23;hp=626ae3d7ae9155c614748e197049dfe64e62bfdc;hpb=7cacca4ac9e71dc19ba1c1fc600d2bd4ac4b9b26;p=lilypond.git diff --git a/lily/include/scm-hash.hh b/lily/include/scm-hash.hh index 626ae3d7ae..9d1bcf8ca7 100644 --- a/lily/include/scm-hash.hh +++ b/lily/include/scm-hash.hh @@ -1,66 +1,55 @@ -/* +/* scm-hash.hh -- declare Scheme hasher. - + source file of the GNU LilyPond music typesetter - - (c) 1999--2002 Han-Wen Nienhuys - - */ + + (c) 1999--2007 Han-Wen Nienhuys +*/ #ifndef SCM_HASH_HH #define SCM_HASH_HH - -#include "lily-guile.hh" #include "smobs.hh" +/* + hash table. -/** - auto resizing hash table. - - 1. ALWAYS USE THIS AS VIA A POINTER, i.e. - - class Foo { - Scheme_hash_table * tab; - }; + 1. ALWAYS USE THIS AS VIA A POINTER, i.e. - and NOT + class Foo { + Scheme_hash_table * tab; + }; - class Foo { - Scheme_hash_table tab; - } + and NOT + class Foo { + Scheme_hash_table tab; + } - 2. UPON DESTRUCTION, DO - scm_gc_unprotect_object (tab->self_scm_); + 2. UPON DESTRUCTION, DO - */ + scm_gc_unprotect_object (tab->self_scm_); +*/ class Scheme_hash_table -{ +{ public: bool try_retrieve (SCM key, SCM *val); - bool elem_b (SCM key) const; - - /** - WARNING: putting something in assumes responsibility for cleaning - up. */ + bool contains (SCM key) const; void set (SCM k, SCM v); - SCM get (SCM k) const; + SCM get (SCM k) const; void remove (SCM k); Scheme_hash_table (); - void operator = (Scheme_hash_table const &); + void operator = (Scheme_hash_table const &); Scheme_hash_table (Scheme_hash_table const &); - SCM to_alist () const; + private: SCM hash_tab_; - unsigned elt_count_; - - DECLARE_SMOBS (Scheme_hash_table,foo); + void copy (Scheme_hash_table const &src); + DECLARE_SMOBS (Scheme_hash_table); }; - #endif /* SCM_HASH_HH */