class XBT_PUBLIC Engine {
public:
/** Constructor, taking the command line parameters of your main function */
- Engine(int* argc, char** argv);
+ explicit Engine(int* argc, char** argv);
/** Currently, only one instance is allowed to exist. This is why you can't copy or move it */
Engine(const Engine&) = delete;
Engine(Engine&&) = delete;
protected:
friend s4u::Host;
+ friend s4u::Link;
friend s4u::Storage;
friend kernel::routing::NetPoint;
friend kernel::routing::NetZoneImpl;
+ friend kernel::resource::LinkImpl;
void host_register(std::string name, simgrid::s4u::Host* host);
void host_unregister(std::string name);
+ void link_register(std::string name, simgrid::s4u::Link* link);
+ void link_unregister(std::string name);
void storage_register(std::string name, simgrid::s4u::Storage* storage);
void storage_unregister(std::string name);
void netpoint_register(simgrid::kernel::routing::NetPoint* card);
size_t get_link_count();
std::vector<Link*> get_all_links();
+ std::vector<Link*> get_filtered_links(std::function<bool(Link*)> filter);
+ simgrid::s4u::Link* link_by_name(std::string name);
+ simgrid::s4u::Link* link_by_name_or_null(std::string name);
+
+ size_t get_actor_count();
+ std::vector<ActorPtr> get_all_actors();
+ std::vector<ActorPtr> get_filtered_actors(std::function<bool(ActorPtr)> filter);
size_t get_storage_count();
std::vector<Storage*> get_all_storages();