/** * only avaiable at top level * @param currentIndex */ public void clear(int currentIndex) { if ( template == null ) { throw new RuntimeException("not avaiable in embedded struct arrays. Use set(i,template) instead."); } set(currentIndex,template); }
@Override public String toString() { return "StructArray{" + "elemSize=" + getStructElemSize() + ", size=" + size() + '}'; }
public <T extends FSTStruct> StructArray<T> toStructArray(int size, T onHeap) { StructArray<T> arr = new StructArray<T>(size,onHeap); return toStruct(arr); }
@NoAssist public int getStructElemClassId() { if (isOffHeap()) return ___bytes.getInt( elemsStructIndex()+12 ); else return -1; }
@NoAssist public E createPointer(int index) { if ( ! isOffHeap() ) throw new RuntimeException("must be offheap to call this"); E res = (E) elemsPointer(); res.___elementSize = res.getByteSize(); res.___offset+=index*res.___elementSize; return res; }
public void receivePacketUnreliable(DataPacket packet) { long seqNo = packet.getSeqNo(); int index = (int) (seqNo % readBuffer.size()); highestSeq = Math.max(seqNo,highestSeq); if ( maxOrderedSeq == 0 ) { handleInitialSync(seqNo); } DataPacket previousPacket = getPacket(seqNo); if ( ! previousPacket.isDecoded() && previousPacket.getSeqNo() > 0 ) { // not decoded yet => drop packet return; } readBuffer.set(index,packet); DataPacket toDecode = readBuffer.get(index); decodePacket(toDecode); }
FCLog.log("allocating send buffer for topic " + topicEntry.getTopicId() + " of " + history.getByteSize() / 1024 / 1024 + " MByte"); historySize = history.size();
@NoAssist public void set(int i, E value ) { elems(i,value); // workaround javassist limit: no generics }
@NoAssist public int size() { return elemsLen(); }
public void receivePacketUnreliable(DataPacket packet) { long seqNo = packet.getSeqNo(); int index = (int) (seqNo % readBuffer.size()); highestSeq = Math.max(seqNo,highestSeq); if ( maxOrderedSeq == 0 ) { handleInitialSync(seqNo); } DataPacket previousPacket = getPacket(seqNo); if ( ! previousPacket.isDecoded() && previousPacket.getSeqNo() > 0 ) { // not decoded yet => drop packet return; } readBuffer.set(index,packet); DataPacket toDecode = readBuffer.get(index); decodePacket(toDecode); }
@NoAssist public int getStructElemSize() { if (isOffHeap()) return ___bytes.getInt( elemsStructIndex()+8 ); else return -1; }
@NoAssist public E createPointer(int index) { if ( ! isOffHeap() ) throw new RuntimeException("must be offheap to call this"); E res = (E) elemsPointer(); res.___elementSize = res.getByteSize(); res.___offset+=index*res.___elementSize; return res; }
FCLog.log("allocating send buffer for topic " + topicEntry.getTopicId() + " of " + history.getByteSize() / 1024 / 1024 + " MByte"); historySize = history.size();
@NoAssist public E get( int i ) { return (E) elems(i); // workaround javassist limit: no generics }
@NoAssist public int size() { return elemsLen(); }
public RetransPacket receivePacketUnOrdered(DataPacket packet) { RetransPacket toReturn = null; long seqNo = packet.getSeqNo(); int index = (int) (seqNo % readBuffer.size()); highestSeq = Math.max(seqNo,highestSeq); readBuffer.set(index,packet); maxOrderedSeq = seqNo; DataPacket toDecode = readBuffer.get(index); decodePacket(toDecode); if ( readBuffer.get(index).isDecoded() ) { readBuffer.set(index, packet); decodePacket(readBuffer.get(index));
@Override public String toString() { return "StructArray{" + "elemSize=" + getStructElemSize() + ", size=" + size() + '}'; }
@NoAssist public int getStructElemClassId() { if (isOffHeap()) return ___bytes.getInt( elemsStructIndex()+12 ); else return -1; }