package Ymodem;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Path;
/**
* XModem
*
* Created by Anton Sirotinkin (aesirot@mail.ru), Moscow 2014
* I hope you will find this program useful.
* You are free to use/modify the code for any purpose, but please leave a reference to me.
*/
public class XModem {
private Modem modem;
/**
* Constructor
*
* @param inputStream stream for reading received data from other side
* @param outputStream stream for writing data to other side
*/
public XModem(InputStream inputStream, OutputStream outputStream) {
this.modem = new Modem(inputStream, outputStream);
}
/**
* Send a file.
*
* This method support correct thread interruption, when thread is interrupted "cancel of transmission" will be send.
* So you can move long transmission to other thread and interrupt it according to your algorithm.
*
* @param file
* @throws IOException
*/
public void send(Path file) throws IOException, InterruptedException {
modem.send(file, false);
}
/**
* Receive file
*
* This method support correct thread interruption, when thread is interrupted "cancel of transmission" will be send. * So you can move long transmission to other thread and interrupt it according to your algorithm. * * @param file file path for storing * @throws IOException */ public void receive(Path file) throws IOException { modem.receive(file, false); } }