summaryrefslogtreecommitdiff
path: root/apps/JAWS/remora/app/Remora_Export.h
blob: 484cfd238d48a671e9feb9b78280fd1905a49d73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// $Id

// ===================================================================
//
// = FILENAME
//    Remora_Export.h
//
// = AUTHOR
//    Seth Widoff
//
// ===================================================================


#ifndef REMORA_EXPORT_H
#define REMORA_EXPORT_H

#include <bstring.h>
#include "remora_c.hh"

#define MAX_VALUE 100
#define NO_NAME "Unnamed Statistic"
#define STATS_AGENT_NAME "Remora Statistics Agent"

class Remora_Export
{
public:

  Remora_Export(const char* label = NO_NAME, int value = 0,
                int max_value = MAX_VALUE);

  Remora_Export(const Remora_Export& export);

  ~Remora_Export();

  void operator=(const int new_value);
  void operator=(const Remora_Export& export);

  void operator+=(const int new_value);
  void operator+=(const Remora_Export& export);

  void operator*=(const int new_value);
  void operator*=(const Remora_Export& export);

  void operator/=(const int new_value);
  void operator/=(const Remora_Export& export);

  void operator-=(const int new_value);
  void operator-=(const Remora_Export& export);

  operator CORBA::Long() const;
  operator CORBA::Long&();

  friend int operator==(const Remora_Export& me, const int new_value);
  friend int operator==(const Remora_Export& me, const Remora_Export& export);

  friend int operator!=(const Remora_Export& me, const int new_value);
  friend int operator!=(const Remora_Export& me, const Remora_Export& export);

  friend int operator<=(const Remora_Export& me, const int new_value);
  friend int operator<=(const Remora_Export& me, const Remora_Export& export);

  friend int operator>=(const Remora_Export& me, const int new_value);
  friend int operator>=(const Remora_Export& me, const Remora_Export& export);

  friend int operator<(const Remora_Export& me, const int new_value);
  friend int operator<(const Remora_Export& me, const Remora_Export& export);

  friend int operator>(const Remora_Export& me, const int new_value);
  friend int operator>(const Remora_Export& me, const Remora_Export& export);

private:

  void init();

  void update_value(int new_value);

  remora::Statistic stat_;

  remora::Remora_Statistics_Agent_ptr remora_agent_;

};

#include "Remora_Export.i"

#endif