Functions used in several transports. Some netty parts transpire here since netty is the preferred method of providing transports
Make a channel group with a given name.
(channel-initializer & names-and-exprs)
Constructs an instance of a Netty ChannelInitializer from a list of names and expressions which return handlers. Handlers with :shared metadata on their names are bound once and re-used in every invocation of getPipeline(), other handlers will be evaluated each time.
(channel-pipeline-factory frame-decoder (make-an-int32-frame-decoder) ^:shared protobuf-decoder (ProtobufDecoder. (Proto$Msg/getDefaultInstance)) ^:shared msg-decoder msg-decoder)
A decoder that turns DatagramPackets into ByteBufs.
A simple wrapper for a netty future which on deref just calls (syncUninterruptibly f), and returns the future’s result.
Creates a new netty execution handler for processing events. Defaults to 1 thread per core.
(handle core msg)
Handles a msg with the given core.
There’s a bug in JDK 6, 7, and 8 which can cause a deadlock initializing sse-server and netty concurrently; we serialize them with this lock. https://github.com/aphyr/riemann/issues/617
Netty decoder for Msg protobuf objects -> maps
Netty encoder for maps -> Msg protobuf objects
Decodes protobufs to Msg objects
Encodes protobufs to Msg objects
Resolves a hostname to a random IP
Retain a ReferenceCounted object, if x is such an object. Otherwise, noop. Returns x.
Gracefully shut down an event executor group. Returns a derefable future.