Java Tutorial

 
 
 
 
// CountClient.java  

import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;

class CountClient { 

  static Count countImpl;

  public static void main(String args[])
  { try
    { // Initialize the ORB
      System.out.println(\"Initializing the ORB\");
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);

        // get the root naming context
        org.omg.CORBA.Object objRef = 
        orb.resolve_initial_references(\"NameService\");
        // Use NamingContextExt instead of NamingContext. This is 
        // part of the Interoperable naming Service.  
        NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

        // resolve the Object Reference in Naming
        String name = \"Count\";
        countImpl = CountHelper.narrow(ncRef.resolve_str(name));

        System.out.println(\"Obtained a handle on server object: \" + countImpl);

      // Set sum to initial value of 0
      System.out.println(\"Setting sum to 0\");
      countImpl.sum((int)0);

      // Calculate Start time
      long startTime = System.currentTimeMillis();

      // Increment 1000 times
      System.out.println(\"Incrementing\");
      for (int i = 0 ; i < 1000 ; i++ )
      { countImpl.increment();
      }

      // Calculate stop time; print out statistics
      long stopTime = System.currentTimeMillis();
      System.out.println(\"Avg Ping = \"
                       + ((stopTime - startTime)/1000f) + \" msecs\");
      System.out.println(\"Sum = \" + countImpl.sum());
    } catch(Exception e)
    { System.err.println(\"System Exception\");
      System.err.println(e);
    }
  }
}


// CountServer.java: The Count Server main program

import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;

class CountServer
{ static public void main(String[] args)
  { try
    { // Initialize the ORB
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);

      // Initialize the BOA
      POA rootpoa = POAHelper.narrow(orb.resolve_initial_references(\"RootPOA\"));
      rootpoa.the_POAManager().activate();

      // Create the Count object
      CountImpl count = new CountImpl(\"My Count\");

      // get object reference from the servant
      org.omg.CORBA.Object ref = rootpoa.servant_to_reference(count);
      Count href = Counter.CountHelper.narrow(ref);

      // get the root naming context
      // NameService invokes the name service
      org.omg.CORBA.Object objRef =
          orb.resolve_initial_references(\"NameService\");
      // Use NamingContextExt which is part of the Interoperable
      // Naming Service (INS) specification.
      NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

      // bind the Object Reference in Naming
      String name = \"Count\";
      NameComponent path[] = ncRef.to_name( name );
      ncRef.rebind(path, href);

      System.out.println(\"HelloServer ready and waiting ...\");

      // wait for invocations from clients
      orb.run();

      }
      catch(Exception e)
      { System.err.println(e);
      }
   }
}


// CountClientApplet.java  Applet Client, VisiBroker for Java

import Counter.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.awt.*;

public class CountClientApplet extends java.applet.Applet
{ private TextField countField, pingTimeField;
  private Button runCount;
  private Counter.Count counter;
  public void init()
  { // Create a 2 by 2 grid of widgets.
    setLayout(new GridLayout(2, 2, 10, 10));

    // Add the four widgets, initialize where necessary
    add(new Label(\"Count\"));
    add(countField = new TextField());
    countField.setText(\"1000\");
    add(runCount = new Button(\"Run\"));
    add(pingTimeField = new TextField());
    pingTimeField.setEditable(false);

    try
    { // Initialize the ORB.
      showStatus(\"Initializing the ORB\");
      org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this, null);

      // Bind to the Count Object
        // get the root naming context
        org.omg.CORBA.Object objRef = 
        orb.resolve_initial_references(\"NameService\");
        // Use NamingContextExt instead of NamingContext. This is 
        // part of the Interoperable naming Service.  
        NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

        // resolve the Object Reference in Naming
        String name = \"Count\";
        counter = CountHelper.narrow(ncRef.resolve_str(name));

      showStatus(\"Binding to Count Object\");

    } catch(Exception e)
    {
      showStatus(\"Applet Exception\" + e);
      e.printStackTrace(System.out);
    }
  }

  public boolean action(Event ev, java.lang.Object arg)
  { if(ev.target == runCount)
    { try
      { // Set Sum to initial value of 0
        showStatus(\"Setting Sum to 0\");
        counter.sum((int)0);

        // get data from and set value of applet fields
        showStatus(\"Incrementing\");
        int stopCount = Integer.parseInt(countField.getText());
        pingTimeField.setText(\" \");

        // Calculate Start time
        long startTime = System.currentTimeMillis();

        // Increment stopCount times
        for (int i = 0 ; i < stopCount ; i++ )
        { counter.increment();
        }

        // Calculate stop time; show statistics
        long stopTime = System.currentTimeMillis();
        pingTimeField.setText(\"Avg Ping = \"
                  + Float.toString((float)(stopTime- startTime)/stopCount)
                  + \" msecs\");
        showStatus(\"Sum = \" + counter.sum());
      } catch(Exception e)
      { showStatus(\"System Exception\" + e);
      e.printStackTrace();
      }
      return true;
    }
    return false;
  }
}


// CountImpl.java: The Count Implementation

class CountImpl extends Counter.CountPOA
{
  private int sum;

  // Constructors
  CountImpl(String name)
  { super();
    System.out.println(\"Count Object Created\");
    sum = 0;
  }

  // get sum
  public  int sum()
  { return sum;
  }

  // set sum
  public  void sum(int val)
  { sum = val;
  }

  // increment method
  public int increment()
  { sum++;
    return sum;
  }
}


// Count Client Applet

<h1>Count Client Applet</h1>
<hr>
<center>
<APPLET CODE=CountClientApplet.class WIDTH=300 HEIGHT=60
        CODEBASE=.>
        <PARAM name=\"org.omg.CORBA.ORBInitialHost\" value=MCA329>
        <PARAM name=\"org.omg.CORBA.ORBInitialPort\" value=1050>
</APPLET>
</center>
<hr>

 
 
Didn't find what you were looking for? Find more on Corba program of Count Client Applet, IDL,Server, Client