@Override public byte[] format(Tuple tuple) { //TODO we should handle '\n'. ref DelimitedRecordFormat Values values = (Values) tuple.getValue(1); return serializer.write(values, null).array(); }
@Override public String getValueFromTuple(ITuple tuple) { Values values = (Values) tuple.getValue(1); byte[] array = outputSerializer.write(values, null).array(); return new String(array); } }
@Override public ByteBuffer getMessageFromTuple(Tuple tuple) { return serializer.write((Values) tuple.getValue(1), null); } }
@Override public Document toDocument(ITuple tuple) { Document document = new Document(); Values values = (Values) tuple.getValue(1); byte[] array = serializer.write(values, null).array(); document.append(serField, array); return document; }
@Override public void execute(Tuple input) { Values values = (Values) input.getValue(0); byte[] array = serializer.write(values, null).array(); String data = new String(array); try { writer.write(data + "\n"); writer.flush(); collector.ack(input); } catch (IOException e) { LOG.error("Error while writing data to socket.", e); collector.reportError(e); collector.fail(input); } }
@Override public void updateState(SocketState state, List<TridentTuple> tuples, TridentCollector collector) { try { for (TridentTuple tuple : tuples) { byte[] array = outputSerializer.write(tuple.getValues(), null).array(); String data = new String(array); state.write(data + "\n"); } state.flush(); } catch (IOException e) { LOG.error("Error while updating state.", e); collector.reportError(e); throw new RuntimeException("Error while updating state.", e); } } }