/** * Build a new protocol instance with the given defaults if they are missing. * * @param defaultType Default type. * @param defaultPort Default port. * @param defaultHost Default host. * @return */ public Protocol protocol(ProtocolType defaultType, int defaultPort, String defaultHost) { final ProtocolType t = parseProtocolType(type, defaultType); final InetSocketAddress address = parseSocketAddress(host, port, defaultPort, defaultHost); return new Protocol(t, address, receiveBufferSize); }
/** * @see #protocol(ProtocolType, int, String) */ public Protocol protocol(ProtocolType defaultType, int defaultPort) { return protocol(defaultType, defaultPort, DEFAULT_HOST); }
private Class<? extends ProtocolServer> defaultProtocolServer() { if (protocol.getType() == ProtocolType.TCP) { return JsonLineProtocolServer.class; } return JsonFrameProtocolServer.class; }
@Override public AsyncFuture<ProtocolConnection> bind( Logger log, Protocol protocol, ProtocolServer server, RetryPolicy policy ) { if (protocol.getType() == ProtocolType.UDP) { return bindUDP(log, protocol, server, policy); } if (protocol.getType() == ProtocolType.TCP) { return bindTCP(log, protocol, server, policy); } throw new IllegalArgumentException("Unsupported protocol: " + protocol); }
@Override public AsyncFuture<ProtocolConnection> connect( Logger log, Protocol protocol, ProtocolClient client, RetryPolicy policy ) { if (protocol.getType() == ProtocolType.UDP) { return connectUDP(protocol, client, policy); } if (protocol.getType() == ProtocolType.TCP) { return connectTCP(log, protocol, client, policy); } throw new IllegalArgumentException("Unsupported protocol: " + protocol); }
@Override public Void transform(ProtocolConnection c) throws Exception { if (!connection.compareAndSet(null, c)) { c.stop(); } return null; } });
@Override public AsyncFuture<Void> sendMetrics(Collection<Metric> metrics) { final ProtocolConnection c = connection.get(); if (c == null) { return async.failed(new IllegalStateException("not connected to " + protocol)); } return c.sendAll(filterMetrics(metrics)); }
/** * Build a default instance of {@link ProtocolFactory}. * * @return */ public static Supplier<ProtocolFactory> defaultFor() { return () -> new ProtocolFactory(null, null, null, null); }
@Override public boolean isReady() { final ProtocolConnection c = connection.get(); if (c == null) { return false; } return c.isConnected(); } }
@Override public void sendBatch(Batch batch) { final ProtocolConnection c = connection.get(); if (c == null) { return; } c.send(batch); }
public RetryingProtocolConnection( AsyncFramework async, Timer timer, Logger log, RetryPolicy policy, ProtocolChannelSetup action ) { this.async = async; this.timer = timer; this.log = log; this.policy = policy; this.action = action; this.initialFuture = async.<ProtocolConnection>future(); trySetup(0); }
/** * @see #protocol(ProtocolType, int, String) */ public Protocol protocol(ProtocolType defaultType, int defaultPort) { return protocol(defaultType, defaultPort, DEFAULT_HOST); }
@Override public Void transform(ProtocolConnection c) throws Exception { if (!connection.compareAndSet(null, c)) { c.stop(); } return null; } });
/** * Build a new protocol instance with the given defaults if they are missing. * * @param defaultType Default type. * @param defaultPort Default port. * @param defaultHost Default host. * @return */ public Protocol protocol(ProtocolType defaultType, int defaultPort, String defaultHost) { final ProtocolType t = parseProtocolType(type, defaultType); final InetSocketAddress address = parseSocketAddress(host, port, defaultPort, defaultHost); return new Protocol(t, address, receiveBufferSize); }
/** * Build a default instance of {@link ProtocolFactory}. * * @return */ public static Supplier<ProtocolFactory> defaultFor() { return () -> new ProtocolFactory(null, null, null, null); }
@Override public boolean isReady() { final ProtocolConnection c = connection.get(); if (c == null) { return false; } return c.isConnected(); } }
@Override public Void transform(ProtocolConnection c) throws Exception { if (!connection.compareAndSet(null, c)) { c.stop(); } return null; } });