Example usage for io.vertx.core.eventbus DeliveryOptions setHeaders

List of usage examples for io.vertx.core.eventbus DeliveryOptions setHeaders

Introduction

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

Prototype

@GenIgnore
public DeliveryOptions setHeaders(MultiMap headers) 

Source Link

Document

Set message headers from a multi-map.

Usage

From source file:net.kuujo.vertigo.instance.impl.ControlledOutputConnection.java

License:Apache License

/**
 * Sends a message./*from w  ww .  j av a2s  .  c om*/
 */
protected OutputConnection<T> doSend(Object message, MultiMap headers, Handler<AsyncResult<Void>> ackHandler) {
    if (!paused) {
        // Generate a unique ID and monotonically increasing index for the message.
        String id = UUID.randomUUID().toString();
        long index = currentMessage++;

        /*
        Commented out tracking of ackHandlers. Presumably these need to be kept around so new handlers can be created
        if messages are resent.
        // if (ackHandler != null) {
        //   ackHandlers.put(index, ackHandler);
        // }
        */

        // Set up the message headers.
        DeliveryOptions options = new DeliveryOptions();
        if (headers == null) {
            headers = new CaseInsensitiveHeaders();
        }
        headers.add(ACTION_HEADER, MESSAGE_ACTION).add(ID_HEADER, id).add(INDEX_HEADER, String.valueOf(index))
                .add(PORT_HEADER, context.target().port()).add(SOURCE_HEADER, context.target().address()) // TODO: header is called source, but takes the address...
                .add(ID_HEADER, id).add(INDEX_HEADER, String.valueOf(index));

        options.setHeaders(headers);
        if (context.sendTimeout() > 0) {
            options.setSendTimeout(context.sendTimeout());
        }

        if (log.isDebugEnabled()) {
            log.debug("{} - Send: Message[name={}, message={}]", this, id, message);
        }

        if (ackHandler != null) {
            eventBus.send(context.target().address(), message, options, r -> {
                if (r.succeeded()) {
                    ackHandler.handle(Future.<Void>succeededFuture());
                } else {
                    ackHandler.handle(Future.<Void>failedFuture(r.cause()));
                }
            });
        } else {
            eventBus.send(context.target().address(), message, options);
        }
        checkFull();
    }
    return this;
}

From source file:net.kuujo.vertigo.reference.impl.InputPortReferenceImpl.java

License:Apache License

private DeliveryOptions getDeliveryOptions(MultiMap headers) {
    DeliveryOptions deliveryOptions = new DeliveryOptions();
    if (headers != null) {
        deliveryOptions.setHeaders(headers);
    }/*  ww w  .ja  va 2s .c  o m*/
    if (timeout > 0) {
        deliveryOptions.setSendTimeout(timeout);
    }
    deliveryOptions.addHeader("port", name);
    return deliveryOptions;
}