Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

AbstractDataCollector.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2004 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Nicolas Modrzyk.
00022  * Contributor(s): 
00023  */
00024 package org.objectweb.cjdbc.common.monitor;
00025 
00026 import java.io.Serializable;
00027 
00028 import org.objectweb.cjdbc.common.exceptions.DataCollectorException;
00029 
00030 
00031 /**
00032  * This defines the abstract hierachy to collect monitoring information.
00033  * All monitored information from the controller should extends this class.
00034  * <code>collectValue</code> can therefore NOT be called directly on the client 
00035  * side.
00036  * Instead, the client should be only given the returned result.
00037  *  
00038  * @author <a href="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk</a>
00039  *  
00040  */
00041 public abstract class AbstractDataCollector implements Serializable
00042 {
00043   protected transient Object controller;
00044   
00045   /**
00046    * This is used on the controller side to collect information
00047    * @return the value collected by this collectorsardes@inrialpes.fr
00048    * @throws DataCollectorException if fails to collect the information 
00049    */
00050   public abstract long collectValue() throws DataCollectorException;
00051   
00052   /**
00053    * Get a string description for this collector
00054    * @return translated string
00055    */
00056   public abstract String getDescription();
00057   
00058   /**
00059    * Return the name of the target of this collector
00060    * @return target name
00061    */
00062   public abstract String getTargetName();
00063   
00064   /**
00065    * associated a controller to this data collector 
00066    * 
00067    * @param controller to associate
00068    */
00069   public void setController(Object controller)
00070   {
00071     this.controller = controller;
00072   }
00073   
00074   
00075 }

Generated on Mon Apr 11 22:01:28 2005 for C-JDBC by  doxygen 1.3.9.1