This commit is contained in:
Erik Frojdh
2019-06-06 17:00:05 +02:00
parent fc5306f7cc
commit c86a1e7d48
11 changed files with 253 additions and 250 deletions

View File

@ -4,6 +4,7 @@
#include <cstdint>
#include <netdb.h>
#include <string>
#include <numeric>
namespace sls {
class DataSocket {
@ -16,13 +17,30 @@ class DataSocket {
DataSocket(const DataSocket &) = delete;
DataSocket &operator=(DataSocket const &) = delete;
int getSocketId() const { return socketId_; }
int sendData(const void *buffer, size_t size);
template <typename T> int sendData(T &&data) {
return sendData(&data, sizeof(data));
int Send(const void *buffer, size_t size);
template <typename T> int Send(T &&data) {
return Send(&data, sizeof(data));
}
// Trick to send all
template <class... Args> int SendAll(Args &&... args) {
auto l = std::initializer_list<int>{Send(args)...};
auto sum = std::accumulate(begin(l), end(l), 0);
return sum;
}
int Receive(void *buffer, size_t size);
template <typename T> int Receive(T &arg) {
return Receive(&arg, sizeof(arg));
}
template <typename T> T Receive() {
T arg;
Receive(&arg, sizeof(arg));
return arg;
}
int receiveData(void *buffer, size_t size);
int read(void *buffer, size_t size);
int write(void *buffer, size_t size);
int setTimeOut(int t_seconds);