/* * Copyright (C) 2013 Omry Yadan <omry@yadan.net> * All rights reserved. * * See https://github.com/omry/banana/blob/master/BSD-LICENSE for licensing information */ package net.yadan.banana.memory; public interface IBuffer { /** * @return the number of ints used in this buffer */ public int size(); /** * @return growth factor */ public double getGrowthFactor(); /** * @param growthFactor */ public void setGrowthFactor(double growthFactor); /** * @return the number of ints this IBuffer can contain */ public int capacity(); /** * Resets the content of the buffer by setting the size to 0. */ public void reset(); public short getUpperShort(int offset); public short getLowerShort(int offset); public void setUpperShort(int offset, int v); public void setLowerShort(int offset, int v); public int getInt(int offset); public void setInt(int offset, int data); public long getLong(int offset); public void setLong(int offset, long data); public void setInts(int dst_offset, int src_data[], int src_pos, int length); public void getInts(int src_offset, int dst_data[], int dst_pos, int length); public void setChars(int dst_offset, char src_data[], int src_pos, int length); public void setChars(int dst_offset, char src_data[]); public void getChars(int src_offset, char dst_data[], int dst_pos, int length); public void appendInt(int v); public void appendLong(long v); public void appendInts(int src_data[]); public void appendInts(int src_data[], int src_pos, int length); public void ensureCapacity(int numInts); @Override public int hashCode(); public boolean equals(IMemAllocator mem, int pointer, int start_offset, int length); public int[] array(); public void appendChars(char[] src_data); public void appendChars(char[] src_data, int src_pos, int length); public void setUsed(int used); }