+#include <sstream>
+
+#include <sig/types.hpp>
+
+#include "Pooling.hpp"
+#include "String.hpp"
+
+bool CYRecvAll_(int socket, uint8_t *data, size_t size);
+bool CYSendAll_(int socket, const uint8_t *data, size_t size);
+
+double CYCastDouble(const char *value, size_t size);
+double CYCastDouble(const char *value);
+
+void CYHandleClient(int socket);
+
+template <typename Type_>
+bool CYRecvAll(int socket, Type_ *data, size_t size) {
+ return CYRecvAll_(socket, reinterpret_cast<uint8_t *>(data), size);
+}
+
+template <typename Type_>
+bool CYSendAll(int socket, const Type_ *data, size_t size) {
+ return CYSendAll_(socket, reinterpret_cast<const uint8_t *>(data), size);
+}
+
+CYPool &CYGetGlobalPool();