1
0
Fork 0
mirror of https://gitlab.com/niansa/llama_any.git synced 2025-03-06 20:48:27 +01:00
llama_any/Sender.hpp
2023-04-06 09:07:53 +02:00

30 lines
745 B
C++

#ifndef _SENDER_HPP
#define _SENDER_HPP
#include "AsyncManager.hpp"
#include <string_view>
#include <vector>
#include <cstddef>
#include "basic-coro/AwaitableTask.hpp"
namespace Sender {
class Simple {
AsyncManager &aMan;
protected:
int fd;
public:
Simple(AsyncManager& asyncManager, int fd) : aMan(asyncManager), fd(fd) {}
basiccoro::AwaitableTask<AsyncManager::SockError> write(std::string_view, bool moreData = false);
basiccoro::AwaitableTask<AsyncManager::SockError> write(const std::byte *data, size_t, bool moreData = false);
template<typename T>
auto writeObject(const T& o, bool moreData = false) {
return write(reinterpret_cast<const std::byte *>(&o), sizeof(o), moreData);
}
};
}
#endif