#ifndef TASKS_H #define TASKS_H #include #include void task_zero(AGGenInstance &instance, std::deque &localFrontier, double mem_threshold); void task_one(AGGenInstance &instance, NetworkState ¤t_state,\ std::vector &exploit_list, std::unordered_map> &od_map,\ int alloc, int two_alloc, int reduc_factor, int num_tasks, boost::mpi::communicator &world,\ boost::mpi::communicator &tcomm); void task_two(AGGenInstance &instance, int alloc, int two_alloc, boost::mpi::communicator &world,\ std::deque &localFrontier, double mem_threshold, boost::mpi::communicator &ttwo_comm,\ std::vector ex_groups, std::unordered_map &hash_map); void task_three(AGGenInstance &instance, NetworkState &new_state, std::deque &localFrontier,\ double mem_threshold, boost::mpi::communicator &world, int alloc, int two_alloc, NetworkState ¤t_state,\ Exploit &exploit, AssetGroup &assetGroup, std::unordered_map &hash_map, int last_known_id); void task_four(NetworkState &new_state); int send_check(boost::mpi::communicator &world, int curr_node); void state_merge(std::vector &node_factbases, std::vector &node_edges,\ std::unordered_map &hash_map, AGGenInstance &instance, double mem_threshold,\ mpi::communicator &world); void edge_adjustment(AGGenInstance &instance, std::unordered_map &hash_map); #endif //TASKS_H