Package edu.jas.util

Class ChannelFactory

  • All Implemented Interfaces:
    java.lang.Runnable

    public class ChannelFactory
    extends java.lang.Thread
    ChannelFactory implements a symmetric and non blocking way of setting up sockets on the client and server side. The constructor sets up a ServerSocket and accepts and stores any Socket creation requests from clients. The created Sockets can the be retrieved from the store without blocking. Refactored for java.util.concurrent.
    Author:
    Akitoshi Yoshida, Heinz Kredel
    See Also:
    SocketChannel
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_PORT
      default port of socket.
      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Constructor Summary

      Constructors 
      Constructor Description
      ChannelFactory()
      Constructs a ChannelFactory on the DEFAULT_PORT.
      ChannelFactory​(int p)
      Constructs a ChannelFactory.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SocketChannel getChannel()
      Get a new socket channel from a server socket.
      SocketChannel getChannel​(java.lang.String h)
      Get a new socket channel to a given host.
      SocketChannel getChannel​(java.lang.String h, int p)
      Get a new socket channel to a given host.
      void init()
      thread initialization and start.
      void run()
      Run the servers accept() in an infinite loop.
      void terminate()
      Terminate the Channel Factory
      java.lang.String toString()
      toString.
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ChannelFactory

        public ChannelFactory()
        Constructs a ChannelFactory on the DEFAULT_PORT.
      • ChannelFactory

        public ChannelFactory​(int p)
        Constructs a ChannelFactory.
        Parameters:
        p - port.
    • Method Detail

      • toString

        public java.lang.String toString()
        toString.
        Overrides:
        toString in class java.lang.Thread
      • init

        public void init()
        thread initialization and start.
      • getChannel

        public SocketChannel getChannel()
                                 throws java.lang.InterruptedException
        Get a new socket channel from a server socket.
        Throws:
        java.lang.InterruptedException
      • getChannel

        public SocketChannel getChannel​(java.lang.String h)
                                 throws java.io.IOException
        Get a new socket channel to a given host.
        Parameters:
        h - hostname
        Throws:
        java.io.IOException
      • getChannel

        public SocketChannel getChannel​(java.lang.String h,
                                        int p)
                                 throws java.io.IOException
        Get a new socket channel to a given host.
        Parameters:
        h - hostname
        p - port
        Throws:
        java.io.IOException
      • run

        public void run()
        Run the servers accept() in an infinite loop.
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
      • terminate

        public void terminate()
        Terminate the Channel Factory