/* -*- C++ -*- */
// Multiplexor.inl,v 4.1 2004/06/16 07:57:23 jwillemsen Exp

// Multiplexor.i
#if 0

int
Driver::link_from_below (ACE_Module *stream_head)
{
  ACE_TRACE ("Driver::link_from_below");
  ACE_Module *stream_tail = this->alloc_module (this);

  stream_head->link (stream_tail);
  if (stream_tail->reader ()->open () == -1
      || stream_tail->writer ()->open () == -1)
    {
      stream_tail->close ();
      return -1;
    }
  return 0;
}

int
Driver::unlink_from_below (ACE_Module *)
{
  ACE_TRACE ("Driver::unlink_from_below");
  return -1;
}

ACE_Multiplexor::ACE_Multiplexor (void)
{
  ACE_TRACE ("ACE_Multiplexor::ACE_Multiplexor");
}

ACE_Multiplexor::~ACE_Multiplexor (void)
{
  ACE_TRACE ("ACE_Multiplexor::~ACE_Multiplexor");
}

int
ACE_Multiplexor::link_from_above (Driver &ld)
{
  ACE_TRACE ("ACE_Multiplexor::link_from_above");
  return ld.link_from_below (this->alloc_lower_module (this));
}

int
ACE_Multiplexor::link_from_above (ACE_Multiplexor &lm)
{
  ACE_TRACE ("ACE_Multiplexor::link_from_above");
  return lm.link_from_below (this->alloc_lower_module (this));
}

int
ACE_Multiplexor::link_from_below (ACE_Module *stream_head)
{
  ACE_TRACE ("ACE_Multiplexor::link_from_below");
  ACE_Module *stream_tail = this->alloc_upper_module (this);

  stream_head->link (stream_tail);
  if (stream_tail->reader ()->open () == -1
      || stream_tail->writer ()->open () == -1)
    {
      stream_tail->close ();
      return -1;
    }
  return 0;
}

int
ACE_Multiplexor::unlink_from_above (Driver &)
{
  ACE_TRACE ("ACE_Multiplexor::unlink_from_above");
  return -1;
}

int
ACE_Multiplexor::unlink_from_above (ACE_Multiplexor &)
{
  ACE_TRACE ("ACE_Multiplexor::unlink_from_above");
  return -1;
}

int
ACE_Multiplexor::unlink_from_below (ACE_Module *)
{
  ACE_TRACE ("ACE_Multiplexor::unlink_from_below");
  return -1;
}

#endif /*  0 */
