// NEXT_BLOCKER is used to block the next input file from adding
// symbols.
Read_symbols(const General_options& options, Input_objects* input_objects,
- Symbol_table* symtab, Layout* layout, const Dirsearch& dirpath,
+ Symbol_table* symtab, Layout* layout, Dirsearch* dirpath,
const Input_argument* input_argument, Input_group* input_group,
Task_token* this_blocker, Task_token* next_blocker)
: options_(options), input_objects_(input_objects), symtab_(symtab),
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);
+ std::string
+ get_name() const;
+
private:
// Handle an archive group.
void
do_group(Workqueue*);
+ // Open and identify the file.
+ bool
+ do_read_symbols(Workqueue*);
+
const General_options& options_;
Input_objects* input_objects_;
Symbol_table* symtab_;
Layout* layout_;
- const Dirsearch& dirpath_;
+ Dirsearch* dirpath_;
const Input_argument* input_argument_;
Input_group* input_group_;
Task_token* this_blocker_;
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);
-private:
- class Add_symbols_locker;
+ std::string
+ get_name() const
+ { return "Add_symbols " + this->object_->name(); }
+private:
Input_objects* input_objects_;
Symbol_table* symtab_;
Layout* layout_;
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);
+ std::string
+ get_name() const
+ { return "Finish_group"; }
+
private:
Input_objects* input_objects_;
Symbol_table* symtab_;