query/include/matador/net/socket_interrupter.hpp

39 lines
607 B
C++

#ifndef MATADOR_SOCKET_INTERRUPTER_HPP
#define MATADOR_SOCKET_INTERRUPTER_HPP
#include "matador/net/ip.hpp"
#include "matador/logger/logger.hpp"
#include <array>
namespace matador::net {
/// @cond MATADOR_DEV
class OOS_NET_API socket_interrupter
{
public:
socket_interrupter();
~socket_interrupter();
socket_type socket_id() const;
void interrupt();
bool reset();
private:
tcp::socket server_;
tcp::socket client_;
logger::logger log_;
std::array<char, 1> indicator_ = { { 0 } };
std::array<char, 1> consumer_ = {};
};
/// @endcond
}
#endif //MATADOR_SOCKET_INTERRUPTER_HPP