summaryrefslogtreecommitdiff
path: root/modules/CIAO/examples/Display/GPS/GPS_exec.h
blob: d4b8a0b777ed972f4bf5cf998272c7da72e65730 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
 * @file GPS_exec.h
 * $Id$
 * Header file for the GPS component implementation.
 *
 */

#ifndef GPS_EXEC_H
#define GPS_EXEC_H

#include "GPS_exec_export.h"
#include "GPSEC.h"
#include "CIAO_common.h"
#include "ace/OS_NS_time.h"
#include "tao/LocalObject.h"

#define DISPLACEMENT 256

namespace MyImpl
{
 /**
   * @class GPS_exec_i
   *
   * GPS executor implementation class.
   */
  class GPS_EXEC_Export GPS_exec_i :
    public virtual CIDL_GPS_Impl::GPS_exec,
    public virtual TAO_Local_RefCounted_Object
  {

  public:
    /// Default constructor.
    GPS_exec_i ();

    /// Default destructor.
    ~GPS_exec_i ();

    // Operations from HUDisplay::GPS
    HUDisplay::CCM_position_ptr get_MyLocation ()
      ACE_THROW_SPEC ((CORBA::SystemException));

    void push_Refresh (HUDisplay::tick *)
      ACE_THROW_SPEC ((CORBA::SystemException));

    // Operations from HUDisplay::position
    CORBA::Long posx ()
      ACE_THROW_SPEC ((CORBA::SystemException));

    CORBA::Long posy ()
      ACE_THROW_SPEC ((CORBA::SystemException));

    // Operations from Components::SessionComponent
    void set_session_context (Components::SessionContext_ptr ctx)
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

    void ciao_preactivate ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

    void ccm_activate ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

    void ciao_postactivate ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

    void ccm_passivate ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

    void ccm_remove ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));

   protected:
    // Component specific context
    HUDisplay::CCM_GPS_Context_var context_;

   private:
    CORBA::Long positionx_, positiony_;
  };


  /**
   * @class GPSHome_exec_i
   *
   * GPS home executor implementation class.
   */
    class GPS_EXEC_Export GPSHome_exec_i :
    public virtual HUDisplay::CCM_GPSHome,
      public virtual TAO_Local_RefCounted_Object
  {
  public:
    /// Default ctor.
    GPSHome_exec_i ();

    /// Default dtor.
    ~GPSHome_exec_i ();

    // Explicit home operations
/*     virtual ::Components::EnterpriseComponent_ptr */
/*       new_GPS () */
/*       ACE_THROW_SPEC ((CORBA::SystemException)); */

    // Implicit home operations
    virtual ::Components::EnterpriseComponent_ptr
      create ()
      ACE_THROW_SPEC ((CORBA::SystemException,
		       Components::CCMException));
  };


 class Position_Impl : public virtual HUDisplay::CCM_position,
                       public virtual TAO_Local_RefCounted_Object
  {
  public:
    Position_Impl (GPS_exec_i& component)
        : component_ (component)
    {
    }

    // Operations from HUDisplay::position
    CORBA::Long posx ()
      ACE_THROW_SPEC ((CORBA::SystemException));

    CORBA::Long posy ()
      ACE_THROW_SPEC ((CORBA::SystemException));

  private:
    GPS_exec_i& component_;
  };

}

extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr
createGPSHome_Impl (void);

#endif /* GPS_EXEC_H */