Package xyz.cofe.cbuffer.page
Class MemPagedData
- java.lang.Object
-
- xyz.cofe.cbuffer.page.MemPagedData
-
- All Implemented Interfaces:
ExtendablePages<UsedPagesInfo>,PagedData<UsedPagesInfo>,ReduciblePages<UsedPagesInfo>,ResizablePages<UsedPagesInfo>
public class MemPagedData extends Object implements PagedData<UsedPagesInfo>, ExtendablePages<UsedPagesInfo>, ReduciblePages<UsedPagesInfo>, ResizablePages<UsedPagesInfo>
Простая постраничная организация памяти
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classMemPagedData.MemInfoUsedprotected static classMemPagedData.MemInfoUsedClone
-
Constructor Summary
Constructors Constructor Description MemPagedData(int pageSize, int capacity)MemPagedData(int pageSize, int capacity, byte[] buffer, int dataSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description xyz.cofe.fn.Tuple2<UsedPagesInfo,UsedPagesInfo>extendPages(int pages)Расширение кол-ва используемых страницUsedPagesInfomemoryInfo()Получение информации о памятиbyte[]readPage(int page)Чтение страницыxyz.cofe.fn.Tuple2<UsedPagesInfo,UsedPagesInfo>reducePages(int pages)Уменьшение кол-ва используемых страницvoidwritePage(int page, byte[] data)Запись страницы-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface xyz.cofe.cbuffer.page.ResizablePages
resizePages
-
-
-
-
Field Detail
-
pageSize
protected int pageSize
-
buffer
protected byte[] buffer
-
dataSize
protected int dataSize
-
maxPages
protected int maxPages
-
memInfo
protected MemPagedData.MemInfoUsed memInfo
-
-
Method Detail
-
memoryInfo
public UsedPagesInfo memoryInfo()
Description copied from interface:PagedDataПолучение информации о памяти- Specified by:
memoryInfoin interfacePagedData<UsedPagesInfo>- Returns:
- Получение информации о памяти
-
readPage
public byte[] readPage(int page)
Description copied from interface:PagedDataЧтение страницы- Specified by:
readPagein interfacePagedData<UsedPagesInfo>- Parameters:
page- индекс страницы, от 0 и более- Returns:
- массив байтов, по размеру равный
UsedPagesInfo.pageSize()или меньше, если последняя страница
-
writePage
public void writePage(int page, byte[] data)Description copied from interface:PagedDataЗапись страницы- Specified by:
writePagein interfacePagedData<UsedPagesInfo>- Parameters:
page- индекс страницы, от 0 и болееdata- массив байтов, размер не должен превышатьUsedPagesInfo.pageSize()
-
extendPages
public xyz.cofe.fn.Tuple2<UsedPagesInfo,UsedPagesInfo> extendPages(int pages)
Description copied from interface:ExtendablePagesРасширение кол-ва используемых страниц- Specified by:
extendPagesin interfaceExtendablePages<UsedPagesInfo>- Parameters:
pages- сколько страниц нужно добавить- Returns:
- Сколько было и сколько стало памяти
-
reducePages
public xyz.cofe.fn.Tuple2<UsedPagesInfo,UsedPagesInfo> reducePages(int pages)
Description copied from interface:ReduciblePagesУменьшение кол-ва используемых страниц- Specified by:
reducePagesin interfaceReduciblePages<UsedPagesInfo>- Parameters:
pages- сколько страниц нужно убрать- Returns:
- Сколько было и сколько стало памяти
-
-