2 object-key-undumper-scheme.cc -- implement Object_key_undumper bindings
4 source file of the GNU LilyPond music typesetter
6 (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
10 #include "object-key-undumper.hh"
12 LY_DEFINE(ly_undumper_read_keys, "ly:undumper-read-keys",
14 (SCM undumper, SCM keys),
15 "Read serialized @var{keys} into @var{undumper}."
18 Object_key_undumper *u = unsmob_key_undumper (undumper);
19 SCM_ASSERT_TYPE(u, undumper, SCM_ARG1, __FUNCTION__, "Undumper");
21 u->parse_contents (keys);
22 return SCM_UNSPECIFIED;
25 LY_DEFINE(ly_make_undumper, "ly:make-undumper",
28 "Create a key undumper. "
31 Object_key_undumper *u = new Object_key_undumper ();
32 SCM x = u->self_scm();
33 scm_gc_unprotect_object (x);
38 LY_DEFINE(ly_undumper_lookup, "ly:undumper-lookup",
40 (SCM undumper, SCM serial),
41 "Return the object key for number @var{serial}. "
45 Object_key_undumper* u = unsmob_key_undumper (undumper);
47 SCM_ASSERT_TYPE(u, undumper, SCM_ARG1, __FUNCTION__, "undumper");
48 SCM_ASSERT_TYPE(scm_is_integer(serial), serial, SCM_ARG2, __FUNCTION__, "integer");
49 return u->get_key (scm_to_int (serial))->self_scm();