A Few Simple Examples

The Server publishes one service (integer value)

import dim.*;

public static void main (String[] args)
{
    int run = 0;
    DimService runNumber = new DimService("DELPHI/RUN_NUMBER", run);
    DimServer.start("RUN_INFO");
//  ...
}

The Client subscribes to the service,
requesting it to be updated every 5 seconds.
If the service is not available the value "-1" should be received instead.

import dim.*;

public static void main (String[] args)
{
   DimInfo runNumber = new DimInfo("DELPHI/RUN_NUMBER",5,-1);
//  ...
    System.out.println("RunNumber: "+ runNumber.getInt());
}



The Server publishes one service (integer value)
and updates it from time to time (when it changes):

import dim.*;

public static void main (String[] args)
{
    int run = 0;
    DimService runNumber = new DimService("DELPHI/RUN_NUMBER", run);
    DimServer.start("RUN_INFO");
    while(true)
    {
//      ...
        run++;
        runNumber.updateService(run);
    }
}

The Client subscribes to one service and
executes a method when the service gets updated
(when the server executes updateService()):

import dim.*;

public static void main (String[] args)
{
    DimInfo runNumber  = new DimInfo("DELPHI/RUN_NUMBER",-1)
    {
        public void infoHandler()
        {
            System.out.println("Run Number: "+getInt());
        }
    }
    // then can come the main loop 
};


The Server can receive commands (a string):

import dim.*;

public static void main (String[] args)
{
    DimCommand cmnd = new DimCommand("DELPHI/TEST/CMND", "C")
    {
        public void commandHandler()
        {
            System.out.println("Received: "+getString());
        }
    }
    DimServer.start("TEST");
    // Then the rest of the main loop
};

The client sends a command:

import dim.*;

public static void main (String[] args)
{
    DimClient.sendCommand("DELPHI/TEST/CMND","DO_IT");
}