@Override public Position getPosition(Clock clock) { if(clock == null) { throw new NullPointerException("clock"); } Schema schema = _protocol.getMessages().get(ProtocolConstants.MSG_META).getRequest(); GenericRecord req = new GenericData.Record(schema); req.put("src", _sourceUtf8); req.put("opt", new Utf8(StoreBusDirective.Position.toString())); req.put("key", new Utf8(clock.toString())); req.put("value", null); try { Utf8 res = (Utf8)send(ProtocolConstants.MSG_META, req); return res == null ? null : getPosition(res.toString()); } catch (IOException e) { throw new RuntimeException(e); } }