X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d6d03a0a88c2673c9e5c604d63912b77bc17fdd4..0bb08c80b2bff9de24524dc98f04cd145dfc93c0:/src/mc/remote/Client.hpp diff --git a/src/mc/remote/Client.hpp b/src/mc/remote/Client.hpp index 79746017b1..1d4cd21ece 100644 --- a/src/mc/remote/Client.hpp +++ b/src/mc/remote/Client.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015. The SimGrid Team. +/* Copyright (c) 2015-2018. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -26,16 +26,24 @@ namespace mc { * * Send messages to the model-checker and handles message from it. */ -class XBT_PUBLIC() Client { +class XBT_PUBLIC Client { private: - bool active_ = false; Channel channel_; - static std::unique_ptr client_; + static std::unique_ptr instance_; public: Client(); - explicit Client(int fd) : active_(true), channel_(fd) {} + explicit Client(int fd) : channel_(fd) {} void handleMessages(); + +private: + void handleDeadlockCheck(s_mc_message_t* msg); + void handleContinue(s_mc_message_t* msg); + void handleSimcall(s_mc_message_simcall_handle_t* message); + void handleRestore(s_mc_message_restore_t* msg); + void handleActorEnabled(s_mc_message_actor_enabled_t* msg); + +public: Channel const& getChannel() const { return channel_; } Channel& getChannel() { return channel_; } void mainLoop(); @@ -51,17 +59,9 @@ public: // Singleton :/ // TODO, remove the singleton antipattern. static Client* initialize(); - static Client* get() { return client_.get(); } + static Client* get() { return instance_.get(); } }; } } -SG_BEGIN_DECL() - -#if SIMGRID_HAVE_MC -void MC_ignore(void* addr, std::size_t size); -#endif - -SG_END_DECL() - #endif