Newer
Older
/*
*
* Created on: Mar 1, 2021
* Author: astrisw
*/
* Implementation of a UDP socket
* @member field fd_sock: socket file descriptor
* @member field sockaddr_in: struct of the client address.
*/
UDPProtocol(std::string ip, int prt);
UDPProtocol();
struct sockaddr_in cliaddr;
struct sockaddr_in srvaddr;
bool split_ip_port(const std::string &ip_port, std::string &ip,
std::string &port);
int receiveAtLeastHeaderSizeBytes(uint8_t *buff, int headerSize,
int packetSize);
void resetPacket(PacketLib::BasePacket&, int bytes);
std::string getHost() override;
void setHost(std::string host) override;
void setIp(std::string);
std::string getIp(){return this->ip;}
void setPort(int);
int getPort(){return this->port;}
int connectToClient() override;
int closeConnectionToClient() override;
bool isConnectedToClient() const override;
class UDPProtocolBuilder {
protected:
UDPProtocol *protocol;
public:
std::string config_target {"udpprotocol"};
std::string ip_key { "ip" };
std::string port_key { "port" };
UDPProtocolBuilder();
UDPProtocolBuilder(std::string ip, int port);
~UDPProtocolBuilder();
UDPProtocolBuilder* configFrom(Configurators::BaseConfigurator *conf);
UDPProtocolBuilder* setPort(int port);
UDPProtocol* getProtocol();