#ifndef _CLIENT_HPP
#define _CLIENT_HPP

#include "wordle-de.pb.h"
#include <arpa/inet.h>
#include <functional>
#include <string>

#define INPUT_BUFFER_SIZE 1000
class Client {
  int sock;
  sockaddr_in serverAddr;
  char inputBuffer[INPUT_BUFFER_SIZE];
  typedef std::function<void(uint16_t fd, char *)> receiveCallbackType;

public:
  Client();
  Client(const std::string &, const int &);
  void connectToServer();
  void disconnectFromServer();
  uint16_t sendMessage(const char *);
  wordle_de::Message receiveMessage();

  // void onInput(receiveCallbackType cb) { receiveCallback = cb; }

  // private:
  //   receiveCallbackType receiveCallback;
};
#endif // !_CLIENT_HPP