Class SyncContentBuffer

  • All Implemented Interfaces:
    ContentBuffer

    public class SyncContentBuffer
    extends Object
    implements ContentBuffer
    Синхронная работа с буфером
    Author:
    user
    • Field Detail

      • copyLock

        protected volatile boolean copyLock
      • sync

        protected final Object sync
        Объект для синхронизации
    • Constructor Detail

      • SyncContentBuffer

        public SyncContentBuffer​(ContentBuffer buffer,
                                 Object sync,
                                 boolean copyLock)
        Конструктор
        Parameters:
        buffer - буфер
        sync - объект синхронизации
        copyLock - true -копировать ссылку на блокировку / false - создавать новую блокировку, при клонировании
      • SyncContentBuffer

        public SyncContentBuffer​(ContentBuffer buffer)
    • Method Detail

      • getSyncObject

        public final Object getSyncObject()
        Возвращает объект для синхронизации
        Returns:
        объект синхронизации
      • getSize

        public long getSize()
        Description copied from interface: ContentBuffer
        Возвращает размер буфера в байтах
        Specified by:
        getSize in interface ContentBuffer
        Returns:
        кол-во байт в буфере
      • setSize

        public void setSize​(long size)
        Description copied from interface: ContentBuffer
        Устанавливает размер буфера
        Specified by:
        setSize in interface ContentBuffer
        Parameters:
        size - кол-во байт в буфере
      • set

        public void set​(long offset,
                        byte[] data,
                        int dataOffset,
                        int dataLen)
        Description copied from interface: ContentBuffer
        Установить байты в массиве.

        По возможности, массив должен быть расширен до необходимого размера, инче должно быть сгененировано исключение

        Specified by:
        set in interface ContentBuffer
        Parameters:
        offset - смещение в буфере от нуля
        data - массив байтов
        dataOffset - смещение в массиве байтов
        dataLen - кол-во добавляемых байтов из массива
      • get

        public byte[] get​(long offset,
                          int dataLen)
        Description copied from interface: ContentBuffer
        Получение байтов.

        Если данные в заданном диапазоне отсуствуют - то должыен быть ввозвращает пустой массив.
        Если данные присуствуют в ограниченном размере - то данные, то возвращается массив длинной имеющимся данным.

        Specified by:
        get in interface ContentBuffer
        Parameters:
        offset - смещение (от нуля)
        dataLen - кол-во байтов
        Returns:
        байты
      • clear

        public void clear()
        Description copied from interface: ContentBuffer
        Очистка буфера, устанавливает размер в ноль
        Specified by:
        clear in interface ContentBuffer
      • flush

        public void flush()
        Description copied from interface: ContentBuffer
        Запись содержимого на диск/память
        Specified by:
        flush in interface ContentBuffer
      • close

        public void close()
        Закрывает объект и удаляет ссылки
        Specified by:
        close in interface ContentBuffer