public static boolean isGroupSequence(FieldReferenceOffsetManager from, int cursor) { return 0 != (OperatorMask.Group_Bit_Seq&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupSequence(FieldReferenceOffsetManager from, int cursor) { return 0 != (OperatorMask.Group_Bit_Seq&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupSequence(FieldReferenceOffsetManager from, int cursor) { return 0 != (OperatorMask.Group_Bit_Seq&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupTemplate(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Templ&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupOpen(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 == (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupOpen(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 == (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupClosed(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupClosed(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupClosed(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupTemplate(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Templ&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupTemplate(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 != (OperatorMask.Group_Bit_Templ&TokenBuilder.extractOper(from.tokens[cursor])); }
public static boolean isGroupOpen(FieldReferenceOffsetManager from, int cursor) { return isGroup(from, cursor) && 0 == (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(from.tokens[cursor])); }
protected void encodePmapBuilderInt(MessageSchema schema, Appendable target, int token, int index, String valName, String isNull) { try { //TODO: add support for isnull appendStaticCall(target, encoder, "pmapBuilderInt") .append(pmapName).append(", ") .append(Integer.toString(TokenBuilder.extractType(token))).append(", ") .append(Integer.toString(TokenBuilder.extractOper(token))).append(", ") .append(valName).append(", ") .append(intDictionaryName + "[" + index + "]").append(", ") .append(defIntDictionaryName + "[" + index + "]").append(", ") .append(isNull) .append(");\n"); } catch (IOException e) { throw new RuntimeException(e); } }
protected void encodePmapBuilderLong(MessageSchema schema, Appendable target, int token, int index, String valName, String isNull) { try { appendStaticCall(target, encoder, "pmapBuilderLong") .append(pmapName).append(", ") .append(Integer.toString(TokenBuilder.extractType(token))).append(", ") .append(Integer.toString(TokenBuilder.extractOper(token))).append(", ") .append(valName).append(", ") .append(longDictionaryName + "[" + index + "]").append(", ") .append(defLongDictionaryName + "[" + index + "]").append(", ") .append(isNull) .append(");\n"); } catch (IOException e) { throw new RuntimeException(e); } }
static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }
static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }
static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }
private static void prepReadMessage2Normal(Pipe ringBuffer, StackStateWalker ringBufferConsumer, final long tmpNextWorkingTail, int[] fragDataSize) { ringBufferConsumer.nextWorkingTail = tmpNextWorkingTail + fragDataSize[ringBufferConsumer.msgIdx];//save the size of this new fragment we are about to read //This validation is very important, because all down stream consumers will assume it to be true. assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) == 0) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); ringBufferConsumer.cursor = ringBufferConsumer.msgIdx; int lastScriptPos = (ringBufferConsumer.nextCursor = ringBufferConsumer.msgIdx + ringBufferConsumer.from.fragScriptSize[ringBufferConsumer.msgIdx]) -1; if (TypeMask.GroupLength == ((ringBufferConsumer.from.tokens[lastScriptPos] >>> TokenBuilder.SHIFT_TYPE) & TokenBuilder.MASK_TYPE)) { //Can not assume end of message any more. int seqLength = Pipe.slab((Pipe<?>) ringBuffer)[(int)(ringBufferConsumer.from.fragDataSize[lastScriptPos] + tmpNextWorkingTail)&ringBuffer.slabMask]; final StackStateWalker ringBufferConsumer1 = ringBufferConsumer; //now start new sequence ringBufferConsumer1.seqStack[++ringBufferConsumer1.seqStackHead] = seqLength; ringBufferConsumer1.seqCursors[ringBufferConsumer1.seqStackHead] = ringBufferConsumer1.nextCursor; } }
private static void prepReadMessage2Normal(Pipe ringBuffer, StackStateWalker ringBufferConsumer, final long tmpNextWorkingTail, int[] fragDataSize) { ringBufferConsumer.nextWorkingTail = tmpNextWorkingTail + fragDataSize[ringBufferConsumer.msgIdx];//save the size of this new fragment we are about to read //This validation is very important, because all down stream consumers will assume it to be true. assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) == 0) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); ringBufferConsumer.cursor = ringBufferConsumer.msgIdx; int lastScriptPos = (ringBufferConsumer.nextCursor = ringBufferConsumer.msgIdx + ringBufferConsumer.from.fragScriptSize[ringBufferConsumer.msgIdx]) -1; if (TypeMask.GroupLength == ((ringBufferConsumer.from.tokens[lastScriptPos] >>> TokenBuilder.SHIFT_TYPE) & TokenBuilder.MASK_TYPE)) { //Can not assume end of message any more. int seqLength = Pipe.slab((Pipe<?>) ringBuffer)[(int)(ringBufferConsumer.from.fragDataSize[lastScriptPos] + tmpNextWorkingTail)&ringBuffer.slabMask]; final StackStateWalker ringBufferConsumer1 = ringBufferConsumer; //now start new sequence ringBufferConsumer1.seqStack[++ringBufferConsumer1.seqStackHead] = seqLength; ringBufferConsumer1.seqCursors[ringBufferConsumer1.seqStackHead] = ringBufferConsumer1.nextCursor; } }
private static void prepReadMessage2Normal(Pipe ringBuffer, StackStateWalker ringBufferConsumer, final long tmpNextWorkingTail, int[] fragDataSize) { ringBufferConsumer.nextWorkingTail = tmpNextWorkingTail + fragDataSize[ringBufferConsumer.msgIdx];//save the size of this new fragment we are about to read //This validation is very important, because all down stream consumers will assume it to be true. assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); assert((ringBufferConsumer.from.hasSimpleMessagesOnly && 0==readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail) && ringBufferConsumer.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)])) == 0) : "Templated message must start with group open and this starts with "+TokenBuilder.tokenToString(ringBufferConsumer.from.tokens[readMsgIdx(ringBuffer, ringBufferConsumer, tmpNextWorkingTail)]); ringBufferConsumer.cursor = ringBufferConsumer.msgIdx; int lastScriptPos = (ringBufferConsumer.nextCursor = ringBufferConsumer.msgIdx + ringBufferConsumer.from.fragScriptSize[ringBufferConsumer.msgIdx]) -1; if (TypeMask.GroupLength == ((ringBufferConsumer.from.tokens[lastScriptPos] >>> TokenBuilder.SHIFT_TYPE) & TokenBuilder.MASK_TYPE)) { //Can not assume end of message any more. int seqLength = Pipe.slab((Pipe<?>) ringBuffer)[(int)(ringBufferConsumer.from.fragDataSize[lastScriptPos] + tmpNextWorkingTail)&ringBuffer.slabMask]; final StackStateWalker ringBufferConsumer1 = ringBufferConsumer; //now start new sequence ringBufferConsumer1.seqStack[++ringBufferConsumer1.seqStackHead] = seqLength; ringBufferConsumer1.seqCursors[ringBufferConsumer1.seqStackHead] = ringBufferConsumer1.nextCursor; } }