@Override public Object readRequest(Schema schema, Decoder in) throws IOException { Object[] args = new Object[schema.getFields().size()]; int i = 0; for (Schema.Field param : schema.getFields()) args[i++] = getDatumReader(param.schema()).read(null, in); return args; }
@Override public void writeResponse(Schema schema, Object response, Encoder out) throws IOException { getDatumWriter(schema).write(response, out); }
@Override public void writeError(Schema schema, Object error, Encoder out) throws IOException { if (error instanceof CharSequence) error = error.toString(); // system error: convert super.writeError(schema, error, out); }
public TetheredProcess(JobConf job, OutputCollector<TetherData, NullWritable> collector, Reporter reporter) throws Exception { try { // start server this.outputService = new TetherOutputService(collector, reporter); this.outputServer = new SocketServer (new SpecificResponder(OutputProtocol.class, outputService), new InetSocketAddress(0)); outputServer.start(); // start sub-process, connecting back to server this.subprocess = startSubprocess(job); // open client, connecting to sub-process this.clientTransceiver = new SocketTransceiver(new InetSocketAddress(outputService.inputPort())); this.inputClient = (InputProtocol) SpecificRequestor.getClient(InputProtocol.class, clientTransceiver); } catch (Exception t) { close(); throw t; } }
responder = new SpecificResponder( AvroTrace.PROTOCOL, new TraceResponder(this.storage));
@Override public void writeError(Schema schema, Object error, Encoder out) throws IOException { getDatumWriter(schema).write(error, out); }
@Override public Object readRequest(Schema schema, Decoder in) throws IOException { Object[] args = new Object[schema.getFields().size()]; int i = 0; for (Schema.Field param : schema.getFields()) args[i++] = getDatumReader(param.schema()).read(null, in); return args; }
@Override public void writeResponse(Schema schema, Object response, Encoder out) throws IOException { getDatumWriter(schema).write(response, out); }
@Override public void writeError(Schema schema, Object error, Encoder out) throws IOException { getDatumWriter(schema).write(error, out); }