2 performer-group-performer.hh -- declare Performer_group_performer
4 (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
5 Jan Nieuwenhuizen <jan@digicash.com>
8 #ifndef PERFORMER_GROUP_PERFORMER_HH
9 #define PERFORMER_GROUP_PERFORMER_HH
11 #include "lily-proto.hh"
14 #include "performer.hh"
15 #include "translator.hh"
18 Group a number of performers. Usually delegates everything to its contents.
21 class Performer_group_performer : public Performer, public virtual Translator {
23 DECLARE_MY_RUNTIME_TYPEINFO;
24 Input_translator* itrans_l_;
26 Performer_group_performer();
27 ~Performer_group_performer();
29 virtual void add( Performer* perf_p );
30 virtual void print()const { Performer::print() ; }
31 virtual Moment get_mom() const;
32 virtual bool do_try_request( Request* req_l );
33 virtual bool try_request(Request*r) { return Performer::try_request(r) ; }
37 virtual Translator* find_get_translator_l( String name, String id );
38 virtual Translator* get_default_interpreter();
40 Translator * ancestor_l( int l = 1 );
41 virtual int depth_i() const;
43 virtual void process_requests();
44 virtual void do_removal_processing();
45 virtual void do_creation_processing();
47 bool is_bottom_performer_b() const;
48 virtual Performer_group_performer* find_performer_l( String name, String id );
50 virtual void do_print()const;
52 Pointer_list<Performer*> perf_p_list_;
54 Link_array<Performer_group_performer> group_l_arr_;
55 Link_array<Performer> nongroup_l_arr_;
58 #endif // PERFORMER_GROUP_PERFORMER_HH