73 lines
1.7 KiB
Java
73 lines
1.7 KiB
Java
|
/*
|
||
|
* BurnSource.java
|
||
|
*
|
||
|
* Copyright (c) 2007 Vreixo Formoso
|
||
|
*
|
||
|
* This library is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
* See COPYING file for details.
|
||
|
*/
|
||
|
|
||
|
package org.pykix.libburnia.libburn;
|
||
|
|
||
|
/**
|
||
|
* Data source for tracks on disc.
|
||
|
*
|
||
|
* FIXME think about design of this object. being an interface any user
|
||
|
* can create its own implementation and pass it to libburn, and this will
|
||
|
* not work.
|
||
|
*
|
||
|
* @author Vreixo Formoso
|
||
|
* @since 0.1
|
||
|
*/
|
||
|
public interface BurnSource {
|
||
|
|
||
|
/**
|
||
|
* Read data from the source.
|
||
|
*
|
||
|
* @param buffer
|
||
|
* Buffer where data is to be read. Must have at least size bytes.
|
||
|
* @param size
|
||
|
* Number of bytes to be read.
|
||
|
* @return
|
||
|
* Number of bytes actually read.
|
||
|
* @throws IndexOutOfBoundsException
|
||
|
* If size bigger than buffer length
|
||
|
* @throws NullPointerException
|
||
|
* If buffer is <code>null</code>
|
||
|
*/
|
||
|
int read(byte[] buffer, int size);
|
||
|
|
||
|
/**
|
||
|
* Read subchannel data from the source.
|
||
|
*
|
||
|
* @param buffer
|
||
|
* Buffer where data is to be read. Must have at least size bytes.
|
||
|
* @param size
|
||
|
* Number of bytes to be read.
|
||
|
* @return
|
||
|
* Number of bytes actually read.
|
||
|
* @throws IndexOutOfBoundsException
|
||
|
* If size bigger than buffer length
|
||
|
* @throws NullPointerException
|
||
|
* If buffer is <code>null</code>
|
||
|
*/
|
||
|
int readSub(byte[] buffer, int size);
|
||
|
|
||
|
/**
|
||
|
* Get the size of the source's data.
|
||
|
* @return
|
||
|
*/
|
||
|
long getSize();
|
||
|
|
||
|
/**
|
||
|
* Set the size of the source's data.
|
||
|
* @param bytes
|
||
|
* @return
|
||
|
*/
|
||
|
int setSize(long bytes);
|
||
|
|
||
|
}
|