summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Upgradeable_Context_Impl_T.cpp
blob: b2a853514876230c3de88cdbc79d2b03f86669e9 (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
// $Id$

#ifndef CIAO_UPGRADEABLE_CONTEXT_IMPL_T_C
#define CIAO_UPGRADEABLE_CONTEXT_IMPL_T_C

#include "Upgradeable_Context_Impl_T.h"

namespace CIAO
{
  template <typename BASE_CTX, 
            typename SVNT, 
            typename COMP, 
            typename COMP_VAR>
  Upgradeable_Context_Impl<BASE_CTX, SVNT, COMP, COMP_VAR>::
      Upgradeable_Context_Impl (
              Components::CCMHome_ptr home,
              Session_Container *c,
              SVNT *sv)
    : session_context (home, c, sv),
      servant_ (sv)
  {
  }

  template <typename BASE_CTX, 
            typename SVNT, 
            typename COMP, 
            typename COMP_VAR>
  Upgradeable_Context_Impl<BASE_CTX, SVNT, COMP, COMP_VAR>::
       ~Upgradeable_Context_Impl (void)
  {
  }

  template <typename BASE_CTX, 
            typename SVNT, 
            typename COMP, 
            typename COMP_VAR>
  void
  Upgradeable_Context_Impl<BASE_CTX, SVNT, COMP, COMP_VAR>::deactivate_facet (
      const PortableServer::ObjectId &oid
      ACE_ENV_ARG_DECL
    )
    ACE_THROW_SPEC ((CORBA::SystemException))
  {
    /*
    PortableServer::ObjectId_var oid =
        PortableServer::string_to_ObjectId (obj_id);
    */

    this->container_->deactivate_facet (oid ACE_ENV_ARG_PARAMETER);
    ACE_CHECK;
  }

  template <typename BASE_CTX, 
            typename SVNT, 
            typename COMP, 
            typename COMP_VAR>
  void
  Upgradeable_Context_Impl<BASE_CTX, SVNT, COMP, COMP_VAR>::
     remove_facet (
           CORBA::Object_ptr reference
           ACE_ENV_ARG_DECL)
    ACE_THROW_SPEC ((CORBA::SystemException))
  {
    PortableServer::ObjectId_var oid =
      this->container_->the_facet_cons_POA ()->reference_to_id
         (reference ACE_ENV_ARG_PARAMETER);
    ACE_CHECK;
    
    this->update_port_activator (oid.in () ACE_ENV_ARG_PARAMETER);
    ACE_CHECK;
    
    this->deactivate_facet (oid.in () ACE_ENV_ARG_PARAMETER);
    ACE_CHECK;
  }

  template <typename BASE_CTX, 
            typename SVNT, 
            typename COMP, 
            typename COMP_VAR>
  void
  Upgradeable_Context_Impl<BASE_CTX, SVNT, COMP, COMP_VAR>::
     update_port_activator (
           const PortableServer::ObjectId &oid
           ACE_ENV_ARG_DECL)
    ACE_THROW_SPEC ((CORBA::SystemException))
  {
    /*
    PortableServer::ObjectId_var oid =
        PortableServer::string_to_ObjectId (obj_id);
    */

    CIAO::Servant_Activator *sa =
        this->container_->ports_servant_activator ();
    sa->update_port_activator (oid ACE_ENV_ARG_PARAMETER);
    ACE_CHECK;
  }

}

#endif /* CIAO_UPGRADEABLE_CONTEXT_IMPL_T_C */