summaryrefslogtreecommitdiff
path: root/apps/JAWS/remora/app/Remora_Export.h
blob: 379f3bb1a82e6b5425e6b03cae78f05d05986c87 (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