xyz.cofe.cbuffer.ContentBuffer Maven / Gradle / Ivy
Show all versions of cbuffer Show documentation
/*
* The MIT License
*
* Copyright 2015 Kamnev Georgiy ([email protected]).
*
* Данная лицензия разрешает, безвозмездно, лицам, получившим копию данного программного
* обеспечения и сопутствующей документации (в дальнейшем именуемыми "Программное Обеспечение"),
* использовать Программное Обеспечение без ограничений, включая неограниченное право на
* использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование
* и/или продажу копий Программного Обеспечения, также как и лицам, которым предоставляется
* данное Программное Обеспечение, при соблюдении следующих условий:
*
* Вышеупомянутый копирайт и данные условия должны быть включены во все копии
* или значимые части данного Программного Обеспечения.
*
* ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ ЛЮБОГО ВИДА ГАРАНТИЙ,
* ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ,
* СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И НЕНАРУШЕНИЯ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ
* ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ
* ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ
* ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
* ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
*/
package xyz.cofe.cbuffer;
/**
* Байтовый буфер
* @author Kamnev Georgiy ([email protected])
*/
public interface ContentBuffer {
/**
* Возвращает размер буфера в байтах
* @return кол-во байт в буфере
*/
public long getSize();
/**
* Устанавливает размер буфера
* @param size кол-во байт в буфере
*/
public void setSize( long size );
/**
* Установить байты в массиве.
* По возможности, массив должен быть расширен до необходимого размера,
* инче должно быть сгененировано исключение
* @param offset смещение в буфере от нуля
* @param data массив байтов
* @param dataOffset смещение в массиве байтов
* @param dataLen кол-во добавляемых байтов из массива
*/
public void set( long offset, byte[] data, int dataOffset, int dataLen );
/**
* Получение байтов.
* Если данные в заданном диапазоне отсуствуют - то должыен быть ввозвращает пустой массив.
* Если данные присуствуют в ограниченном размере - то данные, то возвращается массив длинной имеющимся данным.
* @param offset смещение (от нуля)
* @param dataLen кол-во байтов
* @return байты
*/
public byte[] get( long offset, int dataLen );
/**
* Очистка буфера, устанавливает размер в ноль
*/
public void clear();
/*
* Клон буфера
* @return клон буфера
*
public ContentBuffer clone(); */
/**
* Запись содержимого на диск/память
*/
public void flush();
/**
* Закрытие буфера
*/
public void close();
}