X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/70f8adff2c970496bdc45717cad49ddec0405ae7..10c0d7324d1a25feebaaf6f5bf9b6054e03dd0b3:/stglibs/sgcp.lib/proto.cpp diff --git a/stglibs/sgcp.lib/proto.cpp b/stglibs/sgcp.lib/proto.cpp deleted file mode 100644 index 96b6285b..00000000 --- a/stglibs/sgcp.lib/proto.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "stg/sgcp_proto.h" - -#include "stg/sgcp_transport.h" - -#include -#include - -using STG::SGCP::Proto; - -Proto::Error::Error(const std::string& message) - : runtime_error(message) -{} - -Proto::Error::Error() - : runtime_error(strerror(errno)) -{} - -Proto::Proto(TransportType transport, const std::string& key) - : m_transport(TransportProto::create(transport, key)) -{ -} - -Proto::~Proto() -{ - delete m_transport; -} - -void Proto::connect(const std::string& address, uint16_t port) -{ - try { - m_transport->connect(address, port); - } catch (const TransportProto::Error& ex) { - throw Error(ex.what()); - } -} - -void Proto::writeAllBuf(const void* buf, size_t size) -{ - const char* pos = static_cast(buf); - while (size > 0) { - ssize_t res = m_transport->write(pos, size); - if (res < 0) - throw Error(); - if (res == 0) - return; - size -= res; - pos += res; - } -} - -void Proto::readAllBuf(void* buf, size_t size) -{ - char* pos = static_cast(buf); - while (size > 0) { - ssize_t res = m_transport->read(pos, size); - if (res < 0) - throw Error(); - if (res == 0) - return; - size -= res; - pos += res; - } -}