import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class FileTransfer implements FT   {
  private ARQ myARQ;
  private String host;
  private Socket socket;
  private String fileName;
  private String downloaddir;
private Logger logger;

  public FileTransfer(String host, Socket socket, String fileName, String arq) {
    this.socket = socket;
    this.fileName = fileName;
    this.host = host;
    myARQ = new SW(socket);
    logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
    logger.log(Level.FINER,"Client-FT:" + arq + " new session ID: " + 1);
  }

  public FileTransfer(Socket socket,  String dir) {
    this.socket = socket;
    this.downloaddir = dir;
    myARQ = new SW(socket);
    logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
    logger.log(Level.FINER,"Server-FT: init " );
  }

  @Override
  public boolean file_req() throws IOException {
    byte[] sendData = ("Start").getBytes();
    myARQ.data_req(sendData, sendData.length, false);
    logger.log(Level.FINER,"Client-FT: Start sent  - Finished");
    return true;
  }

  // ******************************** Receiver *****************************************************
  @Override
  public boolean file_init() throws IOException {
    byte [] data;
    try {
      data = myARQ.data_ind_req();
    } catch (TimeoutException e) {
      throw new RuntimeException(e);
    }
    String marker = new String(data, 0, 5    );
    logger.log(Level.FINER,"Server-FT: Packet " + marker + " received");
    return marker.equals("Start");
  }
}
