summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Container_Impl.inl
blob: 5ca2953b0322433b4f8e1dc60c6b3400fc4cbfa8 (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
/* -*- C++ -*- */
// $Id$

ACE_INLINE
CIAO::Container_Impl::Container_Impl (CORBA::ORB_ptr o,
                                      PortableServer::POA_ptr p,
                                      Components::Deployment::ComponentServer_ptr s)
  : orb_ (CORBA::ORB::_duplicate (o)),
    poa_ (PortableServer::POA::_duplicate (p)),
    comserv_ (Components::Deployment::ComponentServer::_duplicate (s))
{
}

ACE_INLINE void
CIAO::Container_Impl::set_objref (Components::Deployment::Container_ptr o
                                  ACE_ENV_ARG_DECL)
{
  if (!CORBA::is_nil (this->objref_.in ()))
    ACE_THROW (CORBA::BAD_INV_ORDER ());

  this->objref_ = Components::Deployment::Container::_duplicate (o);
}

ACE_INLINE Components::Deployment::Container_ptr
CIAO::Container_Impl::get_objref (ACE_ENV_SINGLE_ARG_DECL)
{
  if (CORBA::is_nil (this->objref_.in ()))
    {
      this->objref_ = this->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
      ACE_CHECK_RETURN (0);
    }
  return this->objref_.in ();
}