コード例 #1
0
ファイル: Stream.cpp プロジェクト: Adeer/OregonCore
template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::find (const ACE_TCHAR *name)
{
  ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::find");
  for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod = this->stream_head_;
       mod != 0;
       mod = mod->next ())
    if (ACE_OS::strcmp (mod->name (), name) == 0)
        return mod;

  return 0;
}
コード例 #2
0
ファイル: Stream.cpp プロジェクト: binghuo365/BaseLab
template <ACE_SYNCH_DECL> int
ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
                                   int flags)
{
    ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::remove");
    ACE_Module<ACE_SYNCH_USE> *prev = 0;

    for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
            mod != 0;
            mod = mod->next ())
        if (ACE_OS::strcmp (mod->name (), name) == 0)
        {
            if (prev == 0) // Deleting ACE_Stream Head
                this->stream_head_->link (mod->next ());
            else
                prev->link (mod->next ());

            // Don't delete the Module unless the flags request this.
            if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
            {
                // Close down the module and release the memory.
                mod->close (flags);
                delete mod;
            }

            return 0;
        }
        else
            prev = mod;

    return -1;
}
コード例 #3
0
ファイル: Stream.cpp プロジェクト: Adeer/OregonCore
template <ACE_SYNCH_DECL, class TIME_POLICY> void
ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
  ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::dump");
  ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("-------- module links --------\n")));

  for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mp = this->stream_head_;
       ;
       mp = mp->next ())
    {
      ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("module name = %s\n"), mp->name ()));
      if (mp == this->stream_tail_)
        break;
    }

  ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("-------- writer links --------\n")));

  ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *tp;

  for (tp = this->stream_head_->writer ();
       ;
       tp = tp->next ())
    {
      ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("writer queue name = %s\n"), tp->name ()));
      tp->dump ();
      ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("-------\n")));
      if (tp == this->stream_tail_->writer ()
          || (this->linked_us_
              && tp == this->linked_us_->stream_head_->reader ()))
        break;
    }

  ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("-------- reader links --------\n")));
  for (tp = this->stream_tail_->reader (); ; tp = tp->next ())
    {
      ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("reader queue name = %s\n"), tp->name ()));
      tp->dump ();
      ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("-------\n")));
      if (tp == this->stream_head_->reader ()
          || (this->linked_us_
              && tp == this->linked_us_->stream_head_->writer ()))
        break;
    }
#endif /* ACE_HAS_DUMP */
}
コード例 #4
0
ファイル: Stream.cpp プロジェクト: Adeer/OregonCore
template <ACE_SYNCH_DECL, class TIME_POLICY> int
ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::remove (const ACE_TCHAR *name,
                                   int flags)
{
  ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::remove");
  ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *prev = 0;

  for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod = this->stream_head_;
       mod != 0;
       mod = mod->next ())
  {
#ifndef ACE_NLOGGING
    if (ACE::debug ())
    {
      ACELIB_DEBUG ((LM_DEBUG,
        ACE_TEXT ("ACE_Stream::remove - comparing existing module :%s: with :%s:\n"),
        mod->name (),
        name));
    }
#endif

    if (ACE_OS::strcmp (mod->name (), name) == 0)
      {
        if (prev == 0) // Deleting ACE_Stream Head
          this->stream_head_->link (mod->next ());
        else
          prev->link (mod->next ());

        // Close down the module.
        mod->close (flags);

        // Don't delete the Module unless the flags request this.
        if (flags != ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::M_DELETE_NONE)
          {
            // Release the memory.
            delete mod;
          }

        return 0;
      }
    else
      prev = mod;
  }

  ACELIB_DEBUG ((LM_WARNING,  ACE_TEXT ("ACE_Stream::remove failed to find module with name %s to remove\n"),name));
  return -1;
}