Package com.facebook.nifty.core

Examples of com.facebook.nifty.core.RequestContext


                .listen(port)
                .withProcessor(new scribe.Processor<>(new scribe.Iface() {
                    @Override
                    public ResultCode Log(List<LogEntry> messages)
                            throws TException {
                        RequestContext context = RequestContexts.getCurrentContext();

                        for (LogEntry message : messages) {
                            log.info("[Client: {}] {}: {}",
                                     context.getRemoteAddress(),
                                     message.getCategory(),
                                     message.getMessage());
                        }
                        return ResultCode.OK;
                    }
View Full Code Here


    {
        // read args
        contextChain.preRead();
        Object[] args = readArguments(in);
        contextChain.postRead(args);
        final RequestContext requestContext = RequestContexts.getCurrentContext();

        in.readMessageEnd();

        // invoke method
        final ListenableFuture<?> invokeFuture = invokeMethod(args);
        final SettableFuture<Boolean> resultFuture = SettableFuture.create();

        Futures.addCallback(invokeFuture, new FutureCallback<Object>()
        {
            @Override
            public void onSuccess(Object result)
            {
                if (oneway) {
                    resultFuture.set(true);
                }
                else {
                    RequestContext oldRequestContext = RequestContexts.getCurrentContext();
                    RequestContexts.setCurrentContext(requestContext);

                    // write success reply
                    try {
                        contextChain.preWrite(result);

                        writeResponse(out,
                                      sequenceId,
                                      TMessageType.REPLY,
                                      "success",
                                      (short) 0,
                                      successCodec,
                                      result);

                        contextChain.postWrite(result);

                        resultFuture.set(true);
                    }
                    catch (Exception e) {
                        // An exception occurred trying to serialize a return value onto the output protocol
                        resultFuture.setException(e);
                    }
                    finally {
                        RequestContexts.setCurrentContext(oldRequestContext);
                    }
                }
            }

            @Override
            public void onFailure(Throwable t)
            {
                RequestContext oldRequestContext = RequestContexts.getCurrentContext();
                RequestContexts.setCurrentContext(requestContext);

                try {
                    contextChain.preWriteException(t);
                    if (!oneway) {
View Full Code Here

            final ClientContextChain contextChain,
            final Object[] args)
        throws Exception
    {
        final AsyncMethodCallFuture<Object> future = AsyncMethodCallFuture.create(contextChain);
        final RequestContext requestContext = RequestContexts.getCurrentContext();

        contextChain.preWrite(args);
        outputTransport.resetOutputBuffer();
        writeArguments(outputProtocol, sequenceId, args);
        ChannelBuffer requestBuffer = outputTransport.getOutputBuffer().copy();
        contextChain.postWrite(args);

        // send message and setup listener to handle the response
        channel.sendAsynchronousRequest(requestBuffer, false, new RequestChannel.Listener() {
            @Override
            public void onRequestSent() {
                if (oneway) {
                    try {
                        future.set(null);
                    }
                    catch (Exception e) {
                        future.setException(e);
                    }
                }
            }

            @Override
            public void onResponseReceived(ChannelBuffer message) {
                RequestContext oldRequestContext = RequestContexts.getCurrentContext();
                RequestContexts.setCurrentContext(requestContext);
                try {
                    contextChain.preRead();
                    inputTransport.setInputBuffer(message);
                    waitForResponse(inputProtocol, sequenceId);
                    Object results = readResponse(inputProtocol);
                    contextChain.postRead(results);
                    future.set(results);
                }
                catch (Exception e) {
                    contextChain.postReadException(e);
                    future.setException(e);
                }
                finally {
                    RequestContexts.setCurrentContext(oldRequestContext);
                }
            }

            @Override
            public void onChannelError(TException e) {
                RequestContext oldRequestContext = RequestContexts.getCurrentContext();
                RequestContexts.setCurrentContext(requestContext);
                try {
                    contextChain.preReadException(e);
                    future.setException(e);
                } finally {
View Full Code Here

                .withProcessor(new scribe.Processor<>(new scribe.Iface() {
                    @Override
                    public ResultCode Log(List<LogEntry> messages)
                            throws TException
                    {
                        RequestContext context = RequestContexts.getCurrentContext();

                        for (LogEntry message : messages) {
                            log.info("[Client: {}] {}: {}",
                                    context.getConnectionContext().getRemoteAddress(),
                                    message.getCategory(),
                                    message.getMessage());
                        }
                        return ResultCode.OK;
                    }
View Full Code Here

                .listen(port)
                .withProcessor(new scribe.Processor<>(new scribe.Iface() {
                    @Override
                    public ResultCode Log(List<LogEntry> messages)
                            throws TException {
                        RequestContext context = RequestContexts.getCurrentContext();

                        for (LogEntry message : messages) {
                            log.info("[Client: {}] {}: {}",
                                     context.getConnectionContext().getRemoteAddress(),
                                     message.getCategory(),
                                     message.getMessage());
                        }
                        return ResultCode.OK;
                    }
View Full Code Here

                .listen(port)
                .withProcessor(new scribe.Processor<>(new scribe.Iface() {
                    @Override
                    public ResultCode Log(List<LogEntry> messages)
                            throws TException {
                        RequestContext context = RequestContext.getCurrentContext();

                        for (LogEntry message : messages) {
                            log.info("[Client: {}] {}: {}",
                                     context.getRemoteAddress(),
                                     message.getCategory(),
                                     message.getMessage());
                        }
                        return ResultCode.OK;
                    }
View Full Code Here

        return new scribe.Processor<scribe.Iface>(new scribe.Iface() {
            @Override
            public ResultCode Log(List<LogEntry> messages)
                    throws TException
            {
                RequestContext context = RequestContexts.getCurrentContext();

                for (LogEntry message : messages) {
                    log.info("[Client: {}] {}: {}",
                             context.getConnectionContext().getRemoteAddress(),
                             message.getCategory(),
                             message.getMessage());
                }
                return ResultCode.OK;
            }
View Full Code Here

{
    private static final Logger LOG = LoggerFactory.getLogger(HeaderUsageExampleHandler.class);

    @ThriftMethod
    public void headerUsageExampleMethod() {
        RequestContext requestContext = RequestContexts.getCurrentContext();

        // Display headers sent by client
        TTransport inputTransport = requestContext.getInputProtocol().getTransport();
        if (inputTransport instanceof THeaderTransport) {
            LOG.info("headers received from the client in the request:");
            THeaderTransport headerTransport = (THeaderTransport) inputTransport;
            for (String key : headerTransport.getReadHeaders().keySet()) {
                LOG.info("header '" + key + "' => '" + headerTransport.getReadHeaders().get(key) + "'");
            }
        }

        // Send some headers back to the client
        TTransport outputTransport = requestContext.getOutputProtocol().getTransport();
        if (outputTransport instanceof THeaderTransport) {
            LOG.info("adding headers to the response");
            THeaderTransport headerTransport = (THeaderTransport) inputTransport;
            headerTransport.setHeader("header_from", "server");
        }
View Full Code Here

TOP

Related Classes of com.facebook.nifty.core.RequestContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.