summaryrefslogtreecommitdiff
path: root/Data_Base/Data_Base_exec.h
blob: 331be46a78e2c61876655abd49405b328c07e48a (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
#ifndef CIAO_DATA_BASE_EXEC_H
#define CIAO_DATA_BASE_EXEC_H

#include "Data_Base_svnt.h"
#include "Data_Base_exec_export.h"
#include "tao/LocalObject.h"
#include "ace/Hash_Map_Manager_T.h"

namespace CIAO
{
  namespace RACE
  {
    namespace Data_Base
    {
      namespace CIDL_Data_Base_Component_Impl
      {

        /// Forward declerations.
        class Query_exec_i;
        class Admin_exec_i;

        typedef ACE_Hash_Map_Iterator_Ex
            <const char*,
             ::CIAO::RACE::OperationalString,
            ACE_Hash<const ACE_TCHAR *>,
            ACE_Equal_To<const ACE_TCHAR *>,
            ACE_Thread_Mutex> DATA_BASE_ITER;


        class DATA_BASE_EXEC_Export Data_Base_Component_exec_i
          : public virtual Data_Base_Component_Exec,
            public virtual TAO_Local_RefCounted_Object
        {
          public:
          Data_Base_Component_exec_i (void);

          virtual ~Data_Base_Component_exec_i (void);

          virtual ::CIAO::RACE::Data_Base::CCM_Admin_ptr
          get_admin ();

          virtual ::CIAO::RACE::Data_Base::CCM_Query_ptr
          get_query ();


          virtual void
          set_session_context (::Components::SessionContext_ptr ctx);

          virtual void ciao_preactivate ();

          virtual void configuration_complete ();

          virtual void ccm_activate ();

          virtual void ccm_passivate ();

          virtual void ccm_remove ();

          protected:
          Data_Base_Component_Context *context_;

          private:
          ACE_Hash_Map_Manager_Ex
            <const char*,
            ::CIAO::RACE::OperationalString,
            ACE_Hash<const char*>,
            ACE_Equal_To<const char*>,
            ACE_Thread_Mutex> data_base_;

          friend class Query_exec_i;

          friend class Admin_exec_i;
        };

        class DATA_BASE_EXEC_Export Data_Base_Component_Home_exec_i
          : public virtual Data_Base_Component_Home_Exec,
            public virtual TAO_Local_RefCounted_Object
        {
          public:
          Data_Base_Component_Home_exec_i (void);
          virtual ~Data_Base_Component_Home_exec_i (void);

          virtual ::Components::EnterpriseComponent_ptr
          create ();
        };

        extern "C" DATA_BASE_EXEC_Export ::Components::HomeExecutorBase_ptr
        create_CIAO_RACE_Data_Base_Data_Base_Component_Home_Impl (void);
      }
    }
  }
}


#endif /* CIAO_DATA_BASE_EXEC_H */