15 #ifndef INCLUDED_protocols_elscripts_BaseRole_hh
16 #define INCLUDED_protocols_elscripts_BaseRole_hh
20 #include <boost/cstdint.hpp>
21 #include <boost/unordered_map.hpp>
23 #include <utility/lua/LuaObject.hh>
42 void lregister_BaseRole( lua_State * lstate );
46 BaseRole( boost::uint64_t mem_limit, boost::uint64_t reserved_mem, boost::uint64_t reserved_mem_multiplier):
47 mem_limit_(mem_limit),
48 reserved_mem_(reserved_mem),
49 reserved_mem_multiplier_(reserved_mem_multiplier),
51 mover_cache_length_(0)
56 virtual void go() = 0;
59 virtual boost::uint64_t available_mem() = 0;
66 virtual boost::uint64_t current_mem()=0;
68 boost::uint64_t mover_cache_mem() {
return mover_cache_mem_; }
70 void update_mover_cache_mem();
74 void instantiate_inputters();
75 void instantiate_inputterstream();
76 void instantiate_output();
77 void instantiate_movers();
78 void instantiate_filters();
79 void instantiate_scorefxns();
80 void instantiate_tasks();
81 void instantiate_workunits();
82 void register_calculators();
87 boost::uint64_t mem_limit_;
88 boost::uint64_t reserved_mem_;
89 boost::uint64_t reserved_mem_multiplier_;
96 int mover_cache_length_;
97 boost::uint64_t mover_cache_mem_;
106 utility::lua::LuaObject movers_;
107 utility::lua::LuaObject filters_;
108 utility::lua::LuaObject inputters_;
109 utility::lua::LuaObject outputters_;
110 utility::lua::LuaObject scorefxns_;
111 utility::lua::LuaObject tasks_;