#include <errno.h>
#include <string.h>
#include <stdio.h> // perror
+#include <cstddef> // std::size_t
#include <sys/types.h>
#include <sys/socket.h>
#include <xbt/log.h>
#include "src/mc/mc_protocol.h"
-#include "src/mc/mc_client.h"
-
-extern "C" {
+#include "src/mc/Client.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_protocol, mc, "Generic MC protocol logic");
-int MC_protocol_send(int socket, const void* message, std::size_t size)
-{
- XBT_DEBUG("Protocol [%s] send %s",
- MC_mode_name(mc_mode),
- MC_message_type_name(*(e_mc_message_type*) message));
-
- while (send(socket, message, size, 0) == -1) {
- if (errno == EINTR)
- continue;
- else
- return errno;
- }
- return 0;
-}
-
-int MC_protocol_send_simple_message(int socket, e_mc_message_type type)
-{
- s_mc_message_t message;
- message.type = type;
- return MC_protocol_send(socket, &message, sizeof(message));
-}
-
-ssize_t MC_receive_message(int socket, void* message, size_t size, int options)
-{
- int res = recv(socket, message, size, options);
- if (res != -1) {
- XBT_DEBUG("Protocol [%s] received %s",
- MC_mode_name(mc_mode),
- MC_message_type_name(*(e_mc_message_type*) message));
- }
- return res;
-}
-
const char* MC_message_type_name(e_mc_message_type type)
{
switch(type) {
return "?";
}
}
-
-}