public <S extends MessageSchema<S>> PipeConfig<S> addConfig(PipeConfig<S> newConfig) { int idx = findIndex(newConfig.schema); if (idx<0) { if (configCount >= configs.length) { //grow, we are out of room PipeConfig[] newConfigs = new PipeConfig[configs.length*2]; System.arraycopy(configs, 0, newConfigs, 0, configs.length); configs = newConfigs; } configs[configCount++] = newConfig; } else { configs[idx] = newConfig; } return newConfig; }
public <S extends MessageSchema<S>> PipeConfig<S> addConfig(PipeConfig<S> newConfig) { int idx = findIndex(newConfig.schema); if (idx<0) { if (configCount >= configs.length) { //grow, we are out of room PipeConfig[] newConfigs = new PipeConfig[configs.length*2]; System.arraycopy(configs, 0, newConfigs, 0, configs.length); configs = newConfigs; } configs[configCount++] = newConfig; } else { //if (configs[idx].minimumFragmentsOnPipe()>newConfig.minimumFragmentsOnPipe()) { // throw new UnsupportedOperationException("Already ensured size larger than new assignment, use ensure not add."); //} configs[idx] = newConfig; } return newConfig; }
public <S extends MessageSchema<S>> PipeConfig<S> addConfig(PipeConfig<S> newConfig) { int idx = findIndex(newConfig.schema); if (idx<0) { if (configCount >= configs.length) { //grow, we are out of room PipeConfig[] newConfigs = new PipeConfig[configs.length*2]; System.arraycopy(configs, 0, newConfigs, 0, configs.length); configs = newConfigs; } configs[configCount++] = newConfig; } else { //if (configs[idx].minimumFragmentsOnPipe()>newConfig.minimumFragmentsOnPipe()) { // throw new UnsupportedOperationException("Already ensured size larger than new assignment, use ensure not add."); //} configs[idx] = newConfig; } return newConfig; }
public <S extends MessageSchema<S>> PipeConfig<S> getConfig(Class<S> clazz) { int idx = findIndex(clazz); if (idx>=0) { return (PipeConfig<S>)configs[idx]; } //when undefined build store and return the default return addConfig(defaultMinimumFragmentsOnPipe, defaultMaximumLengthOfVariableLengthFields, clazz); }
private <S extends MessageSchema<S>> int findIndex(S goal) { //this is a simple linear search, this code is normally called with // 1. short lists of configs // 2. on startup //so this is not going to be a problem. int i = configCount; while (--i>=0) { if (configs[i].schema == goal) { break; } } return i; }
private <S extends MessageSchema<S>> int findIndex(S goal) { //this is a simple linear search, this code is normally called with // 1. short lists of configs // 2. on startup //so this is not going to be a problem. int i = configCount; while (--i>=0) { if (configs[i].schema == goal) { break; } } return i; }
private <S extends MessageSchema<S>> int findIndex(S goal) { //this is a simple linear search, this code is normally called with // 1. short lists of configs // 2. on startup //so this is not going to be a problem. int i = configCount; while (--i>=0) { if (configs[i].schema == goal) { break; } } int idx = i; return idx; }
public <S extends MessageSchema<S>> PipeConfig<S> getConfig(Class<S> clazz) { S instance = MessageSchema.findInstance(clazz); final int idx = findIndex(instance); if (idx>=0) { return (PipeConfig<S>)configs[idx]; } return buildNewConfig(instance); }
public <S extends MessageSchema<S>> PipeConfig<S> getConfig(Class<S> clazz) { S instance = MessageSchema.findInstance(clazz); final int idx = findIndex(instance); if (idx>=0) { return (PipeConfig<S>)configs[idx]; } return buildNewConfig(instance); }
public <S extends MessageSchema<S>> void ensureSize(Class<S> clazz, int queueLength, int maxMessageSize) { int idx = findIndex(clazz); if (idx>=0) { //we found it PipeConfig<S> oldConfig = (PipeConfig<S>)configs[idx]; int oldQueueLen = oldConfig.minimumFragmentsOnPipe(); int oldMaxVarLenSize = oldConfig.maxVarLenSize(); if (queueLength>oldQueueLen || maxMessageSize>oldMaxVarLenSize) { addConfig(Math.max(oldQueueLen,queueLength), Math.max(oldMaxVarLenSize, maxMessageSize), clazz); } } else { //add it was not found addConfig(Math.max(queueLength,defaultMinimumFragmentsOnPipe),Math.max(maxMessageSize, defaultMaximumLengthOfVariableLengthFields),clazz); } }
int idx = 0; try { idx = findIndex(clazz); if (idx>=0) {
int idx = 0; try { idx = findIndex(clazz); if (idx>=0) {