next up previous
Next: Query Messages from Browser Up: A Simple C++ Browser Previous: A Simple Java Query

A Simple Java Monitor Browser


import cmlog.*;

import java.io.*;
import java.net.*;
import java.util.*;

public class cmlogBrowserMonitor implements BrowserMonitorEventListener
{
    private String host_ = null;
    private int    port_ = 0;

    public cmlogBrowserMonitor ()
    {
    }

    public void handleMonitorEvent (BrowserEvent event)
    {
	cdevData data;
	int i;
	int nmsgs = 0;
	cdevDataEntry de;

	if (event.status == Config.CMLOG_SUCCESS) {
	    cdevMessage[] msgs = event.packet.messages();
	    nmsgs = event.packet.numberOfMessages ();
	    for (i = 0; i < nmsgs; i++) {
		data = msgs[i].getData ();
		de = data.get (Config.TEXT_TAG);
		System.out.println (de.stringValue());
		// data.asciiDump ();
	    }
	}
	else if (event.status == Config.CMLOG_CBK_FINISHED)
	    System.out.println ("Monitor finished\n");
    }

    public static void main (String[] args)
    {
	if (args.length < 3) {
	    System.err.println ("Usage: cmlogBrowserMonitor host port proto-version(1 or 2) [debug]");
	    System.exit (-1);
	}

	cmlogBrowserMonitor test = new cmlogBrowserMonitor ();

	test.host_ = args[0];
	test.port_ = Integer.valueOf (args[1]).intValue();
	Config.PROTOCOL_MAJOR_VERSION = Integer.valueOf (args[2]).intValue();

	if (args.length > 3) {
	    String tstring = args[3];
	    if (tstring.compareTo ("debug") == 0)
		Config.debug = true;
	}
	
	// create new cmlogBrowser
	Browser br = new Browser ();
	try {
	    br.connect (test.host_, test.port_);
	}catch (UnknownHostException ue) {
	    System.err.println (ue);
	    System.exit (-1);
	}catch (IOException e) {
	    System.err.println (e);
	    System.exit (-1);
	}
	
	if (br.addMonitorEventListener (null, test) == false) {
	    System.err.println ("Cannot register monitor event listener");
	    System.exit (-1);
	}

	// sleep 20 seconds before calling remove monitor
	try {
	    Thread.sleep (20000);
	}catch (InterruptedException e){
	}
	    

	System.out.println("<------------------------------------>");
	if (br.removeMonitorEventListener (null, test) == false) {
	    System.err.println ("Cannot Remove monitor event listener");
	    System.exit (-1);
	}
	System.out.println("<------------------------------------>");

	// sleep 20 seconds before calling remove monitor
	try {
	    Thread.sleep (2000);
	}catch (InterruptedException e){
	}

	try {
	    br.disconnect ();
	}catch (IOException e) {

	}

    }	
}



Jie chen
2001-10-22