package de.thedevstack.conversationsplus.services; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.services.filetransfer.FileTransferStatusListener; /** * An implementation of this class transfers a file to another entity or server. */ public interface FileTransferService { /** * Transfers a file for the corresponding message. * @param message the message containing the file to transfer * @return true if the file transfer was successful, false otherwise */ boolean transferFile(Message message); /** * Transfers a file for the corresponding message. * @param message the message containing the file to transfer * @param delay whether the message is delayed or not * @return true if the file transfer was successful, false otherwise */ boolean transferFile(Message message, boolean delay); /** * Checks whether a message can be sent using this service or not. * @param message the message to be checked * @return true if the message can be processed, false otherwise */ boolean accept(Message message); /** * Adds one or more file transfer status listeners. * @param listeners the listeners to add */ void addFileTransferStatusListener(FileTransferStatusListener... listeners); }