Package com.barchart.udt.net

Source Code of com.barchart.udt.net.StreamServer

/**
* Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/>
*
* All rights reserved. Licensed under the OSI BSD License.
*
* http://www.opensource.org/licenses/bsd-license.php
*/
package com.barchart.udt.net;

import java.net.InetSocketAddress;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import util.UnitHelp;

import com.barchart.udt.SocketUDT;
import com.barchart.udt.StatusUDT;
import com.barchart.udt.TypeUDT;

class StreamServer extends StreamBase {

  private static final Logger log = LoggerFactory
      .getLogger(StreamServer.class);

  final ExecutorService executor;

  final ServiceFactory factory;

  @Override
  public void run() {

    try {

      final SocketUDT connectorSocket = socket.accept();

      final Runnable serviceTask = factory.newService(connectorSocket);

      executor.submit(serviceTask);

    } catch (Exception e) {
      e.printStackTrace();
    }

  }

  StreamServer(final TypeUDT type, final InetSocketAddress serverAddress,
      final ServiceFactory factory) throws Exception {

    super(new SocketUDT(type), UnitHelp.localSocketAddress(), serverAddress);

    this.factory = factory;

    this.executor = Executors.newCachedThreadPool();

  }

  void showtime() throws Exception {

    socket.bind(remoteAddress);
    assert socket.isBound();

    socket.listen(1);
    assert socket.status() == StatusUDT.LISTENING;

    executor.submit(this);

  }

  void shutdown() throws Exception {

    socket.close();

    executor.shutdown();

  }

}
TOP

Related Classes of com.barchart.udt.net.StreamServer

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.