src/contrib/stats/basic-data-calculators.h
author tjkopena@cs.drexel.edu
Fri, 29 Aug 2008 13:22:09 -0400
changeset 3570 44b0bc6817c6
child 5502 04acce3f7133
permissions -rw-r--r--
Stats module and example merged in.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3570
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     2
/*
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     3
 * Copyright (c) 2008 Drexel University
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     4
 *
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     7
 * published by the Free Software Foundation;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     8
 *
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    12
 * GNU General Public License for more details.
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    13
 *
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    17
 *
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    18
 * Author: Joe Kopena (tjkopena@cs.drexel.edu)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    19
 */
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    20
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    21
#ifndef __BASIC_DATA_CALCULATORS_H__
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    22
#define __BASIC_DATA_CALCULATORS_H__
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    23
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    24
#include "data-calculator.h"
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    25
#include "data-output-interface.h"
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    26
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    27
namespace ns3 {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    28
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    29
  //------------------------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    30
  //--------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    31
  template <typename T  = uint32_t>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    32
  class MinMaxAvgTotalCalculator : public DataCalculator {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    33
  public:
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    34
    MinMaxAvgTotalCalculator();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    35
    virtual ~MinMaxAvgTotalCalculator();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    36
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    37
    void Update(const T i);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    38
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    39
    virtual void Output(DataOutputCallback &callback) const;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    40
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    41
  protected:
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    42
    virtual void DoDispose(void);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    43
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    44
    uint32_t m_count;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    45
    T m_total, m_min, m_max;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    46
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    47
    // end MinMaxAvgTotalCalculator
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    48
  };
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    49
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    50
  //----------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    51
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    52
  MinMaxAvgTotalCalculator<T>::MinMaxAvgTotalCalculator()
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    53
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    54
    m_count = 0;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    55
    m_total = 0;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    56
    m_min = ~0;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    57
    m_max = 0;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    58
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    59
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    60
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    61
  MinMaxAvgTotalCalculator<T>::~MinMaxAvgTotalCalculator()
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    62
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    63
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    64
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    65
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    66
  MinMaxAvgTotalCalculator<T>::DoDispose(void)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    67
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    68
    DataCalculator::DoDispose();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    69
    // MinMaxAvgTotalCalculator::DoDispose
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    70
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    71
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    72
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    73
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    74
  MinMaxAvgTotalCalculator<T>::Update(const T i)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    75
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    76
    if (m_enabled) {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    77
      m_total += i;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    78
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    79
      if (i < m_min)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    80
        m_min = i;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    81
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    82
      if (i > m_max)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    83
        m_max = i;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    84
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    85
      m_count++;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    86
    }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    87
    // end MinMaxAvgTotalCalculator::Update
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    88
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    89
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    90
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    91
  MinMaxAvgTotalCalculator<T>::Output(DataOutputCallback &callback) const
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    92
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    93
    callback.OutputSingleton(m_key, "count", m_count);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    94
    if (m_count > 0) {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    95
      callback.OutputSingleton(m_key, "total", m_total);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    96
      callback.OutputSingleton(m_key, "average", m_total/m_count);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    97
      callback.OutputSingleton(m_key, "max", m_max);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    98
      callback.OutputSingleton(m_key, "min", m_min);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
    99
    }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   100
    // end MinMaxAvgTotalCalculator::Output
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   101
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   102
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   103
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   104
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   105
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   106
  //------------------------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   107
  //--------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   108
  template <typename T  = uint32_t>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   109
  class CounterCalculator : public DataCalculator {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   110
  public:
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   111
    CounterCalculator();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   112
    virtual ~CounterCalculator();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   113
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   114
    void Update();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   115
    void Update(const T i);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   116
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   117
    T GetCount() const;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   118
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   119
    virtual void Output(DataOutputCallback &callback) const;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   120
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   121
  protected:
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   122
    virtual void DoDispose(void);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   123
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   124
    T m_count;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   125
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   126
    // end CounterCalculator
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   127
  };
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   128
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   129
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   130
  //--------------------------------------------
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   131
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   132
  CounterCalculator<T>::CounterCalculator() :
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   133
    m_count(0)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   134
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   135
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   136
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   137
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   138
  CounterCalculator<T>::~CounterCalculator()
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   139
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   140
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   141
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   142
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   143
  CounterCalculator<T>::DoDispose(void)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   144
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   145
    DataCalculator::DoDispose();
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   146
    // CounterCalculator::DoDispose
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   147
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   148
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   149
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   150
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   151
  CounterCalculator<T>::Update()
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   152
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   153
    if (m_enabled) {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   154
      m_count++;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   155
    }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   156
    // end CounterCalculator::Update
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   157
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   158
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   159
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   160
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   161
  CounterCalculator<T>::Update(const T i)
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   162
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   163
    if (m_enabled) {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   164
      m_count += i;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   165
    }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   166
    // end CounterCalculator::Update
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   167
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   168
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   169
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   170
  T
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   171
  CounterCalculator<T>::GetCount() const
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   172
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   173
    return m_count;
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   174
    // end CounterCalculator::GetCount
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   175
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   176
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   177
  template <typename T>
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   178
  void
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   179
  CounterCalculator<T>::Output(DataOutputCallback &callback) const
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   180
  {
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   181
    callback.OutputSingleton(m_key, "count", m_count);
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   182
    // end CounterCalculator::Output
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   183
  }
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   184
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   185
  // end namespace ns3
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   186
};
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   187
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   188
44b0bc6817c6 Stats module and example merged in.
tjkopena@cs.drexel.edu
parents:
diff changeset
   189
#endif // __BASIC_DATA_CALCULATORS_H__