public void registerSelector(Selector selector) { //confirm it is not already listed int i = (null==selectors) ? 0 : selectors.length; while (--i>=0) { if (selectors[i]==selector) { return;//do not add, it is already there. } } //grow the array selectors = ArrayGrow.appendToArray(selectors, selector); assert(null!=selectors); }
public synchronized static int registerDomain(CharSequence host) { int hostId = (int)TrieParserReader.query(new TrieParserReader(true), domainRegistry, host); if (-1==hostId) { hostId = totalKnownDomains++; domainRegistry.setUTF8Value(host, hostId); if (hostId==conTables.length) { LongLongHashTable[] bigger = new LongLongHashTable[conTables.length*2]; System.arraycopy(conTables, 0, bigger, 0, conTables.length); conTables = bigger; } conTables[hostId] = new LongLongHashTable(5); //This will grow as needed //store list of domains so the actual connection code can use this value instead of passing it arround String strDomain = host instanceof String ? (String)host : host.toString(); domainLookupArray = ArrayGrow.setIntoArray(domainLookupArray, strDomain, hostId); domainLookupArrayBytes = ArrayGrow.setIntoArray(domainLookupArrayBytes, strDomain.getBytes(), hostId); } return hostId; }
if (callTime>CLOSED_LINGER_NS) { absoluteAbandons = ArrayGrow.setIntoArray(absoluteAbandons, t, absoluteCounts++); if (timeout>0) {//overrides general behavior if set if (callTime>timeout) { absoluteAbandons = ArrayGrow.setIntoArray(absoluteAbandons, t, absoluteCounts++); absoluteAbandons = ArrayGrow.setIntoArray(absoluteAbandons, t, absoluteCounts++); } else {
@Override public long addSubscription(CharSequence internalTopic, CharSequence externalTopic) { ensureConnected(); internalTopicsSub = ArrayGrow.appendToArray(internalTopicsSub, internalTopic); externalTopicsSub = ArrayGrow.appendToArray(externalTopicsSub, externalTopic); convertersSub = ArrayGrow.appendToArray(convertersSub,IngressMQTTStage.copyConverter); qosSub = ArrayGrow.appendToArray(qosSub, subscriptionQoS); assert(internalTopicsSub.length == externalTopicsSub.length); assert(internalTopicsSub.length == convertersSub.length); assert(internalTopicsSub.length == qosSub.length); return internalTopicsSub.length-1; }
@Override public long addSubscription(CharSequence internalTopic, CharSequence externalTopic, IngressConverter converter) { ensureConnected(); internalTopicsSub = ArrayGrow.appendToArray(internalTopicsSub, internalTopic); externalTopicsSub = ArrayGrow.appendToArray(externalTopicsSub, externalTopic); convertersSub = ArrayGrow.appendToArray(convertersSub,converter); qosSub = ArrayGrow.appendToArray(qosSub, subscriptionQoS); assert(internalTopicsSub.length == externalTopicsSub.length); assert(internalTopicsSub.length == convertersSub.length); assert(internalTopicsSub.length == qosSub.length); return internalTopicsSub.length-1; }
@Override public long addTransmission(CharSequence internalTopic, CharSequence externalTopic, EgressConverter converter) { ensureConnected(); internalTopicsXmit = ArrayGrow.appendToArray(internalTopicsXmit, internalTopic); externalTopicsXmit = ArrayGrow.appendToArray(externalTopicsXmit, externalTopic); convertersXmit = ArrayGrow.appendToArray(convertersXmit,converter); qosXmit = ArrayGrow.appendToArray(qosXmit, transmissionFieldQOS); assert(internalTopicsXmit.length == externalTopicsXmit.length); assert(internalTopicsXmit.length == convertersXmit.length); assert(internalTopicsXmit.length == qosXmit.length); return internalTopicsXmit.length-1; }
@Override public long addTransmission(CharSequence internalTopic, CharSequence externalTopic) { ensureConnected(); //logger.trace("added subscription to {} in order to transmit out to ",internalTopic, externalTopic); internalTopicsXmit = ArrayGrow.appendToArray(internalTopicsXmit, internalTopic); externalTopicsXmit = ArrayGrow.appendToArray(externalTopicsXmit, externalTopic); convertersXmit = ArrayGrow.appendToArray(convertersXmit,EgressMQTTStage.copyConverter); qosXmit = ArrayGrow.appendToArray(qosXmit, transmissionFieldQOS); retainXmit = ArrayGrow.appendToArray(retainXmit, transmissionFieldRetain); assert(internalTopicsXmit.length == externalTopicsXmit.length); assert(internalTopicsXmit.length == convertersXmit.length); assert(internalTopicsXmit.length == qosXmit.length); return internalTopicsXmit.length-1; }
public long growStruct(int structId, StructType fieldType, int fieldDim, byte[] name) { assert(null!=fieldType); assert(null!=this.fieldNames); //grow all the arrays with new value assert((IS_STRUCT_BIT&structId)!=0) : "must be valid struct"; int idx = STRUCT_MASK & structId; assert(null!=this.fieldNames[idx]) : "Bad field names for struct at "+idx+" in "+this.hashCode(); int newFieldIdx = this.fieldNames[idx].length; //add text lookup assert(isNotAlreadyDefined(this.fields[idx], name)) : "field of this name already defined."; //only 1 name is returned, the first is considered canonical this.fieldNames[idx] = ArrayGrow.appendToArray(this.fieldNames[idx], name); this.fieldTypes[idx] = ArrayGrow.appendToArray(this.fieldTypes[idx], fieldType, StructType.class); this.fieldDims[idx] = ArrayGrow.appendToArray(this.fieldDims[idx], fieldDim); this.fieldLocals[idx] = ArrayGrow.appendToArray(this.fieldLocals[idx], null, Object.class); this.fieldValidators[idx] = ArrayGrow.appendToArray(this.fieldValidators[idx], null, Object.class); this.fieldRequired[idx] = ArrayGrow.appendToArray(this.fieldRequired[idx], false); long fieldId = ((long)(IS_STRUCT_BIT|(STRUCT_MASK & structId)))<<STRUCT_OFFSET | newFieldIdx; this.fields[idx].setValue(name, fieldId); return fieldId; }
public long growStruct(int structId, StructType fieldType, int fieldDim, byte[] name) { assert(null!=fieldType); assert(null!=this.fieldNames); //grow all the arrays with new value assert((IS_STRUCT_BIT&structId)!=0) : "must be valid struct"; int idx = STRUCT_MASK & structId; assert(null!=this.fieldNames[idx]) : "Bad field names for struct at "+idx+" in "+this.hashCode(); int newFieldIdx = this.fieldNames[idx].length; //add text lookup assert(isNotAlreadyDefined(this.fields[idx], name)) : "field of this name already defined."; //only 1 name is returned, the first is considered canonical this.fieldNames[idx] = ArrayGrow.appendToArray(this.fieldNames[idx], name); this.fieldTypes[idx] = ArrayGrow.appendToArray(this.fieldTypes[idx], fieldType, StructType.class); this.fieldDims[idx] = ArrayGrow.appendToArray(this.fieldDims[idx], fieldDim); this.fieldLocals[idx] = ArrayGrow.appendToArray(this.fieldLocals[idx], null, Object.class); this.fieldValidators[idx] = ArrayGrow.appendToArray(this.fieldValidators[idx], null, Object.class); this.fieldRequired[idx] = ArrayGrow.appendToArray(this.fieldRequired[idx], false); long fieldId = ((long)(IS_STRUCT_BIT|(STRUCT_MASK & structId)))<<STRUCT_OFFSET | newFieldIdx; this.fields[idx].setValue(name, fieldId); return fieldId; }