Source: networkmonitorinterface.h


Annotated List
Files
Globals
Hierarchy
Index
// ##########################################################################
// ####                                                                  ####
// ####                      RTP Audio Server Project                    ####
// ####                    ============================                  ####
// ####                                                                  ####
// #### Network Monitor Interface                                        ####
// ####                                                                  ####
// #### Version 1.00  --  February 04, 2001                              ####
// ####                                                                  ####
// #### Copyright (C) 1999  Thomas Dreibholz                             ####
// ####               2000  Universität Bonn, Abt. IV                    ####
// ####               2001  EMail: Dreibholz@bigfoot.com                 ####
// ####                     WWW:   http://www.bigfoot.com/~dreibholz     ####
// ####                                                                  ####
// ##########################################################################


#ifndef NETWORKMONITORINTERFACE_H
#define NETWORKMONITORINTERFACE_H


#include "system.h"
#include "networkmonitorreport.h"
#include "synchronizable.h"


namespace Coral {


/**
  * This class is an interface for a network monitor, which sums bytes and
  * packets transmitted.
  *
  * @short   Network Monitor Interface
  * @author  Thomas Dreibholz (Dreibholz@bigfoot.com)
  * @version 1.0
  */
class NetworkMonitorInterface
{
   // ====== Virtual destructor =============================================
   public:
   /**
     * Virtual destructor.
     */
   virtual ~NetworkMonitorInterface() = 0;


   // ====== Status functions ===============================================
   /**
     * Check, if NetworkMonitor is ready.
     *
     * @return true, if ready; false, if not.
     */
   virtual bool ready() const = 0;


   // ====== Lock functions =================================================
   /**
     * Lock monitor to access data.
     */
   virtual void lock() = 0;

   /**
     * Unlock monitor.
     */
   virtual void unlock() = 0;


   // ====== Report functions ===============================================
   /**
     * Reset the network report.
     */
   virtual void resetReport() = 0;

   /**
     * Get a copy of the network report created by the monitor.
     *
     * @param report Address of NetworkMonitorReport to store the report.
     */
   virtual void getReport(NetworkMonitorReport* report) = 0;

   /**
     * Get a copy of the network report created by the monitor, then reset
     * the report. Note: Do *not* use getReport() and resetReport() to
     * get a report and reset the monitor's report. The monitor could have
     * received packets between getReport() and resetReport()!
     *
     * @param report Address of NetworkMonitorReport to store the report.
     */   
   virtual void moveReport(NetworkMonitorReport* report) = 0;
};


}


#endif

Generated by: viper@odin on Sun Feb 4 18:54:51 2001, using kdoc 2.0a22.