1 #ifndef AESALON_INTERFACE_PROGRAM_MANAGER_H
2 #define AESALON_INTERFACE_PROGRAM_MANAGER_H
4 #include "misc/SmartPointer.h"
5 #include "platform/BidirectionalPipe.h"
6 #include "platform/ArgumentList.h"
7 #include "PTracePortal.h"
8 #include "elf/Parser.h"
9 #include "dwarf/Parser.h"
14 class ProgramManager
{
16 Misc::SmartPointer
<Platform::BidirectionalPipe
> bi_pipe
;
17 Misc::SmartPointer
<Platform::ArgumentList
> argument_list
;
21 Misc::SmartPointer
<PTracePortal
> ptrace_portal
;
23 Misc::SmartPointer
<ELF::Parser
> elf_parser
;
24 Misc::SmartPointer
<DWARF::Parser
> dwarf_parser
;
26 ProgramManager(Misc::SmartPointer
<Platform::ArgumentList
> argument_list
);
27 virtual ~ProgramManager() {}
33 Misc::SmartPointer
<Platform::ArgumentList
> get_argument_list() const { return argument_list
; }
35 bool is_running() const { return running
; }
38 } // namespace Interface
39 } // namespace Aesalon