Source: networkmonitorreport.h


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


#ifndef NETWORKMONITORREPORT_H
#define NETWORKMONITORREPORT_H


#include "system.h"
#include "trafficclassvalues.h"


namespace Coral {


/**
  * This is a network report, which can be read from a NetworkMonitor.
  *
  * @short   Network Monitor Report
  * @author  Thomas Dreibholz (Dreibholz@bigfoot.com)
  * @version 1.0
  */
class NetworkMonitorReport
{
   // ====== Constructor ====================================================
   public:
   /**
     * Constructor.
     */
   NetworkMonitorReport();

   // ====== Byte order translation =========================================
   /**
     * Translate byte order.
     */
   void translate();


   // ====== Status functions ===============================================
   /**
     * Reset report.
     */
   void reset();


   // ======  Report data ===================================================
   /**
     * Interval of the report in microseconds.
     */
   card64 Interval;

   /**
     * Timestamp of this report (microseconds since 01-Jan-1970).
     */
   card64 TimeStamp;

   /**
     * Bytes of raw data transmitted over network interface.
     */
   card64 BytesRaw;

   /**
     * Bytes transmitted in IPv6 packets.
     */
   card64 BytesIPv4;

   /**
     * Bytes transmitted in IPv6 packets.
     */
   card64 BytesIPv6;

   /**
     * Bytes transmitted in TCP packets inclusive TCP header.
     */
   card64 BytesTCP;

   /**
     * Bytes transmitted in TCP packets without TCP headers.
     */
   card64 BytesTCPData;

   /**
     * Bytes transmitted in UDP packets inclusive UDP header.
     */
   card64 BytesUDP;

   /**
     * Bytes transmitted in UDP packets without UDP headers.
     */
   card64 BytesUDPData;

   /**
     * Bytes transmitted in ICMP version 4 packets inclusive ICMP header.
     */
   card64 BytesICMP4;

   /**
     * Bytes transmitted in ICMP version 6 packets inclusive ICMP header.
     */
   card64 BytesICMP6;

   /**
     * Number of raw packets transmitted over network interface.
     */
   card32 PacketsRaw;

   /**
     * Number of IPv4 packets transmitted.
     */
   card32 PacketsIPv4;

   /**
     * Number of IPv6 packets transmitted.
     */
   card32 PacketsIPv6;

   /**
     * Number of TCP packets transmitted.
     */
   card32 PacketsTCP;

   /**
     * Number of UDP packets transmitted.
     */
   card32 PacketsUDP;

   /**
     * Number of ICMP version 4 packets transmitted.
     */
   card32 PacketsICMP4;

   /**
     * Number of ICMP version 6 packets transmitted.
     */
   card32 PacketsICMP6;

   /**
     * Number of raw bytes grouped by QoS class.
     */
   card64 ClassBytes[TrafficClassValues::MaxValues];

   /**
     * Number of packets grouped by QoS class.
     */
   card32 ClassPackets[TrafficClassValues::MaxValues];
};


/**
  * Implementation of << operator.
  */
ostream& operator<<(ostream& os, const NetworkMonitorReport& report);


}


#endif

Generated by: viper@odin on Fri Feb 23 12:41:26 2001, using kdoc 2.0a36.