package ai.h2o.api.proto.frames; import ai.h2o.api.GrpcUtils; import ai.h2o.api.proto.core.JobInfo; import ai.h2o.api.proto.core.JobService; import hex.createframe.recipes.SimpleCreateFrameRecipe; import io.grpc.stub.StreamObserver; import water.Job; import water.Key; import water.fvec.Frame; /** */ public class CreateFrameService extends CreateFrameGrpc.CreateFrameImplBase { @Override public void simple(CreateFrameSimpleSpec request, StreamObserver<JobInfo> responseObserver) { try { SimpleCreateFrameRecipe cf = new SimpleCreateFrameRecipe(); cf.dest = Key.make(request.getTargetId()); cf.seed = request.getSeed(); cf.nrows = request.getNrows(); cf.ncols_real = request.getNcolsReal(); cf.ncols_int = request.getNcolsInt(); cf.ncols_enum = request.getNcolsEnum(); cf.ncols_bool = request.getNcolsBool(); cf.ncols_str = request.getNcolsStr(); cf.ncols_time = request.getNcolsTime(); cf.real_lb = request.getRealLb(); cf.real_ub = request.getRealUb(); cf.int_lb = request.getIntLb(); cf.int_ub = request.getIntUb(); cf.enum_nlevels = request.getEnumNlevels(); cf.bool_p = request.getBoolP(); cf.time_lb = request.getTimeLb(); cf.time_ub = request.getTimeUb(); cf.str_length = request.getStrLength(); cf.missing_fraction = request.getMissingFraction(); cf.response_type = SimpleCreateFrameRecipe.ResponseType.valueOf(request.getResponseType().toString()); cf.response_lb = request.getResponseLb(); cf.response_ub = request.getResponseUb(); cf.response_p = request.getResponseP(); cf.response_nlevels = request.getResponseNlevels(); Job<Frame> job = cf.exec(); responseObserver.onNext(JobService.fillJobInfo(job)); responseObserver.onCompleted(); } catch (Throwable ex) { GrpcUtils.sendError(ex, responseObserver, JobInfo.class); } } }