Package com.davfx.ninio.http

Source Code of com.davfx.ninio.http.HttpServer

package com.davfx.ninio.http;

import java.io.IOException;
import java.nio.ByteBuffer;

import com.davfx.ninio.common.Address;
import com.davfx.ninio.common.CloseableByteBufferHandler;
import com.davfx.ninio.common.Listen;
import com.davfx.ninio.common.OnceByteBufferAllocator;
import com.davfx.ninio.common.Queue;
import com.davfx.ninio.common.QueueListen;
import com.davfx.ninio.common.SocketListen;
import com.davfx.ninio.common.SocketListening;
import com.davfx.ninio.common.SslSocketListening;
import com.davfx.ninio.common.Trust;

public final class HttpServer {
  public HttpServer(Queue queue, Address serverAddress, HttpServerHandlerFactory factory) {
    this(queue, null, serverAddress, factory);
  }
  public HttpServer(Queue queue, final Trust trust, Address serverAddress, final HttpServerHandlerFactory factory) {
    SocketListening listening = new SocketListening() {
      @Override
      public CloseableByteBufferHandler connected(Address address, CloseableByteBufferHandler connection) {
        HttpServerHandler h = factory.create();
        if (h == null) {
          h = new HttpServerHandler() {
            @Override
            public void ready(Write write) {
            }
            @Override
            public void handle(Address address, ByteBuffer buffer) {
            }
            @Override
            public void handle(HttpRequest request) {
            }
            @Override
            public void failed(IOException e) {
            }
            @Override
            public void close() {
            }
          };
        }
        return new HttpRequestReader(address, trust != null, h, connection);
      }
     
      @Override
      public void failed(IOException e) {
        factory.failed(e);
      }
     
      @Override
      public void close() {
        factory.closed();
      }
    };
   
    if (trust != null) {
      listening = new SslSocketListening(trust, listening);
    }
   
    Listen listen = new SocketListen(queue.getSelector(), new OnceByteBufferAllocator());
    listen = new QueueListen(queue, listen);
    listen.listen(serverAddress, listening);
  }
}
TOP

Related Classes of com.davfx.ninio.http.HttpServer

TOP
Copyright © 2018 www.massapi.com. 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.