// -*- 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_NotifyExt::EventChannelFactory_tie<T>::EventChannelFactory_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

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

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

template <class T> ACE_INLINE
POA_NotifyExt::EventChannelFactory_tie<T>::EventChannelFactory_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_NotifyExt::EventChannelFactory_tie<T>::~EventChannelFactory_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

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

template <class T> ACE_INLINE void
POA_NotifyExt::EventChannelFactory_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_NotifyExt::EventChannelFactory_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_NotifyExt::EventChannelFactory_tie<T>::_is_owner (void)
{
  return this->rel_;
}

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

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_NotifyExt::EventChannelFactory_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->EventChannelFactory::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::EventChannel_ptr POA_NotifyExt::EventChannelFactory_tie<T>::create_channel  (
    const ::CosNotification::QoSProperties & initial_qos,
    const ::CosNotification::AdminProperties & initial_admin,
    ::CosNotifyChannelAdmin::ChannelID_out id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotification::UnsupportedQoS,
    ::CosNotification::UnsupportedAdmin
  ))
{
  return this->ptr_->create_channel (
    initial_qos,
    initial_admin,
    id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ChannelIDSeq * POA_NotifyExt::EventChannelFactory_tie<T>::get_all_channels  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_all_channels (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::EventChannel_ptr POA_NotifyExt::EventChannelFactory_tie<T>::get_event_channel  (
    ::CosNotifyChannelAdmin::ChannelID id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::ChannelNotFound
  ))
{
  return this->ptr_->get_event_channel (
    id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::EventChannelFactory_tie<T>::destroy  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->destroy (
    ACE_ENV_SINGLE_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_NotifyExt::ConsumerAdmin_tie<T>::ConsumerAdmin_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

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

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

template <class T> ACE_INLINE
POA_NotifyExt::ConsumerAdmin_tie<T>::ConsumerAdmin_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_NotifyExt::ConsumerAdmin_tie<T>::~ConsumerAdmin_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

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

template <class T> ACE_INLINE void
POA_NotifyExt::ConsumerAdmin_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_NotifyExt::ConsumerAdmin_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_NotifyExt::ConsumerAdmin_tie<T>::_is_owner (void)
{
  return this->rel_;
}

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

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_NotifyExt::ConsumerAdmin_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->ConsumerAdmin::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

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

template <class T> ACE_INLINE
::CosNotification::QoSProperties * POA_NotifyExt::ConsumerAdmin_tie<T>::get_qos  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_qos (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::set_qos  (
    const ::CosNotification::QoSProperties & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotification::UnsupportedQoS
  ))
{
  this->ptr_->set_qos (
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::validate_qos  (
    const ::CosNotification::QoSProperties & required_qos,
    ::CosNotification::NamedPropertyRangeSeq_out available_qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotification::UnsupportedQoS
  ))
{
  this->ptr_->validate_qos (
    required_qos,
    available_qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::subscription_change  (
    const ::CosNotification::EventTypeSeq & added,
    const ::CosNotification::EventTypeSeq & removed
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyComm::InvalidEventType
  ))
{
  this->ptr_->subscription_change (
    added,
    removed
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
CosNotifyFilter::FilterID POA_NotifyExt::ConsumerAdmin_tie<T>::add_filter  (
    ::CosNotifyFilter::Filter_ptr new_filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->add_filter (
    new_filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::remove_filter  (
    ::CosNotifyFilter::FilterID filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyFilter::FilterNotFound
  ))
{
  this->ptr_->remove_filter (
    filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::Filter_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::get_filter  (
    ::CosNotifyFilter::FilterID filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyFilter::FilterNotFound
  ))
{
  return this->ptr_->get_filter (
    filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::FilterIDSeq * POA_NotifyExt::ConsumerAdmin_tie<T>::get_all_filters  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_all_filters (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::remove_all_filters  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_all_filters (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosEventChannelAdmin::ProxyPushSupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::obtain_push_supplier  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->obtain_push_supplier (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosEventChannelAdmin::ProxyPullSupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::obtain_pull_supplier  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->obtain_pull_supplier (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
CosNotifyChannelAdmin::AdminID POA_NotifyExt::ConsumerAdmin_tie<T>::MyID  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyID (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::EventChannel_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::MyChannel  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyChannel (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::InterFilterGroupOperator POA_NotifyExt::ConsumerAdmin_tie<T>::MyOperator  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyOperator (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::MappingFilter_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::priority_filter  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->priority_filter (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::priority_filter  (
    ::CosNotifyFilter::MappingFilter_ptr priority_filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->priority_filter (
    priority_filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::MappingFilter_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::lifetime_filter  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->lifetime_filter (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::lifetime_filter  (
    ::CosNotifyFilter::MappingFilter_ptr lifetime_filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->lifetime_filter (
    lifetime_filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyIDSeq * POA_NotifyExt::ConsumerAdmin_tie<T>::pull_suppliers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->pull_suppliers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyIDSeq * POA_NotifyExt::ConsumerAdmin_tie<T>::push_suppliers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->push_suppliers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxySupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::get_proxy_supplier  (
    ::CosNotifyChannelAdmin::ProxyID proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::ProxyNotFound
  ))
{
  return this->ptr_->get_proxy_supplier (
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxySupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::obtain_notification_pull_supplier  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded
  ))
{
  return this->ptr_->obtain_notification_pull_supplier (
    ctype,
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxySupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::obtain_notification_push_supplier  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded
  ))
{
  return this->ptr_->obtain_notification_push_supplier (
    ctype,
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::ConsumerAdmin_tie<T>::destroy  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->destroy (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxySupplier_ptr POA_NotifyExt::ConsumerAdmin_tie<T>::obtain_notification_push_supplier_with_qos  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id,
    const ::CosNotification::QoSProperties & initial_qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded,
    ::CosNotification::UnsupportedQoS
  ))
{
  return this->ptr_->obtain_notification_push_supplier_with_qos (
    ctype,
    proxy_id,
    initial_qos
    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_NotifyExt::SupplierAdmin_tie<T>::SupplierAdmin_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

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

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

template <class T> ACE_INLINE
POA_NotifyExt::SupplierAdmin_tie<T>::SupplierAdmin_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_NotifyExt::SupplierAdmin_tie<T>::~SupplierAdmin_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

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

template <class T> ACE_INLINE void
POA_NotifyExt::SupplierAdmin_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_NotifyExt::SupplierAdmin_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_NotifyExt::SupplierAdmin_tie<T>::_is_owner (void)
{
  return this->rel_;
}

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

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_NotifyExt::SupplierAdmin_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->SupplierAdmin::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

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

template <class T> ACE_INLINE
::CosNotification::QoSProperties * POA_NotifyExt::SupplierAdmin_tie<T>::get_qos  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_qos (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::set_qos  (
    const ::CosNotification::QoSProperties & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotification::UnsupportedQoS
  ))
{
  this->ptr_->set_qos (
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::validate_qos  (
    const ::CosNotification::QoSProperties & required_qos,
    ::CosNotification::NamedPropertyRangeSeq_out available_qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotification::UnsupportedQoS
  ))
{
  this->ptr_->validate_qos (
    required_qos,
    available_qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::offer_change  (
    const ::CosNotification::EventTypeSeq & added,
    const ::CosNotification::EventTypeSeq & removed
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyComm::InvalidEventType
  ))
{
  this->ptr_->offer_change (
    added,
    removed
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
CosNotifyFilter::FilterID POA_NotifyExt::SupplierAdmin_tie<T>::add_filter  (
    ::CosNotifyFilter::Filter_ptr new_filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->add_filter (
    new_filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::remove_filter  (
    ::CosNotifyFilter::FilterID filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyFilter::FilterNotFound
  ))
{
  this->ptr_->remove_filter (
    filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::Filter_ptr POA_NotifyExt::SupplierAdmin_tie<T>::get_filter  (
    ::CosNotifyFilter::FilterID filter
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyFilter::FilterNotFound
  ))
{
  return this->ptr_->get_filter (
    filter
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyFilter::FilterIDSeq * POA_NotifyExt::SupplierAdmin_tie<T>::get_all_filters  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->get_all_filters (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::remove_all_filters  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_all_filters (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosEventChannelAdmin::ProxyPushConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::obtain_push_consumer  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->obtain_push_consumer (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosEventChannelAdmin::ProxyPullConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::obtain_pull_consumer  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->obtain_pull_consumer (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
CosNotifyChannelAdmin::AdminID POA_NotifyExt::SupplierAdmin_tie<T>::MyID  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyID (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::EventChannel_ptr POA_NotifyExt::SupplierAdmin_tie<T>::MyChannel  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyChannel (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::InterFilterGroupOperator POA_NotifyExt::SupplierAdmin_tie<T>::MyOperator  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->MyOperator (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyIDSeq * POA_NotifyExt::SupplierAdmin_tie<T>::pull_consumers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->pull_consumers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyIDSeq * POA_NotifyExt::SupplierAdmin_tie<T>::push_consumers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->push_consumers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::get_proxy_consumer  (
    ::CosNotifyChannelAdmin::ProxyID proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::ProxyNotFound
  ))
{
  return this->ptr_->get_proxy_consumer (
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::obtain_notification_pull_consumer  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded
  ))
{
  return this->ptr_->obtain_notification_pull_consumer (
    ctype,
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::obtain_notification_push_consumer  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded
  ))
{
  return this->ptr_->obtain_notification_push_consumer (
    ctype,
    proxy_id
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_NotifyExt::SupplierAdmin_tie<T>::destroy  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->destroy (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::CosNotifyChannelAdmin::ProxyConsumer_ptr POA_NotifyExt::SupplierAdmin_tie<T>::obtain_notification_push_consumer_with_qos  (
    ::CosNotifyChannelAdmin::ClientType ctype,
    ::CosNotifyChannelAdmin::ProxyID_out proxy_id,
    const ::CosNotification::QoSProperties & initial_qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::CosNotifyChannelAdmin::AdminLimitExceeded,
    ::CosNotification::UnsupportedQoS
  ))
{
  return this->ptr_->obtain_notification_push_consumer_with_qos (
    ctype,
    proxy_id,
    initial_qos
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

