Example usage for io.vertx.core.eventbus MessageCodec MessageCodec

List of usage examples for io.vertx.core.eventbus MessageCodec MessageCodec

Introduction

In this page you can find the example usage for io.vertx.core.eventbus MessageCodec MessageCodec.

Prototype

MessageCodec

Source Link

Usage

From source file:eu.rethink.mn.pipeline.PipeRegistry.java

License:Apache License

public PipeRegistry(Vertx vertx, ClusterManager mgr, String domain) {
    this.domain = domain;
    this.mgr = mgr;

    this.eb = vertx.eventBus();
    this.eb.registerDefaultCodec(PipeContext.class, new MessageCodec<PipeContext, PipeContext>() {

        @Override//from w  w  w  . j a  va 2  s  . co m
        public byte systemCodecID() {
            return -1;
        }

        @Override
        public String name() {
            return PipeContext.class.getName();
        }

        @Override
        public PipeContext transform(PipeContext ctx) {
            return ctx;
        }

        @Override
        public void encodeToWire(Buffer buffer, PipeContext ctx) {
            final String msg = ctx.getMessage().toString();
            logger.info("encodeToWire: " + msg);
            buffer.appendString(msg);
        }

        @Override
        public PipeContext decodeFromWire(int pos, Buffer buffer) {
            final String msg = buffer.getString(0, buffer.length() - 1);
            logger.info("decodeFromWire: " + msg);
            return null; //not needed in this architecture
        }
    });

    this.components = new HashMap<String, IComponent>();
    this.sessions = new HashMap<String, PipeSession>();

    this.urlSpace = mgr.getSyncMap("urlSpace");
}