summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/AMI_CCM/examples/AMI/AMI_MyFoo_i.h
blob: 377e8b02bbc300bf73a98f64afcb9b0b577540d7 (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
// $Id$

#ifndef AMI_MyFoo_i_H
#define AMI_MyFoo_i_H

#include "AMIS.h"
#include "ace/Task.h"

namespace CCM_CORBA_AMI_MyFoo_Impl
{
  //============================================================
  // Implementation of the AMI CORBA FOO reply handler
  //============================================================
  class AMI_MyFoo_reply_handler : public POA_CCM_AMI::AMI_MyFooHandler
  {
    public:
      AMI_MyFoo_reply_handler (
        ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback);
      ~AMI_MyFoo_reply_handler (void);

      void
      foo (
        CORBA::Long result,
        const char * out_str);

      void
      foo_excep (
        ::Messaging::ExceptionHolder * excep_holder);

      void
      hello (
        CORBA::Long answer);

      void
      hello_excep (
        ::Messaging::ExceptionHolder * excep_holder);

    private:
      ::CCM_AMI::AMI_MyFoo_callback_var foo_callback_;
  };

  class AMI_MyFoo_i : public POA_CCM_AMI::MyFoo
  {
  public:
    /// ctor
    AMI_MyFoo_i (
      CORBA::ORB_ptr orb,
      ::CCM_AMI::MyFoo_ptr foo_receiver);

    // The AMI methods.
    CORBA::Long
    foo (
      const char * in_str,
      CORBA::String_out out_str);

    void
    hello (
      CORBA::Long_out answer);

  private:
    CORBA::ORB_var orb_;
    ::CCM_AMI::MyFoo_var foo_receiver_;
  };

  // CORBA server which delivers the MyFoo interface
  class CORBA_MyFoo_server : public ACE_Task_Base
  {
    public:
      CORBA_MyFoo_server (
    ::CCM_AMI::MyFoo_ptr foo_receiver);
      virtual int svc (void);

    private:
    ::CCM_AMI::MyFoo_var foo_receiver_;
  };
};
#endif /* AMI_MyFoo_i_H */