#ifndef __PRSONA_NETWORK_ORCHESTRATOR_HPP #define __PRSONA_NETWORK_ORCHESTRATOR_HPP #include #include #include #include "networking.hpp" const std::chrono::seconds ONE_SECOND(1); /* "PUBLIC" FUNCTIONS */ // START UP AND SHUT DOWN INSTANCES int start_remote_actor( const std::string& target, bool server, const std::string& id, const std::string& output, bool maliciousServers); void shut_down_remote_actors( const std::vector& relevantIPs, const std::vector& relevantPorts); // SYNCHRONIZATION void wait_for_servers_ready( std::string dealer, int dealerPort); void wait_for_clients_ready( std::string dealer, int dealerPort, size_t numClients); // RUN EXPERIMENT void execute_experiment( std::string dealer, int dealerPort, const char *filename); /* "PRIVATE" FUNCTIONS */ // TRIGGER EXPERIMENT EVENTS void trigger_epoch_change( std::string dealer, int dealerPort); void trigger_vote( std::string target, int targetPort); void trigger_reputation_proof( std::string target, int targetPort, std::string verifier, int verifierPort); #endif