summaryrefslogtreecommitdiff
path: root/Monitor/Local_Monitor/Local_Monitor.h
blob: 81259e132030327ba6fce4d3351274ddc8f15bf0 (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
#ifndef LOCAL_MONITOR_H
#define LOCAL_MONITOR_H

#include "ace/Time_Value.h"
#include "ace/Log_Msg.h"
#include "ace/Thread.h"
#include "ace/Event_Handler.h"
#include "ace/Mutex.h"
#include "orbsvcs/Naming/Naming_Server.h"

#include "RACE/Monitor/Central_Monitor/MonitorC.h"

namespace CIAO
{

  namespace RACE
  {

    class Event_Handler: public ACE_Event_Handler
    {
    public:

      int handle_timeout (const ACE_Time_Value &,
                          const void *ref);
    };

    class Local_Monitor
    {
    public:

      Local_Monitor (const char *instance_id,
               CORBA::ORB_ptr orb);

      virtual ~Local_Monitor ();

      virtual void start (const char *id);

      virtual void stop ();

      virtual void dump ();

      virtual int push ();

    protected:

      virtual int resolve_central_monitor (CORBA::ORB_ptr);

      virtual int register_timer ();

    private:

      CORBA::String_var instance_id_;

      Delays delays_;

      long timer_id_;

      Event_Handler *handler_;

      ACE_Reactor *reactor_;

      ACE_Time_Value interval_;

      ACE_Time_Value start_time_;

      Execution_Time_Monitor_var monitor_;

      bool initialized_;

      ACE_Mutex mutex_;
    };

  };
};

#endif /* LOCAL_MONITOR_H */