public long fieldLookup(CharSequence sequence, int structId) { assert ((IS_STRUCT_BIT&structId) !=0 ) : "Struct Id must be passed in"; assert (structId>=0) : "Bad Struct ID "+structId; return TrieParserReader.query(TrieParserReaderLocal.get(), fields[STRUCT_MASK&structId], sequence); }
public long fieldLookup(CharSequence sequence, int struct) { assert ((IS_STRUCT_BIT&struct) !=0 ) : "Struct Id must be passed in"; TrieParserReader reader = TrieParserReaderLocal.get(); return TrieParserReader.query(reader, fields[STRUCT_MASK&struct], sequence); }
public long fieldLookup(byte[] source, int pos, int len, int mask, int structId) { assert ((IS_STRUCT_BIT&structId) !=0 ) : "Struct Id must be passed in"; assert (structId>=0) : "Bad Struct ID "+structId; TrieParserReader reader = TrieParserReaderLocal.get(); return TrieParserReader.query(reader, fields[STRUCT_MASK&structId], source, pos, len, mask); }
public long fieldLookup(CharSequence sequence, int structId) { assert ((IS_STRUCT_BIT&structId) !=0 ) : "Struct Id must be passed in"; assert (structId>=0) : "Bad Struct ID "+structId; return TrieParserReader.query(TrieParserReaderLocal.get(), fields[STRUCT_MASK&structId], sequence); }
public long fieldLookup(byte[] source, int pos, int len, int mask, int structId) { assert ((IS_STRUCT_BIT&structId) !=0 ) : "Struct Id must be passed in"; assert (structId>=0) : "Bad Struct ID "+structId; TrieParserReader reader = TrieParserReaderLocal.get(); return TrieParserReader.query(reader, fields[STRUCT_MASK&structId], source, pos, len, mask); }
public long fieldLookup(byte[] source, int pos, int len, int mask, int struct) { TrieParserReader reader = TrieParserReaderLocal.get(); return TrieParserReader.query(reader, fields[struct], source, pos, len, mask); }
private Pipe<FolderWatchSchema> lookupTargetPipe(String fileNameText) { final int fileIdx = (int)TrieParserReaderLocal.get().query(fileParser, fileNameText); return fileIdx<0 ? defaultOutput : output[fileIdx]; }
public static int lookupHostId(byte[] hostBytes, int pos, int length, int mask) { int result = (int)TrieParserReader.query(TrieParserReaderLocal.get(), domainRegistry, hostBytes, pos, length, mask); if (result<0) { throw new UnsupportedOperationException("Can not find host "+Appendables.appendUTF8(new StringBuilder(), hostBytes, pos, length, mask)+" pos:"+pos+" len:"+length+" mask:"+mask); } return result; }
public static String buildTrackTopic(final CharSequence baseTopic, final byte[] track) { if (null != track) { if (hasNoUnscopedTopics()) {//normal case where topics are scoped return baseTopic+new String(track); } else { //if scoped then add suffix if ((-1 == TrieParserReaderLocal.get().query(unScopedTopics, baseTopic))) { return baseTopic+new String(track); } } } return baseTopic.toString(); }
private static void unScopedCheckForTrack(MsgCommandChannel cmd, DataOutputBlobWriter<MessagePubSub> output) { boolean addSuffix=false; addSuffix = BuilderImpl.notUnscoped(TrieParserReaderLocal.get(), output); if (addSuffix) { output.write(cmd.track); } }
private List<PrivateTopic> privateTopicsFromConsumer(String target) { List<PrivateTopic> localTargetTopics = null; byte[] tbytes = CharSequenceToUTF8Local.get().convert(target).append(" ").asBytes(); int targetId = (int)TrieParserReader.query(TrieParserReaderLocal.get(), privateTopicTarget, tbytes, 0, tbytes.length, Integer.MAX_VALUE); if (targetId<0) { localTargetTopics = new ArrayList<PrivateTopic>(); //logger.info("record target '{}'",target); privateTopicTarget.setValue(tbytes, targetId = privateTargetTopics.size()); privateTargetTopics.add(localTargetTopics); } else { localTargetTopics = privateTargetTopics.get(targetId); } return localTargetTopics; }
private List<PrivateTopic> privateTopicsFromProducer(String source) { List<PrivateTopic> localSourceTopics = null; byte[] bytes = CharSequenceToUTF8Local.get().convert(source).append(" ").asBytes(); int sourceId = (int)TrieParserReader.query(TrieParserReaderLocal.get(), privateTopicSource, bytes, 0, bytes.length, Integer.MAX_VALUE); if (sourceId<0) { localSourceTopics = new ArrayList<PrivateTopic>(); privateTopicSource.setValue(bytes, sourceId = privateSourceTopics.size()); privateSourceTopics.add(localSourceTopics); } else { localSourceTopics = privateSourceTopics.get(sourceId); } return localSourceTopics; }
public void possiblePrivateTopicConsumer(PendingStageBuildable listener, CharSequence topic, int track) { assert(null!=listener.behaviorName()); //do not want to confuse all the tracks while looking for private topics, we only look at no track and first track if (track<=0) { int id = (int)TrieParserReaderLocal.get().query(possibleTopics, topic); if (-1 == id) { growPossiblePrivateTopics(); if (null==possiblePrivateBehaviors[possiblePrivateTopicsCount]) { possiblePrivateBehaviors[possiblePrivateTopicsCount] = new ArrayList<PendingStageBuildable>(); } possiblePrivateBehaviors[possiblePrivateTopicsCount].add(listener); possiblePrivateTopicsTopic[possiblePrivateTopicsCount]=topic; possibleTopics.setUTF8Value(topic, possiblePrivateTopicsCount++); } else { if (null==possiblePrivateBehaviors[id]) { possiblePrivateBehaviors[id] = new ArrayList(); } possiblePrivateBehaviors[id].add(listener); } } }
public List<PrivateTopic> getPrivateTopicsFromTarget(String target) { byte[] bytes = CharSequenceToUTF8Local.get().convert(target).append(" ").asBytes(); int targetId = (int)TrieParserReader.query(TrieParserReaderLocal.get(), privateTopicTarget, bytes, 0, bytes.length, Integer.MAX_VALUE); List<PrivateTopic> result = (targetId<0) ? Collections.EMPTY_LIST: privateTargetTopics.get(targetId); return result; }
public List<PrivateTopic> getPrivateTopicsFromSource(String source) { byte[] bytes = CharSequenceToUTF8Local.get().convert(source).append(" ").asBytes(); int sourceId = (int)TrieParserReader.query(TrieParserReaderLocal.get(), privateTopicSource, bytes, 0, bytes.length, Integer.MAX_VALUE); List<PrivateTopic> result = (sourceId<0) ? Collections.EMPTY_LIST : privateSourceTopics.get(sourceId); return result; }
public void possiblePrivateTopicProducer(BehaviorNameable producer, String topic, int track) { //do not want to confuse all the tracks while looking for private topics, we only look at no track and first track if (track<=0) { int id = (int)TrieParserReaderLocal.get().query(possibleTopics, topic); if (-1 == id) { growPossiblePrivateTopics(); possiblePrivateCmds[possiblePrivateTopicsCount] = producer; possiblePrivateTopicsTopic[possiblePrivateTopicsCount]=topic; possiblePrivateTopicsProducerCount[possiblePrivateTopicsCount]++; possibleTopics.setUTF8Value(topic, possiblePrivateTopicsCount++); } else { //only record once for same channel and topic pair if (producer != possiblePrivateCmds[id]) { possiblePrivateCmds[id] = producer; possiblePrivateTopicsProducerCount[id]++; } } } }
private void parseExtractionPath(String extractionPath) { JSONExtractorActive running = this; TrieParserReader trieParserReader = TrieParserReaderLocal.get(); CharSequenceToUTF8Local.get() .convert(extractionPath) .append(".") .parseSetup(trieParserReader); int token = 0; while ((token = (int)trieParserReader.parseNext(parser)) != -1) { switch(token) { case keyToken: path.add(TrieParserReader.capturedFieldBytesAsUTF8(trieParserReader, 0, new StringBuilder())); break; case dotToken: break; case arrayToken: path.add("[]"); break; } } }
void convertMQTTTopicsToLocal(final byte[] backing1, final int pos1, final int len1, final int mask1) { int size = Pipe.addMsgIdx(tempSubject, RawDataSchema.MSG_CHUNKEDSTREAM_1); DataOutputBlobWriter<RawDataSchema> stream = Pipe.outputStream(tempSubject); DataOutputBlobWriter.openField(stream); TrieParserReader.parseSetup(TrieParserReaderLocal.get(), backing1, pos1, len1, mask1); boolean foundEnd = false; while (TrieParserReader.parseHasContent(TrieParserReaderLocal.get())) { if (foundEnd) { throw new UnsupportedOperationException("Invalid topic if /# is used it must only be at the end."); } int token = (int)TrieParserReader.parseNext(TrieParserReaderLocal.get(), topicConversionTrie); if (-1 == token) { stream.write(TrieParserReader.parseSkipOne(TrieParserReaderLocal.get())); } if (1 == token) { stream.write(MessagePubSubImpl.WILD_POUND_THE_END); // /# foundEnd = true; } if (2 == token) { stream.write(MessagePubSubImpl.WILD_PLUS_THE_SEGMENT); // +/ } } DataOutputBlobWriter.closeLowLevelField(stream); Pipe.confirmLowLevelWrite(tempSubject, size); Pipe.publishWrites(tempSubject); }
private void parseExtractionPath(String extractionPath) { JSONExtractorActive running = this; TrieParserReader trieParserReader = TrieParserReaderLocal.get(); CharSequenceToUTF8Local.get() .convert(extractionPath) .append(".") .parseSetup(trieParserReader); int token = 0; while ((token = (int)trieParserReader.parseNext(parser)) != -1) { switch(token) { case keyToken: path.add(TrieParserReader.capturedFieldBytesAsUTF8(trieParserReader, 0, new StringBuilder())); break; case dotToken: break; case arrayToken: path.add("[]"); break; } } }