#ifndef REGISTERGROUP_HH
#define REGISTERGROUP_HH
-
+#include "parray.hh"
#include "plist.hh"
#include "score-elem-info.hh"
#include "register.hh"
class Register_group_register : public Request_register {
protected:
Pointer_list<Request_register*> reg_list_;
+ Link_array<Register_group_register> group_l_arr_;
+ Link_array<Request_register> nongroup_l_arr_;
+ String id_str_;
+
+ Array<Score_elem_info> announce_info_arr_;
+
virtual void do_print()const;
-public:
+ virtual bool removable_b()const;
+
+public:
+ int iterator_count_;
+ void check_removal();
+ Register_group_register();
+ ~Register_group_register();
+
+ /// Score_register = 0, Staff_registers = 1, etc)
+ virtual int depth_i()const;
+ /**
+ Go up in the tree. default: choose next parent
+ */
+ Register_group_register * ancestor_l(int l=1);
+
+ Input_register * ireg_l_;
+
/**
Junk #reg_l#.
*/
virtual void terminate_register(Request_register * reg_l);
- NAME_MEMBERS(Register_group_register);
+ NAME_MEMBERS();
/**
Remove #reg_l# from the list, and return it.
*/
- virtual Request_register * get_register_p(Request_register*reg_l);
+ virtual Request_register * remove_register_p(Request_register*reg_l);
virtual void set_feature(Feature i);
- virtual bool acceptable_request_b(Request*)const;
virtual void sync_features() ;
- virtual void pre_move_processing();
- virtual void post_move_processing();
- virtual void acknowledge_element(Score_elem_info info);
- virtual bool try_request(Request*);
- virtual void process_requests();
- virtual ~Register_group_register();
+ virtual void do_pre_move_processing();
+ virtual void do_post_move_processing();
+
+ virtual void do_removal_processing();
+ virtual bool do_try_request(Request*);
+ virtual void do_process_requests();
+
+ virtual Staff_info get_staff_info()const;
+
+ virtual Register_group_register * find_register_l(String name,String id);
+ virtual void do_announces();
+ virtual void announce_element(Score_elem_info);
+ virtual Register_group_register* find_get_reg_l(String name, String id);
+ virtual Register_group_register * get_default_interpreter();
+
virtual void add(Request_register* reg_p);
- void add(Array<Request_register*> reg_p_arr);
+
virtual bool contains_b(Request_register*)const;
};