Package xyz.cofe.cbuffer
Class RAFBuffer
- java.lang.Object
-
- xyz.cofe.cbuffer.RAFBuffer
-
- All Implemented Interfaces:
ContentBuffer
- Direct Known Subclasses:
FileLockBuffer
public class RAFBuffer extends Object implements ContentBuffer
- Author:
- Kamnev Georgiy (nt.gocha@gmail.com)
-
-
Field Summary
Fields Modifier and Type Field Description protected booleancloneRafContentprotected booleancloseRafprotected booleandeleteTempOnExitprotected booleanflushOnCloseprotected Locklockprotected RandomAccessFilerafprotected booleanreleaseRafprotected booleanthrowNotSetRaf
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Очистка буфера, устанавливает размер в нольRAFBufferclone()voidclose()Закрытие буфераprotected FilecreateTempFile()protected RandomAccessFilecreateTempRAF()voidflush()Запись содержимого на диск/памятьbyte[]get(long offset, int dataLen)Получение байтов.LockgetLock()RandomAccessFilegetRaf()longgetSize()Возвращает размер буфера в байтахbooleanisCloneRafContent()Указывает клонировать во временный файл содержимое буфераbooleanisCloseRaf()Указывает закрывать RandomAccessFile при вызове close.booleanisDeleteTempOnExit()Указывает удалять временно клонированный файл при выходеbooleanisFlushOnClose()Указывает сбрасывать содержимое памяти на диск при закрытииbooleanisReleaseRaf()Указывает освобаждать ссылку (устанавливать свойство raf в null) на RandomAccessFilebooleanisThrowNotSetRaf()voidset(long offset, byte[] data, int dataOffset, int dataLen)Установить байты в массиве.voidsetCloneRafContent(boolean cloneRafContent)Указывает клонировать во временный файл содержимое буфераvoidsetCloseRaf(boolean closeRaf)Указывает закрывать RandomAccessFile при вызове close.voidsetDeleteTempOnExit(boolean deleteTempOnExit)Указывает удалять временно клонированный файл при выходеvoidsetFlushOnClose(boolean flushOnClose)Указывает сбрасывать содержимое памяти на диск при закрытииvoidsetRaf(RandomAccessFile raf)voidsetReleaseRaf(boolean releaseRaf)Указывает освобаждать ссылку (устанавливать свойство raf в null) на RandomAccessFilevoidsetSize(long size)Устанавливает размер буфераvoidsetThrowNotSetRaf(boolean throwNotSetRaf)
-
-
-
Field Detail
-
lock
protected final Lock lock
-
cloneRafContent
protected boolean cloneRafContent
-
raf
protected RandomAccessFile raf
-
throwNotSetRaf
protected boolean throwNotSetRaf
-
deleteTempOnExit
protected boolean deleteTempOnExit
-
flushOnClose
protected boolean flushOnClose
-
closeRaf
protected boolean closeRaf
-
releaseRaf
protected boolean releaseRaf
-
-
Method Detail
-
isCloneRafContent
public boolean isCloneRafContent()
Указывает клонировать во временный файл содержимое буфера- Returns:
- true (по умолчанию) - клонировать
-
setCloneRafContent
public void setCloneRafContent(boolean cloneRafContent)
Указывает клонировать во временный файл содержимое буфера- Parameters:
cloneRafContent- true (по умолчанию) - клонировать
-
getLock
public Lock getLock()
-
getRaf
public RandomAccessFile getRaf()
-
setRaf
public void setRaf(RandomAccessFile raf)
-
isThrowNotSetRaf
public boolean isThrowNotSetRaf()
-
setThrowNotSetRaf
public void setThrowNotSetRaf(boolean throwNotSetRaf)
-
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
-
isDeleteTempOnExit
public boolean isDeleteTempOnExit()
Указывает удалять временно клонированный файл при выходе- Returns:
- true (по умолчанию) - удалять клонированный файл
-
setDeleteTempOnExit
public void setDeleteTempOnExit(boolean deleteTempOnExit)
Указывает удалять временно клонированный файл при выходе- Parameters:
deleteTempOnExit- true (по умолчанию) - удалять клонированный файл
-
createTempFile
protected File createTempFile()
-
createTempRAF
protected RandomAccessFile createTempRAF()
-
flush
public void flush()
Description copied from interface:ContentBufferЗапись содержимого на диск/память- Specified by:
flushin interfaceContentBuffer
-
isFlushOnClose
public boolean isFlushOnClose()
Указывает сбрасывать содержимое памяти на диск при закрытии- Returns:
- true (по умолчанию) - сбрасывать.
-
setFlushOnClose
public void setFlushOnClose(boolean flushOnClose)
Указывает сбрасывать содержимое памяти на диск при закрытии- Parameters:
flushOnClose- true (по умолчанию) - сбрасывать.
-
isCloseRaf
public boolean isCloseRaf()
Указывает закрывать RandomAccessFile при вызове close.- Returns:
- true (по умолчанию) - закрывать.
-
setCloseRaf
public void setCloseRaf(boolean closeRaf)
Указывает закрывать RandomAccessFile при вызове close.- Parameters:
closeRaf- true (по умолчанию) - закрывать.
-
isReleaseRaf
public boolean isReleaseRaf()
Указывает освобаждать ссылку (устанавливать свойство raf в null) на RandomAccessFile- Returns:
- true (по умолчанию) - освобождать.
-
setReleaseRaf
public void setReleaseRaf(boolean releaseRaf)
Указывает освобаждать ссылку (устанавливать свойство raf в null) на RandomAccessFile- Parameters:
releaseRaf- true (по умолчанию) - освобождать.
-
close
public void close()
Description copied from interface:ContentBufferЗакрытие буфера- Specified by:
closein interfaceContentBuffer
-
-