stdout adapter progress

This commit is contained in:
Jonathan Shook 2022-03-03 12:32:40 -06:00
parent 50b73e277d
commit e434ce7cde
2 changed files with 13 additions and 4 deletions

View File

@ -3,8 +3,11 @@ package io.nosqlbench.adapters.stdout;
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
import io.nosqlbench.engine.api.activityimpl.OpMapper;
import io.nosqlbench.engine.api.activityimpl.uniform.BaseDriverAdapter;
import io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter;
import io.nosqlbench.engine.api.activityimpl.uniform.DriverSpaceCache;
import io.nosqlbench.engine.api.templating.OpTemplateSupplier;
import io.nosqlbench.nb.annotations.Service;
import io.nosqlbench.nb.api.config.standard.ConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
@ -12,6 +15,7 @@ import java.util.List;
import java.util.Optional;
import java.util.function.Function;
@Service(value = DriverAdapter.class, selector = "stdoutadapter")
public class StdoutDriverAdapter extends BaseDriverAdapter<StdoutOp, StdoutSpace> implements OpTemplateSupplier {
@Override
@ -27,7 +31,9 @@ public class StdoutDriverAdapter extends BaseDriverAdapter<StdoutOp, StdoutSpace
@Override
public NBConfigModel getConfigModel() {
return StdoutSpace.getConfigModel();
return ConfigModel.of(this.getClass())
.add(super.getConfigModel())
.add(StdoutSpace.getConfigModel());
}
@Override

View File

@ -8,18 +8,21 @@ import java.util.function.LongFunction;
public class StdoutOpDispenser extends BaseOpDispenser<StdoutOp> {
private final LongFunction<StdoutSpace> ctxfunc;
private final LongFunction<?> objectFunction;
private final LongFunction<String> outFunction;
public StdoutOpDispenser(ParsedOp cmd, LongFunction<StdoutSpace> ctxfunc) {
super(cmd);
objectFunction = cmd.getAsRequiredFunction("stmt", Object.class);
this.ctxfunc = ctxfunc;
LongFunction<Object> objectFunction = cmd.getAsRequiredFunction("stmt", Object.class);
LongFunction<String> stringfunc = l -> objectFunction.apply(l).toString();
cmd.enhance(stringfunc,"suffix",String.class,(a,b) -> a+b);
this.outFunction = stringfunc;
}
@Override
public StdoutOp apply(long value) {
StdoutSpace ctx = ctxfunc.apply(value);
String output = objectFunction.apply(value).toString();
String output = outFunction.apply(value);
return new StdoutOp(ctx,output);
}
}