summaryrefslogtreecommitdiff
path: root/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/Broker_exec.h
blob: 020acf28a129e93f77c5270b3aeeebe0fe0bc479 (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
141
//$Id$
/*
 * @file Broker_exec.h
 *
 * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
 */


#ifndef CIAO_BROKER_EXEC_H
#define CIAO_BROKER_EXEC_H

#include /**/ "ace/pre.h"

#include "Broker_svnt.h"
#include "BrokerEC.h"
#include "Broker_exec_export.h"

#include <set>
#include <string>

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "tao/LocalObject.h"

namespace CIDL_StockBroker_Impl
{

  /**
   * @class StockBroker_exec_i
   *
   * @brief Executor implementation
   *
   * This class implements Stock::StockBroker component
   */
  class BROKER_EXEC_Export StockBroker_exec_i
  : public virtual StockBroker_Exec,
    public virtual TAO_Local_RefCounted_Object
  {
    public:
    StockBroker_exec_i (void);
    virtual ~StockBroker_exec_i (void);


    // Supported or inherited operations.

    virtual void
    stock_subscribe (
    const char * stock_name)
    ACE_THROW_SPEC ((CORBA::SystemException,
                     Stock::Invalid_Stock));

    virtual void
    stock_unsubscribe (
    const char * stock_name)
    ACE_THROW_SPEC ((CORBA::SystemException,
                     Stock::Invalid_Stock));

    virtual void
    push_notify_in (
    ::Stock::StockName *ev)
    ACE_THROW_SPEC ((CORBA::SystemException));

    // Operations from Components::SessionComponent

    virtual void
    set_session_context (
    ::Components::SessionContext_ptr ctx)
    ACE_THROW_SPEC ((
    ::CORBA::SystemException,
    ::Components::CCMException));

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

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

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

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

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

    protected:
    StockBroker_Context *context_;

    private:
    std::set<std::string> subscribed_stock_list_;
  };


  /**
   * @class StockBrokerHome_exec_i
   *
   * @brief Executor implementation
   *
   * This class implements Stock::StockBrokerHome component
   */
  class BROKER_EXEC_Export StockBrokerHome_exec_i
  : public virtual StockBrokerHome_Exec,
    public virtual TAO_Local_RefCounted_Object
  {
    public:
    StockBrokerHome_exec_i (void);
    virtual ~StockBrokerHome_exec_i (void);

    virtual ::Components::EnterpriseComponent_ptr
    create ()
    ACE_THROW_SPEC ((
    ::CORBA::SystemException,
    ::Components::CCMException));
  };

  extern "C" BROKER_EXEC_Export ::Components::HomeExecutorBase_ptr
  createStockBrokerHome_Impl (void);
}

#include /**/ "ace/post.h"

#endif /* CIAO_BROKER_EXEC_H */