use of org.structr.cloud.message.FileNodeChunk in project structr by structr.
the class PushTransmission method sendFile.
/**
* Splits the given file and sends it over the client connection. This method first creates a <code>FileNodeDataContainer</code> and sends it to the remote end. The file from disk is then
* split into multiple instances of <code>FileChunkContainer</code> while being sent. To finalize the transfer, a <code>FileNodeEndChunk</code> is sent to notify the receiving end of the
* successful transfer.
*
* @param client the client to send over
* @param file the file to split and send
* @param chunkSize the chunk size for a single chunk
* @throws org.structr.common.error.FrameworkException
* @throws java.io.IOException
*/
public static void sendFile(final CloudConnection client, final File file, final int chunkSize) throws FrameworkException, IOException {
// send file container first
FileNodeDataContainer container = new FileNodeDataContainer(file);
client.send(container);
// send chunks
for (FileNodeChunk chunk : FileNodeDataContainer.getChunks(file, chunkSize)) {
client.send(chunk);
}
// mark end of file with special chunk
client.send(new FileNodeEndChunk(container.getSourceNodeId(), container.getFileSize()));
}
use of org.structr.cloud.message.FileNodeChunk in project structr by structr.
the class SyncTransmission method sendFile.
/**
* Splits the given file and sends it over the client connection. This method first creates a <code>FileNodeDataContainer</code> and sends it to the remote end. The file from disk is then
* split into multiple instances of <code>FileChunkContainer</code> while being sent. To finalize the transfer, a <code>FileNodeEndChunk</code> is sent to notify the receiving end of the
* successful transfer.
*
* @param client the client to send over
* @param file the file to split and send
* @param chunkSize the chunk size for a single chunk
* @throws org.structr.common.error.FrameworkException
* @throws java.io.IOException
*/
public static void sendFile(final CloudConnection client, final File file, final int chunkSize) throws FrameworkException, IOException {
// send file container first
FileNodeDataContainer container = new FileNodeDataContainer(file);
client.send(container);
// send chunks
for (FileNodeChunk chunk : FileNodeDataContainer.getChunks(file, chunkSize)) {
client.send(chunk);
}
// mark end of file with special chunk
client.send(new FileNodeEndChunk(container.getSourceNodeId(), container.getFileSize()));
}
Aggregations