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

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

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

template <class T> ACE_INLINE
POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::EventChannelFacade_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_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::~EventChannelFacade_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

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

template <class T> ACE_INLINE void
POA_FtRtecEventChannelAdmin::EventChannelFacade_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_FtRtecEventChannelAdmin::EventChannelFacade_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_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::_is_owner (void)
{
  return this->rel_;
}

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

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_FtRtecEventChannelAdmin::EventChannelFacade_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->EventChannelFacade::_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_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::push  (
    const ::FtRtecEventComm::ObjectId & oid,
    const ::RtecEventComm::EventSet & data
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->push (
    oid,
    data
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::FtRtecEventChannelAdmin::ObjectId * POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::connect_push_consumer  (
    ::RtecEventComm::PushConsumer_ptr push_consumer,
    const ::RtecEventChannelAdmin::ConsumerQOS & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::RtecEventChannelAdmin::TypeError
  ))
{
  return this->ptr_->connect_push_consumer (
    push_consumer,
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::FtRtecEventChannelAdmin::ObjectId * POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::connect_push_supplier  (
    ::RtecEventComm::PushSupplier_ptr push_supplier,
    const ::RtecEventChannelAdmin::SupplierQOS & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->connect_push_supplier (
    push_supplier,
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::disconnect_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->disconnect_push_supplier (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::disconnect_push_consumer  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->disconnect_push_consumer (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::suspend_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->suspend_push_supplier (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannelFacade_tie<T>::resume_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->resume_push_supplier (
    oid
    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_FtRtecEventChannelAdmin::EventChannel_tie<T>::EventChannel_tie (T &t)
	: ptr_ (&t),
	  poa_ (PortableServer::POA::_nil ()),
	  rel_ (0)
{}

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

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

template <class T> ACE_INLINE
POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::EventChannel_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_FtRtecEventChannelAdmin::EventChannel_tie<T>::~EventChannel_tie (void)
{
  if (this->rel_)
    {
      delete this->ptr_;
    }
}

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

template <class T> ACE_INLINE void
POA_FtRtecEventChannelAdmin::EventChannel_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_FtRtecEventChannelAdmin::EventChannel_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_FtRtecEventChannelAdmin::EventChannel_tie<T>::_is_owner (void)
{
  return this->rel_;
}

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

template <class T> ACE_INLINE PortableServer::POA_ptr
POA_FtRtecEventChannelAdmin::EventChannel_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->EventChannel::_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
}

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

template <class T> ACE_INLINE
::RtecEventChannelAdmin::ConsumerAdmin_ptr POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::for_consumers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->for_consumers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::RtecEventChannelAdmin::SupplierAdmin_ptr POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::for_suppliers  (
    ACE_ENV_SINGLE_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->for_suppliers (
    ACE_ENV_SINGLE_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_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
RtecEventChannelAdmin::Observer_Handle POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::append_observer  (
    ::RtecEventChannelAdmin::Observer_ptr gw
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
    ::RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER
  ))
{
  return this->ptr_->append_observer (
    gw
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::remove_observer  (
    ::RtecEventChannelAdmin::Observer_Handle gw
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR,
    ::RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER
  ))
{
  this->ptr_->remove_observer (
    gw
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::push  (
    const ::FtRtecEventComm::ObjectId & oid,
    const ::RtecEventComm::EventSet & data
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->push (
    oid,
    data
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::FtRtecEventChannelAdmin::ObjectId * POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::connect_push_consumer  (
    ::RtecEventComm::PushConsumer_ptr push_consumer,
    const ::RtecEventChannelAdmin::ConsumerQOS & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::RtecEventChannelAdmin::TypeError
  ))
{
  return this->ptr_->connect_push_consumer (
    push_consumer,
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
::FtRtecEventChannelAdmin::ObjectId * POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::connect_push_supplier  (
    ::RtecEventComm::PushSupplier_ptr push_supplier,
    const ::RtecEventChannelAdmin::SupplierQOS & qos
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->connect_push_supplier (
    push_supplier,
    qos
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::disconnect_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->disconnect_push_supplier (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::disconnect_push_consumer  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->disconnect_push_consumer (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::suspend_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->suspend_push_supplier (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::resume_push_supplier  (
    const ::FtRtecEventChannelAdmin::ObjectId & oid
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FtRtecEventComm::InvalidObjectID
  ))
{
  this->ptr_->resume_push_supplier (
    oid
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::set_update  (
    const ::FTRT::State & s
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FTRT::InvalidUpdate,
    ::FTRT::OutOfSequence,
    ::FTRT::TransactionDepthTooHigh
  ))
{
  this->ptr_->set_update (
    s
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::oneway_set_update  (
    const ::FTRT::State & s
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->oneway_set_update (
    s
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::replica_crashed  (
    const ::FTRT::Location & location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->replica_crashed (
    location
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
CORBA::Boolean POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::start  (
    ::FTRT::FaultListener_ptr listener,
    ::FTRT::Location_out the_location
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  return this->ptr_->start (
    listener,
    the_location
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::create_group  (
    const ::FTRT::ManagerInfoList & info_list,
    ::CORBA::ULong object_group_ref_version
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FTRT::PredecessorUnreachable
  ))
{
  this->ptr_->create_group (
    info_list,
    object_group_ref_version
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::join_group  (
    const ::FTRT::ManagerInfo & info
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->join_group (
    info
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::add_member  (
    const ::FTRT::ManagerInfo & info,
    ::CORBA::ULong object_group_ref_version
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->add_member (
    info,
    object_group_ref_version
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::remove_member  (
    const ::FTRT::Location & crashed_location,
    ::CORBA::ULong object_group_ref_version
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException
  ))
{
  this->ptr_->remove_member (
    crashed_location,
    object_group_ref_version
    ACE_ENV_ARG_PARAMETER
  );
}

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

template <class T> ACE_INLINE
void POA_FtRtecEventChannelAdmin::EventChannel_tie<T>::set_state  (
    const ::FTRT::State & stat
    ACE_ENV_ARG_DECL
  )
  ACE_THROW_SPEC ((
    CORBA::SystemException,
    ::FTRT::InvalidState
  ))
{
  this->ptr_->set_state (
    stat
    ACE_ENV_ARG_PARAMETER
  );
}

#endif /* ACE_HAS_USING_KEYWORD */

