public class ArrayStructureBB extends ArrayStructureBak
Structure pdata = (Structure) ncfile.findVariable( name);
StructureMembers members = pdata.makeStructureMembers();
members.findMember("value").setDataParam(0); // these are the offsets into the record
members.findMember("x_start").setDataParam(2);
members.findMember("y_start").setDataParam(4);
members.findMember("direction").setDataParam(6);
members.findMember("speed").setDataParam(8);
int recsize = pos[1] - pos[0]; // each record must be all the same size
members.setStructureSize( recsize);
ArrayStructureBB asbb = new ArrayStructureBB( members, new int[] { size}, bos, pos[0]);
For String members, you must store the Strings in the stringHeap. An integer index into the heap is used in the ByteBuffer.ArrayArrayStructureBak.ArrayStructureIterator| 限定符和类型 | 字段 | 说明 |
|---|---|---|
protected int |
bb_offset |
|
protected ByteBuffer |
bbuffer |
members, nelems, sdata| 构造器 | 说明 |
|---|---|
ArrayStructureBB(StructureMembers members,
int[] shape) |
Create a new Array of type StructureData and the given members and shape.
|
ArrayStructureBB(StructureMembers members,
int[] shape,
ByteBuffer bbuffer,
int offset) |
Construct an ArrayStructureBB with the given ByteBuffer.
|
| 限定符和类型 | 方法 | 说明 |
|---|---|---|
void |
addObjectToHeap(int recnum,
StructureMembers.Member m,
Object s) |
|
int |
addObjectToHeap(Object s) |
|
protected int |
calcOffsetSetOrder(int recnum,
StructureMembers.Member m) |
|
protected void |
copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
protected void |
copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
|
Array |
getArray(int recnum,
StructureMembers.Member m) |
Get member data of any type for a specific record as an Array.
|
ArraySequence |
getArraySequence(int recnum,
StructureMembers.Member m) |
Get member data of type ArraySequence
|
ArrayStructureBak |
getArrayStructure(int recnum,
StructureMembers.Member m) |
Get member data of type array of Structure.
|
ByteBuffer |
getByteBuffer() |
Return backing storage as a ByteBuffer
|
List<Object> |
getHeap() |
DO NOT MODIFY
|
byte[] |
getJavaArrayByte(int recnum,
StructureMembers.Member m) |
Get member data of type byte as a 1D array.
|
char[] |
getJavaArrayChar(int recnum,
StructureMembers.Member m) |
Get member data of type char as a 1D array.
|
double[] |
getJavaArrayDouble(int recnum,
StructureMembers.Member m) |
Get member data of type double as a 1D array.
|
float[] |
getJavaArrayFloat(int recnum,
StructureMembers.Member m) |
Get member data of type float as a 1D array.
|
int[] |
getJavaArrayInt(int recnum,
StructureMembers.Member m) |
Get member data of type int as a 1D array.
|
long[] |
getJavaArrayLong(int recnum,
StructureMembers.Member m) |
Get member data of type long as a 1D array.
|
short[] |
getJavaArrayShort(int recnum,
StructureMembers.Member m) |
Get member data of type short as a 1D array.
|
String[] |
getJavaArrayString(int recnum,
StructureMembers.Member m) |
Get member data of type String as a 1D array.
|
byte |
getScalarByte(int recnum,
StructureMembers.Member m) |
Get scalar member data of type byte.
|
char |
getScalarChar(int recnum,
StructureMembers.Member m) |
Get scalar member data of type char.
|
double |
getScalarDouble(int recnum,
StructureMembers.Member m) |
Get scalar member data of type double.
|
float |
getScalarFloat(int recnum,
StructureMembers.Member m) |
Get scalar member data of type float.
|
int |
getScalarInt(int recnum,
StructureMembers.Member m) |
Get scalar member data of type int.
|
long |
getScalarLong(int recnum,
StructureMembers.Member m) |
Get scalar member data of type long.
|
short |
getScalarShort(int recnum,
StructureMembers.Member m) |
Get scalar member data of type short.
|
String |
getScalarString(int recnum,
StructureMembers.Member m) |
Get member data of type String or char.
|
StructureData |
getScalarStructure(int recnum,
StructureMembers.Member m) |
Get member data of type Structure.
|
static void |
main(String[] argv) |
|
protected StructureData |
makeStructureData(ArrayStructureBak as,
int index) |
|
static int |
setOffsets(StructureMembers members) |
Set the offsets, based on m.getSizeBytes().
|
void |
showInternal(Formatter f,
Indent indent) |
|
static int |
showOffsets(StructureMembers members,
Indent indent,
Formatter f) |
arraycopy, copyTo1DJavaArray, copyToNDJavaArray, factory, factory, factory, factory, factory, factory, factoryConstant, flip, get1DJavaArray, getDataAsByteBuffer, getDataAsByteBuffer, getDataAsByteBuffer, getDataType, getIndex, getIndexIterator, getIndexIteratorFast, getIndexPrivate, getRangeIterator, getRank, getShape, getSize, hasNext, isConstant, isUnsigned, makeArray, makeArray, makeArray, makeArray, makeArrayRankPlusOne, next, nextBoolean, nextByte, nextChar, nextDouble, nextFloat, nextInt, nextLong, nextShort, permute, reduce, reduce, resetLocalIterator, reshape, reshapeNoCopy, reshapeVLen, section, section, section, sectionNoReduce, setUnsigned, shapeToString, slice, toString, transposeconvertScalarDouble, convertScalarFloat, convertScalarInt, convertScalarLong, copy, copyFrom1DJavaArray, copySequences, copyStructures, copyTo1DJavaArray, createView, extractMemberArray, findMember, getArrayObject, getBoolean, getBoolean, getByte, getByte, getChar, getChar, getComplex, getComplex, getDouble, getDouble, getElementType, getFloat, getFloat, getInt, getInt, getLong, getLong, getMembers, getObject, getObject, getScalarObject, getShort, getShort, getSizeBytes, getStorage, getString, getString, getStructureData, getStructureData, getStructureDataIterator, getStructureMemberNames, getStructureMembers, getStructureSize, sectionNoReduce, setBoolean, setBoolean, setByte, setByte, setChar, setChar, setComplex, setComplex, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setMemberArray, setObject, setObject, setShort, setShort, setString, setString, showInternalMembersprotected ByteBuffer bbuffer
protected int bb_offset
public ArrayStructureBB(StructureMembers members, int[] shape)
byte [] result = (byte []) structureArray.getStorage(); members - a description of the structure membersshape - the shape of the Array.public ArrayStructureBB(StructureMembers members, int[] shape, ByteBuffer bbuffer, int offset)
members - the list of structure members.shape - the shape of the structure arraybbuffer - the data is stored in this ByteBuffer. bbuffer.order must already be set.offset - offset from the start of the ByteBufffer to the first record.public static int setOffsets(StructureMembers members)
members - set offsets for these memberspublic static int showOffsets(StructureMembers members, Indent indent, Formatter f)
protected StructureData makeStructureData(ArrayStructureBak as, int index)
makeStructureData 在类中 ArrayStructureBakpublic ByteBuffer getByteBuffer()
public double getScalarDouble(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarDouble 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.public double[] getJavaArrayDouble(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayDouble 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.protected void copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyDoubles 在类中 ArrayStructureBakpublic float getScalarFloat(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarFloat 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.public Array getArray(int recnum, StructureMembers.Member m)
ArrayStructureBakgetArray 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member.public float[] getJavaArrayFloat(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayFloat 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyFloats 在类中 ArrayStructureBakpublic byte getScalarByte(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarByte 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.public byte[] getJavaArrayByte(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayByte 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.protected void copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyBytes 在类中 ArrayStructureBakpublic short getScalarShort(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarShort 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type short.public short[] getJavaArrayShort(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayShort 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyShorts 在类中 ArrayStructureBakpublic int getScalarInt(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarInt 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.public int[] getJavaArrayInt(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayInt 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.protected void copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyInts 在类中 ArrayStructureBakpublic long getScalarLong(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarLong 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.public long[] getJavaArrayLong(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayLong 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.protected void copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyLongs 在类中 ArrayStructureBakpublic char getScalarChar(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetScalarChar 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.public char[] getJavaArrayChar(int recnum,
StructureMembers.Member m)
ArrayStructureBakgetJavaArrayChar 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.protected void copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyChars 在类中 ArrayStructureBakpublic String getScalarString(int recnum, StructureMembers.Member m)
ArrayStructureBakgetScalarString 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String or char.public String[] getJavaArrayString(int recnum, StructureMembers.Member m)
ArrayStructureBakgetJavaArrayString 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String.protected void copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyObjects 在类中 ArrayStructureBakpublic StructureData getScalarStructure(int recnum, StructureMembers.Member m)
ArrayStructureBakgetScalarStructure 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArrayStructureBak getArrayStructure(int recnum, StructureMembers.Member m)
ArrayStructureBakgetArrayStructure 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArraySequence getArraySequence(int recnum, StructureMembers.Member m)
ArrayStructureBakgetArraySequence 在类中 ArrayStructureBakrecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.protected int calcOffsetSetOrder(int recnum,
StructureMembers.Member m)
public int addObjectToHeap(Object s)
public void addObjectToHeap(int recnum,
StructureMembers.Member m,
Object s)
public void showInternal(Formatter f, Indent indent)
showInternal 在类中 ArrayStructureBakpublic static void main(String[] argv)
Copyright © 2019. All rights reserved.