]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/scm-hash.hh
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / lily / include / scm-hash.hh
index 976429682bee33d1b0715d94ecf3901f1120f63a..3453904f7152cf3c8cfe60b652fca9892803637a 100644 (file)
@@ -1,15 +1,26 @@
 /*
-  scm-hash.hh -- declare Scheme hasher.
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1999--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1999--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef SCM_HASH_HH
 #define SCM_HASH_HH
 
-#include "smobs.hh"
+#include "small-smobs.hh"
 
 /*
   hash table.
   scm_gc_unprotect_object (tab->self_scm_);
 */
 
-class Scheme_hash_table
+class Scheme_hash_table : public Smob1<Scheme_hash_table>
 {
 public:
+  int print_smob (SCM, scm_print_state *) const;
   bool try_retrieve (SCM key, SCM *val);
   bool contains (SCM key) const;
   void set (SCM k, SCM v);
   SCM get (SCM k) const;
   void remove (SCM k);
-  Scheme_hash_table ();
   void operator = (Scheme_hash_table const &);
-  Scheme_hash_table (Scheme_hash_table const &);
   SCM to_alist () const;
+  static SCM make_smob ();
 
 private:
-  SCM hash_tab_;
-  void copy (Scheme_hash_table const &src);
-  DECLARE_SMOBS (Scheme_hash_table);
+  SCM &hash_tab () const { return scm1 (); }
 };
 
 #endif /* SCM_HASH_HH */
-