/* * * Created on: Mar 1, 2021 * Author: astrisw * */ #ifndef BASEPROTOCOL_H_ #define BASEPROTOCOL_H_ #include #include #include namespace inaf::oasbo::ConnectionProtocols{ /* * class BaseSocket * Implementation of a socket that allows to communicate with the sender. * This parent class must be inherited in order to implement your own protocol, * methods connect() and readPacket must be overridden * * @member field host: address of the host machine * @member field port: listen port * @member field protocol: communication protocol. */ class BaseProtocol{ protected: std::string host; public: std::string getHost(){return host;} void setHost(std::string host){ this->host = host;} virtual int connectToServer()=0; virtual int connectToClient()=0; virtual int closeConnectionToServer()=0; virtual int closeConnectionToClient()=0; virtual bool isConnectedToClient() const =0; virtual bool isConnectedToServer() const =0; virtual int receiveFromClient(PacketLib::BasePacket &) = 0; virtual int sendToServer(PacketLib::BasePacket &) = 0; virtual ~BaseProtocol() = default; }; } #endif /* BASEPROTOCOL_H_ */