#include "context.hh"
#include "pqueue.hh"
-class Global_context : public Context
+struct Preinit_Global_context
{
- PQueue<Moment> extra_mom_pq_;
Output_def *output_def_;
+ Preinit_Global_context ();
+};
+
+class Global_context : Preinit_Global_context, public Context
+{
+ PQueue<Moment> extra_mom_pq_;
+ virtual void derived_mark () const;
DECLARE_CLASSNAME (Global_context);
void apply_finalizations ();
void add_finalization (SCM);
- DECLARE_LISTENER (prepare);
+ void prepare (SCM);
virtual SCM get_output ();
virtual Output_def *get_output_def () const;
virtual Moment now_mom () const;
virtual Context *get_default_interpreter (const string &context_id = "");
- static Global_context *unsmob (SCM x) {
- return dynamic_cast<Global_context *> (Context::unsmob (x));
- }
- static bool is_smob (SCM x) {
- return Context::is_smob (x) && unsmob (x);
- }
-
Moment previous_moment () const;
protected:
Moment prev_mom_;