-#define TRANSLATOR_DECLARATIONS(NAME) \
- public: \
- NAME (); \
- VIRTUAL_COPY_CONSTRUCTOR (Translator, NAME); \
- static SCM static_description_; \
+/*
+ Each translator class has a static list of listener records. Each
+ record makes one explains how to register one of the class's stream event
+ listeners to a context.
+*/
+typedef struct translator_listener_record
+{
+ Listener (*get_listener_) (void *, SCM event_class);
+ SCM event_class_;
+ struct translator_listener_record *next_;
+
+ translator_listener_record ()
+ {
+ next_ = 0;
+ event_class_ = SCM_EOL;
+ get_listener_ = 0;
+ }
+
+} translator_listener_record;
+
+#define TRANSLATOR_DECLARATIONS_NO_LISTENER(NAME) \
+private: \
+ public: \
+ NAME (); \
+ VIRTUAL_COPY_CONSTRUCTOR (Translator, NAME); \
+ static SCM static_description_; \