// -*- C++ -*-
//
// $Id$

// ****  Code generated by the The ACE ORB (TAO) IDL Compiler ****
// TAO and the TAO IDL Compiler have been developed by:
//       Center for Distributed Object Computing
//       Washington University
//       St. Louis, MO
//       USA
//       http://www.cs.wustl.edu/~schmidt/doc-center.html
// and
//       Distributed Object Computing Laboratory
//       University of California at Irvine
//       Irvine, CA
//       USA
//       http://doc.ece.uci.edu/
// and
//       Institute for Software Integrated Systems
//       Vanderbilt University
//       Nashville, TN
//       USA
//       http://www.isis.vanderbilt.edu/
//
// Information about TAO is available at:
//     http://www.cs.wustl.edu/~schmidt/TAO.html


// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::PropertyManager_tie<T>::PropertyManager_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::PropertyManager_tie<T>::PropertyManager_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::PropertyManager_tie<T>::PropertyManager_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::PropertyManager_tie<T>::PropertyManager_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::PropertyManager_tie<T>::~PropertyManager_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::PropertyManager_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::PropertyManager_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::PropertyManager_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::PropertyManager_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::PropertyManager_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::PropertyManager_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->PropertyManager::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::PropertyManager_tie<T>::set_default_properties  (
    const ::PortableGroup::Properties & props
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::UnsupportedProperty
  ))
{
  this->ptr_->set_default_properties (
    props
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::Properties * POA_PortableGroup::PropertyManager_tie<T>::get_default_properties  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_default_properties (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::PropertyManager_tie<T>::remove_default_properties  (
    const ::PortableGroup::Properties & props
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::UnsupportedProperty
  ))
{
  this->ptr_->remove_default_properties (
    props
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::PropertyManager_tie<T>::set_type_properties  (
    const char * type_id,
    const ::PortableGroup::Properties & overrides
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::UnsupportedProperty
  ))
{
  this->ptr_->set_type_properties (
    type_id,
    overrides
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::Properties * POA_PortableGroup::PropertyManager_tie<T>::get_type_properties  (
    const char * type_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_type_properties (
    type_id
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::PropertyManager_tie<T>::remove_type_properties  (
    const char * type_id,
    const ::PortableGroup::Properties & props
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::UnsupportedProperty
  ))
{
  this->ptr_->remove_type_properties (
    type_id,
    props
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::PropertyManager_tie<T>::set_properties_dynamically  (
    ::PortableGroup::ObjectGroup_ptr object_group,
    const ::PortableGroup::Properties & overrides
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::UnsupportedProperty
  ))
{
  this->ptr_->set_properties_dynamically (
    object_group,
    overrides
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::Properties * POA_PortableGroup::PropertyManager_tie<T>::get_properties  (
    ::PortableGroup::ObjectGroup_ptr object_group
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound
  ))
{
  return this->ptr_->get_properties (
    object_group
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::AMI_PropertyManagerHandler_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::AMI_PropertyManagerHandler_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::AMI_PropertyManagerHandler_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::AMI_PropertyManagerHandler_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::~AMI_PropertyManagerHandler_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->AMI_PropertyManagerHandler::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_default_properties  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_default_properties (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_default_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_default_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_default_properties  (
    const ::PortableGroup::Properties & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_default_properties (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_default_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_default_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::remove_default_properties  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_default_properties (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::remove_default_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_default_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_type_properties  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_type_properties (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_type_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_type_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_type_properties  (
    const ::PortableGroup::Properties & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_type_properties (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_type_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_type_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::remove_type_properties  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_type_properties (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::remove_type_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_type_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_properties_dynamically  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_properties_dynamically (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::set_properties_dynamically_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->set_properties_dynamically_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_properties  (
    const ::PortableGroup::Properties & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_properties (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_PropertyManagerHandler_tie<T>::get_properties_excep  (
    ::PortableGroup::AMI_PropertyManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_properties_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::ObjectGroupManager_tie<T>::ObjectGroupManager_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::ObjectGroupManager_tie<T>::ObjectGroupManager_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::ObjectGroupManager_tie<T>::ObjectGroupManager_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::ObjectGroupManager_tie<T>::ObjectGroupManager_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::ObjectGroupManager_tie<T>::~ObjectGroupManager_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::ObjectGroupManager_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::ObjectGroupManager_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::ObjectGroupManager_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::ObjectGroupManager_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::ObjectGroupManager_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::ObjectGroupManager_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->ObjectGroupManager::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroup_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::create_member  (
    ::PortableGroup::ObjectGroup_ptr object_group,
    const ::PortableGroup::Location & the_location,
    const char * type_id,
    const ::PortableGroup::Criteria & the_criteria
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound,
    ::PortableGroup::MemberAlreadyPresent,
    ::PortableGroup::NoFactory,
    ::PortableGroup::ObjectNotCreated,
    ::PortableGroup::InvalidCriteria,
    ::PortableGroup::CannotMeetCriteria
  ))
{
  return this->ptr_->create_member (
    object_group,
    the_location,
    type_id,
    the_criteria
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroup_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::add_member  (
    ::PortableGroup::ObjectGroup_ptr object_group,
    const ::PortableGroup::Location & the_location,
    ::CORBA::Object_ptr member
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound,
    ::PortableGroup::MemberAlreadyPresent,
    ::PortableGroup::ObjectNotAdded
  ))
{
  return this->ptr_->add_member (
    object_group,
    the_location,
    member
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroup_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::remove_member  (
    ::PortableGroup::ObjectGroup_ptr object_group,
    const ::PortableGroup::Location & the_location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound,
    ::PortableGroup::MemberNotFound
  ))
{
  return this->ptr_->remove_member (
    object_group,
    the_location
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::Locations * POA_PortableGroup::ObjectGroupManager_tie<T>::locations_of_members  (
    ::PortableGroup::ObjectGroup_ptr object_group
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound
  ))
{
  return this->ptr_->locations_of_members (
    object_group
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::ObjectGroups * POA_PortableGroup::ObjectGroupManager_tie<T>::groups_at_location  (
    const ::PortableGroup::Location & the_location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->groups_at_location (
    the_location
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroupId POA_PortableGroup::ObjectGroupManager_tie<T>::get_object_group_id  (
    ::PortableGroup::ObjectGroup_ptr object_group
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound
  ))
{
  return this->ptr_->get_object_group_id (
    object_group
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroup_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::get_object_group_ref  (
    ::PortableGroup::ObjectGroup_ptr object_group
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound
  ))
{
  return this->ptr_->get_object_group_ref (
    object_group
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
CORBA::Object_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::get_member_ref  (
    ::PortableGroup::ObjectGroup_ptr object_group,
    const ::PortableGroup::Location & loc
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound,
    ::PortableGroup::MemberNotFound
  ))
{
  return this->ptr_->get_member_ref (
    object_group,
    loc
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
PortableGroup::ObjectGroup_ptr POA_PortableGroup::ObjectGroupManager_tie<T>::get_object_group_ref_from_id  (
    ::PortableGroup::ObjectGroupId group_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectGroupNotFound
  ))
{
  return this->ptr_->get_object_group_ref_from_id (
    group_id
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::AMI_ObjectGroupManagerHandler_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::AMI_ObjectGroupManagerHandler_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::AMI_ObjectGroupManagerHandler_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::AMI_ObjectGroupManagerHandler_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::~AMI_ObjectGroupManagerHandler_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->AMI_ObjectGroupManagerHandler::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::create_member  (
    ::PortableGroup::ObjectGroup_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->create_member (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::create_member_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->create_member_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::add_member  (
    ::PortableGroup::ObjectGroup_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->add_member (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::add_member_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->add_member_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::remove_member  (
    ::PortableGroup::ObjectGroup_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_member (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::remove_member_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_member_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::locations_of_members  (
    const ::PortableGroup::Locations & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->locations_of_members (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::locations_of_members_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->locations_of_members_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::groups_at_location  (
    const ::PortableGroup::ObjectGroups & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->groups_at_location (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::groups_at_location_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->groups_at_location_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_id  (
    ::PortableGroup::ObjectGroupId ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_id (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_id_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_id_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_ref  (
    ::PortableGroup::ObjectGroup_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_ref (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_ref_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_ref_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_member_ref  (
    ::CORBA::Object_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_member_ref (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_member_ref_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_member_ref_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_ref_from_id  (
    ::PortableGroup::ObjectGroup_ptr ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_ref_from_id (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_ObjectGroupManagerHandler_tie<T>::get_object_group_ref_from_id_excep  (
    ::PortableGroup::AMI_ObjectGroupManagerExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->get_object_group_ref_from_id_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::GenericFactory_tie<T>::GenericFactory_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::GenericFactory_tie<T>::GenericFactory_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::GenericFactory_tie<T>::GenericFactory_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::GenericFactory_tie<T>::GenericFactory_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::GenericFactory_tie<T>::~GenericFactory_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::GenericFactory_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::GenericFactory_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::GenericFactory_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::GenericFactory_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::GenericFactory_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::GenericFactory_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->GenericFactory::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
CORBA::Object_ptr POA_PortableGroup::GenericFactory_tie<T>::create_object  (
    const char * type_id,
    const ::PortableGroup::Criteria & the_criteria,
    ::PortableGroup::GenericFactory::FactoryCreationId_out factory_creation_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::NoFactory,
    ::PortableGroup::ObjectNotCreated,
    ::PortableGroup::InvalidCriteria,
    ::PortableGroup::InvalidProperty,
    ::PortableGroup::CannotMeetCriteria
  ))
{
  return this->ptr_->create_object (
    type_id,
    the_criteria,
    factory_creation_id
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::GenericFactory_tie<T>::delete_object  (
    const ::PortableGroup::GenericFactory::FactoryCreationId & factory_creation_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::ObjectNotFound
  ))
{
  this->ptr_->delete_object (
    factory_creation_id
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::AMI_GenericFactoryHandler_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::AMI_GenericFactoryHandler_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::AMI_GenericFactoryHandler_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::AMI_GenericFactoryHandler_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::~AMI_GenericFactoryHandler_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->AMI_GenericFactoryHandler::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::create_object  (
    ::CORBA::Object_ptr ami_return_val,
    const ::PortableGroup::GenericFactory::FactoryCreationId & factory_creation_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->create_object (
    ami_return_val,
    factory_creation_id
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::create_object_excep  (
    ::PortableGroup::AMI_GenericFactoryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->create_object_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::delete_object  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->delete_object (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_GenericFactoryHandler_tie<T>::delete_object_excep  (
    ::PortableGroup::AMI_GenericFactoryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->delete_object_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::FactoryRegistry_tie<T>::FactoryRegistry_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::FactoryRegistry_tie<T>::FactoryRegistry_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::FactoryRegistry_tie<T>::FactoryRegistry_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::FactoryRegistry_tie<T>::FactoryRegistry_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::FactoryRegistry_tie<T>::~FactoryRegistry_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::FactoryRegistry_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::FactoryRegistry_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::FactoryRegistry_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::FactoryRegistry_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::FactoryRegistry_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::FactoryRegistry_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->FactoryRegistry::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::FactoryRegistry_tie<T>::register_factory  (
    const char * role,
    const char * type_id,
    const ::PortableGroup::FactoryInfo & factory_info
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::MemberAlreadyPresent,
    ::PortableGroup::TypeConflict
  ))
{
  this->ptr_->register_factory (
    role,
    type_id,
    factory_info
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::FactoryRegistry_tie<T>::unregister_factory  (
    const char * role,
    const ::PortableGroup::Location & location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::PortableGroup::MemberNotFound
  ))
{
  this->ptr_->unregister_factory (
    role,
    location
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::FactoryRegistry_tie<T>::unregister_factory_by_role  (
    const char * role
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_role (
    role
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::FactoryRegistry_tie<T>::unregister_factory_by_location  (
    const ::PortableGroup::Location & location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_location (
    location
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::FactoryInfos * POA_PortableGroup::FactoryRegistry_tie<T>::list_factories_by_role  (
    const char * role,
    CORBA::String_out type_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->list_factories_by_role (
    role,
    type_id
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
::PortableGroup::FactoryInfos * POA_PortableGroup::FactoryRegistry_tie<T>::list_factories_by_location  (
    const ::PortableGroup::Location & location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->list_factories_by_location (
    location
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::AMI_FactoryRegistryHandler_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::AMI_FactoryRegistryHandler_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::AMI_FactoryRegistryHandler_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::AMI_FactoryRegistryHandler_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::~AMI_FactoryRegistryHandler_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->AMI_FactoryRegistryHandler::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::register_factory  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->register_factory (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::register_factory_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->register_factory_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory_by_role  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_role (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory_by_role_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_role_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory_by_location  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_location (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::unregister_factory_by_location_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->unregister_factory_by_location_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::list_factories_by_role  (
    const ::PortableGroup::FactoryInfos & ami_return_val,
    const char * type_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->list_factories_by_role (
    ami_return_val,
    type_id
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::list_factories_by_role_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->list_factories_by_role_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::list_factories_by_location  (
    const ::PortableGroup::FactoryInfos & ami_return_val
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->list_factories_by_location (
    ami_return_val
    ACE_ENV_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_FactoryRegistryHandler_tie<T>::list_factories_by_location_excep  (
    ::PortableGroup::AMI_FactoryRegistryExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->list_factories_by_location_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::TAO_UpdateObjectGroup_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::TAO_UpdateObjectGroup_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::TAO_UpdateObjectGroup_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::TAO_UpdateObjectGroup_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::~TAO_UpdateObjectGroup_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->TAO_UpdateObjectGroup::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::TAO_UpdateObjectGroup_tie<T>::tao_update_object_group  (
    const char * iogr,
    ::PortableGroup::ObjectGroupRefVersion version,
    ::CORBA::Boolean is_primary
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->tao_update_object_group (
    iogr,
    version,
    is_primary
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from
// be/be_visitor_interface/tie_si.cpp:96

#if defined (ACE_HAS_USING_KEYWORD)

template <class T> ACE_INLINE
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::AMI_TAO_UpdateObjectGroupHandler_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::AMI_TAO_UpdateObjectGroupHandler_tie (T &t, PortableServer::POA_ptr poa)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (0)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::AMI_TAO_UpdateObjectGroupHandler_tie (T *tp, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::AMI_TAO_UpdateObjectGroupHandler_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)
	: ptr_ (tp),
	  poa_ (PortableServer::POA::_duplicate (poa)),
	  rel_ (release)
{}

template <class T> ACE_INLINE
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::~AMI_TAO_UpdateObjectGroupHandler_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

template <class T> ACE_INLINE T *
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_tied_object (void)
{
  return this->ptr_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_tied_object (T &obj)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = &obj;
  this->rel_ = 0;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_tied_object (T *obj, CORBA::Boolean release)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
  
  this->ptr_ = obj;
  this->rel_ = release;
}

template <class T> ACE_INLINE CORBA::Boolean
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_is_owner (void)
{
  return this->rel_;
}

template <class T> ACE_INLINE void
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_is_owner (CORBA::Boolean b)
{
  this->rel_ = b;
}

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::_default_POA (ACE_ENV_SINGLE_ARG_DECL)
{
  if (!CORBA::is_nil (this->poa_.in ()))
    {
      return PortableServer::POA::_duplicate (this->poa_.in ());
    }
  
  return this->AMI_TAO_UpdateObjectGroupHandler::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::tao_update_object_group  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->tao_update_object_group (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

// TAO_IDL - Generated from 
// be/be_visitor_operation/tie_si.cpp:68

template <class T> ACE_INLINE
void POA_PortableGroup::AMI_TAO_UpdateObjectGroupHandler_tie<T>::tao_update_object_group_excep  (
    ::PortableGroup::AMI_TAO_UpdateObjectGroupExceptionHolder * excep_holder
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->tao_update_object_group_excep (
    excep_holder
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

