All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xyz.cofe.cbuffer.ContentBuffer Maven / Gradle / Ivy

There is a newer version: 2.0
Show newest version
/*
 * 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(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy