#pragma once #include #include #include namespace erebos { using std::vector; class NetworkProtocol { public: NetworkProtocol(); explicit NetworkProtocol(int sock); NetworkProtocol(const NetworkProtocol &) = delete; NetworkProtocol(NetworkProtocol &&); NetworkProtocol & operator=(const NetworkProtocol &) = delete; NetworkProtocol & operator=(NetworkProtocol &&); ~NetworkProtocol(); bool recvfrom(vector & buffer, sockaddr_in6 & addr); void sendto(const vector & buffer, sockaddr_in addr); void sendto(const vector & buffer, sockaddr_in6 addr); void shutdown(); private: int sock; }; }