Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

alice.tuplemedium.runtime
Class Daemon  view Daemon download Daemon.java

java.lang.Object
  extended byalice.tuplemedium.runtime.Daemon
All Implemented Interfaces:
java.lang.Runnable

public class Daemon
extends java.lang.Object
implements java.lang.Runnable

Daemon class implement the basic behaviour of an TCP/IP infrastructure which listens for new tuple media clients, creates new tuple media, creates client request acceptors.

it's the basic component from which derives the infrastructure topology

the class has been designed as Singleton pattern: for each java VM only ONE Daemon could be installed


Nested Class Summary
(package private)  class Daemon.ServiceRequest
           
 
Field Summary
static boolean active
          indicates if the (only) service is actually running
private  java.lang.Object arguments
          boot daemon arguments
protected  java.util.HashMap cores
          current tuple media installed
protected static java.lang.String daemonName
          default name of the service
protected static int DEFAULT_PORT
          default listening port of the service
static Daemon instance
          reference to the instance representing the service running
private  java.net.InetAddress[] localAddresses
           
protected  java.net.ServerSocket mainSocket
          listening socket
protected  java.lang.Class mediumImpl
          actual implementation of tuple medium
private  int port
           
 
Constructor Summary
Daemon(java.lang.String daemonName_, java.lang.String mediumClassName, java.lang.Object args)
          creates and installs a tuple media daemon
Daemon(java.lang.String daemonName_, java.lang.String mediumClassName, java.lang.Object args, int port)
          creates and installs a tuple media daemon on a specific port
 
Method Summary
 alice.tuplemedium.TupleCentreVMImpl getCore(alice.tuplemedium.TupleCentreId tid)
          gets the reference to a previosly created local tuple centre.
 int getPort()
           
private  void initCore(int port_)
           
 void msgNewInspector(NewInspectorMsg msg, java.net.Socket socket, java.io.ObjectInputStream inStream, java.io.ObjectOutputStream outStream)
          processing a new inspector request
 void msgNewUser(NewUserMsg msg, java.net.Socket socket, java.io.ObjectInputStream inStream, java.io.ObjectOutputStream outStream)
          processing a new user request
 void msgPing(PingMsg msg, java.net.Socket socket, java.io.ObjectInputStream inStream, java.io.ObjectOutputStream outStream)
          processing a ping request
 boolean onNewInspector(alice.tuplemedium.AgentId who)
           
 boolean onNewTupleCentre(alice.tuplemedium.AgentId who, java.lang.String tcName)
           
 boolean onNewUser(alice.tuplemedium.AgentId who)
           
protected  alice.tuplemedium.TupleCentreVMImpl resolveCore(alice.tuplemedium.AgentId aid, java.lang.String tcName)
          resolves a tuple medium reference givent its name.
 void run()
          waiting and dispatching new users and inspectors request
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_PORT

protected static final int DEFAULT_PORT
default listening port of the service

See Also:
Constant Field Values

daemonName

protected static java.lang.String daemonName
default name of the service


active

public static boolean active
indicates if the (only) service is actually running


instance

public static Daemon instance
reference to the instance representing the service running


mainSocket

protected java.net.ServerSocket mainSocket
listening socket


port

private int port

localAddresses

private java.net.InetAddress[] localAddresses

cores

protected java.util.HashMap cores
current tuple media installed


mediumImpl

protected java.lang.Class mediumImpl
actual implementation of tuple medium


arguments

private java.lang.Object arguments
boot daemon arguments

Constructor Detail

Daemon

public Daemon(java.lang.String daemonName_,
              java.lang.String mediumClassName,
              java.lang.Object args)
       throws java.io.IOException,
              java.lang.ClassNotFoundException
creates and installs a tuple media daemon


Daemon

public Daemon(java.lang.String daemonName_,
              java.lang.String mediumClassName,
              java.lang.Object args,
              int port)
       throws java.io.IOException,
              java.lang.ClassNotFoundException
creates and installs a tuple media daemon on a specific port

Method Detail

initCore

private void initCore(int port_)
               throws java.io.IOException

getPort

public int getPort()

run

public void run()
waiting and dispatching new users and inspectors request

Specified by:
run in interface java.lang.Runnable

msgNewUser

public void msgNewUser(NewUserMsg msg,
                       java.net.Socket socket,
                       java.io.ObjectInputStream inStream,
                       java.io.ObjectOutputStream outStream)
processing a new user request


msgNewInspector

public void msgNewInspector(NewInspectorMsg msg,
                            java.net.Socket socket,
                            java.io.ObjectInputStream inStream,
                            java.io.ObjectOutputStream outStream)
processing a new inspector request


msgPing

public void msgPing(PingMsg msg,
                    java.net.Socket socket,
                    java.io.ObjectInputStream inStream,
                    java.io.ObjectOutputStream outStream)
processing a ping request


resolveCore

protected alice.tuplemedium.TupleCentreVMImpl resolveCore(alice.tuplemedium.AgentId aid,
                                                          java.lang.String tcName)
resolves a tuple medium reference givent its name.

if the tuple medium is not found, then a new VM is created and registered with specified name


getCore

public alice.tuplemedium.TupleCentreVMImpl getCore(alice.tuplemedium.TupleCentreId tid)
gets the reference to a previosly created local tuple centre.


onNewUser

public boolean onNewUser(alice.tuplemedium.AgentId who)

onNewInspector

public boolean onNewInspector(alice.tuplemedium.AgentId who)

onNewTupleCentre

public boolean onNewTupleCentre(alice.tuplemedium.AgentId who,
                                java.lang.String tcName)