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 java.lang.Object implements ContentBuffer
- Author:
- Kamnev Georgiy (nt.gocha@gmail.com)
-
Field Summary
Fields Modifier and Type Field Description protected booleancloneRafContentprotected booleancloseRafprotected booleandeleteTempOnExitprotected booleanflushOnCloseprotected java.util.concurrent.locks.Locklockprotected java.io.RandomAccessFilerafprotected booleanreleaseRafprotected booleanthrowNotSetRaf -
Constructor Summary
-
Method Summary
Modifier and Type Method Description voidclear()Очистка буфера, устанавливает размер в нольRAFBufferclone()voidclose()Закрытие буфераprotected java.io.FilecreateTempFile()protected java.io.RandomAccessFilecreateTempRAF()voidflush()Запись содержимого на диск/памятьbyte[]get(long offset, int dataLen)Получение байтов.java.util.concurrent.locks.LockgetLock()java.io.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(java.io.RandomAccessFile raf)voidsetReleaseRaf(boolean releaseRaf)Указывает освобаждать ссылку (устанавливать свойство raf в null) на RandomAccessFilevoidsetSize(long size)Устанавливает размер буфераvoidsetThrowNotSetRaf(boolean throwNotSetRaf)
-
Field Details
-
lock
protected final java.util.concurrent.locks.Lock lock -
cloneRafContent
protected boolean cloneRafContent -
raf
protected java.io.RandomAccessFile raf -
throwNotSetRaf
protected boolean throwNotSetRaf -
deleteTempOnExit
protected boolean deleteTempOnExit -
flushOnClose
protected boolean flushOnClose -
closeRaf
protected boolean closeRaf -
releaseRaf
protected boolean releaseRaf
-
-
Constructor Details
-
Method Details
-
isCloneRafContent
public boolean isCloneRafContent()Указывает клонировать во временный файл содержимое буфера- Returns:
- true (по умолчанию) - клонировать
-
setCloneRafContent
public void setCloneRafContent(boolean cloneRafContent)Указывает клонировать во временный файл содержимое буфера- Parameters:
cloneRafContent- true (по умолчанию) - клонировать
-
getLock
public java.util.concurrent.locks.Lock getLock() -
getRaf
public java.io.RandomAccessFile getRaf() -
setRaf
public void setRaf(java.io.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 java.io.File createTempFile() -
createTempRAF
protected java.io.RandomAccessFile createTempRAF() -
clone
- Overrides:
clonein classjava.lang.Object
-
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
-