Package xyz.cofe.cbuffer
Class SyncContentBuffer
- java.lang.Object
-
- xyz.cofe.cbuffer.SyncContentBuffer
-
- All Implemented Interfaces:
ContentBuffer
public class SyncContentBuffer extends Object implements ContentBuffer
Синхронная работа с буфером- Author:
- user
-
-
Field Summary
Fields Modifier and Type Field Description protected ContentBufferbufferprotected booleancopyLockprotected ObjectsyncОбъект для синхронизации
-
Constructor Summary
Constructors Constructor Description SyncContentBuffer(ContentBuffer buffer)SyncContentBuffer(ContentBuffer buffer, Object sync)SyncContentBuffer(ContentBuffer buffer, Object sync, boolean copyLock)Конструктор
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Очистка буфера, устанавливает размер в нольvoidclose()Закрывает объект и удаляет ссылкиvoidflush()Запись содержимого на диск/памятьbyte[]get(long offset, int dataLen)Получение байтов.longgetSize()Возвращает размер буфера в байтахObjectgetSyncObject()Возвращает объект для синхронизацииvoidset(long offset, byte[] data, int dataOffset, int dataLen)Установить байты в массиве.voidsetSize(long size)Устанавливает размер буфера
-
-
-
Field Detail
-
buffer
protected volatile ContentBuffer buffer
-
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, Object sync)
-
SyncContentBuffer
public SyncContentBuffer(ContentBuffer buffer)
-
-
Method Detail
-
getSyncObject
public final Object getSyncObject()
Возвращает объект для синхронизации- Returns:
- объект синхронизации
-
getSize
public long getSize()
Description copied from interface:ContentBufferВозвращает размер буфера в байтах- Specified by:
getSizein interfaceContentBuffer- Returns:
- кол-во байт в буфере
-
setSize
public void setSize(long size)
Description copied from interface:ContentBufferУстанавливает размер буфера- Specified by:
setSizein interfaceContentBuffer- Parameters:
size- кол-во байт в буфере
-
set
public void set(long offset, byte[] data, int dataOffset, int dataLen)Description copied from interface:ContentBufferУстановить байты в массиве.По возможности, массив должен быть расширен до необходимого размера, инче должно быть сгененировано исключение
- Specified by:
setin interfaceContentBuffer- Parameters:
offset- смещение в буфере от нуляdata- массив байтовdataOffset- смещение в массиве байтовdataLen- кол-во добавляемых байтов из массива
-
get
public byte[] get(long offset, int dataLen)Description copied from interface:ContentBufferПолучение байтов.Если данные в заданном диапазоне отсуствуют - то должыен быть ввозвращает пустой массив.
Если данные присуствуют в ограниченном размере - то данные, то возвращается массив длинной имеющимся данным.- Specified by:
getin interfaceContentBuffer- Parameters:
offset- смещение (от нуля)dataLen- кол-во байтов- Returns:
- байты
-
clear
public void clear()
Description copied from interface:ContentBufferОчистка буфера, устанавливает размер в ноль- Specified by:
clearin interfaceContentBuffer
-
flush
public void flush()
Description copied from interface:ContentBufferЗапись содержимого на диск/память- Specified by:
flushin interfaceContentBuffer
-
close
public void close()
Закрывает объект и удаляет ссылки- Specified by:
closein interfaceContentBuffer
-
-