亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? io.cpp

?? 一個(gè)開(kāi)源的網(wǎng)絡(luò)開(kāi)發(fā)庫(kù)ACE
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// IO.cpp,v 1.2 2001/03/06 16:17:10 jxh Exp

#include "ace/Message_Block.h"
#include "ace/SOCK_Stream.h"
#include "ace/Filecache.h"

#include "JAWS/JAWS.h"
#include "JAWS/Data_Block.h"
#include "JAWS/Policy.h"
#include "JAWS/IO.h"
#include "JAWS/IO_Handler.h"
#include "JAWS/IO_Acceptor.h"
#include "JAWS/Filecache.h"

// #include "HTTP_Helpers.h"

ACE_RCSID(JAWS, IO, "IO.cpp,v 1.2 2001/03/06 16:17:10 jxh Exp")

JAWS_IO::JAWS_IO (void)
  : handle_ (ACE_INVALID_HANDLE),
    handler_ (0),
    inet_addr_ (0),
    acceptor_ (0)
{
}

JAWS_IO::~JAWS_IO (void)
{
}

#if 0
ACE_HANDLE
JAWS_IO::handle (void)
{
  return this->handle_;
}

void
JAWS_IO::handle (ACE_HANDLE handle)
{
  this->handle_ = handle;
}

void
JAWS_IO::handler (JAWS_IO_Handler *handler)
{
  this->handler_ = handler;
}

void
JAWS_IO::acceptor (JAWS_IO_Acceptor *acceptor)
{
  this->acceptor_ = acceptor;
}
#endif /* 0 */

JAWS_Synch_IO::JAWS_Synch_IO (void)
{
  this->acceptor_ = JAWS_IO_Synch_Acceptor_Singleton::instance ();
}

JAWS_Synch_IO::~JAWS_Synch_IO (void)
{
  if (this->handle_ != ACE_INVALID_HANDLE)
    ACE_OS::closesocket (this->handle_);
}

void
JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh,
                       ACE_Message_Block *,
                       unsigned int)
{
  ACE_SOCK_Stream new_stream;
  new_stream.set_handle (ACE_INVALID_HANDLE);
  if (this->acceptor_->accept (new_stream) == -1)
    ioh->accept_error ();
  else
    ioh->accept_complete (new_stream.get_handle ());
}

void
JAWS_Synch_IO::read (JAWS_IO_Handler *ioh,
                     ACE_Message_Block *mb,
                     unsigned int size)
{
  JAWS_TRACE ("JAWS_Synch_IO::read");

  ACE_SOCK_Stream stream;

  stream.set_handle (ioh->handle ());
  int result = stream.recv (mb->wr_ptr (), size);

  if (result <= 0)
    ioh->read_error ();
  else
    {
      JAWS_TRACE ("JAWS_Synch_IO::read success");
      mb->wr_ptr (result);
      ioh->read_complete (mb);
    }
}

void
JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
                             const char *filename,
                             void *initial_data,
                             unsigned int initial_data_length,
                             unsigned int entire_length)
{
  ACE_Filecache_Handle handle (filename, 
                               (int) entire_length);

  int result = handle.error ();

  if (result == ACE_Filecache_Handle::ACE_SUCCESS)
    {
      ACE_SOCK_Stream stream;
      stream.set_handle (ioh->handle ());

      int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
      ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);

      int bytes_to_read = entire_length - bytes_to_memcpy;

      int bytes = stream.recv_n ((char *)
                                 handle.address () + initial_data_length,
                                 bytes_to_read);
      if (bytes == bytes_to_read)
        ioh->receive_file_complete ();
      else
        result = -1;
    }

  if (result != ACE_Filecache_Handle::ACE_SUCCESS)
    ioh->receive_file_error (result);
}

void
JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
                              ACE_HANDLE handle,
                              const char *header,
                              unsigned int header_size,
                              const char *trailer,
                              unsigned int trailer_size)
{
  int result = 0;

  if (handle != ACE_INVALID_HANDLE)
    {
      ACE_SOCK_Stream stream;
      stream.set_handle (ioh->handle ());

      if ((unsigned long) stream.send_n (header, header_size) < header_size)
        {
          result = -1;
        }
      else
        {
          int count;
          char buf[BUFSIZ];

          do
            {
              count = ACE_OS::read (handle, buf, sizeof (buf));
              if (count <= 0)
                break;

              if (stream.send_n (buf, count) < count)
                {
                result = -1;
                }
            }
          while (result == 0);

          if ((unsigned long) stream.send_n (trailer, trailer_size)
              < trailer_size)
            {
            result = -1;
            }
        }
    }

  if (result == 0)
    ioh->transmit_file_complete ();
  else
    ioh->transmit_file_error (result);
}

void
JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
                              const char *filename,
                              const char *header,
                              unsigned int header_size,
                              const char *trailer,
                              unsigned int trailer_size)
{
  int result = 0;

  if (filename == 0)
    {
      ioh->transmit_file_error (-1);
      return;
    }

  JAWS_Cached_FILE cf (filename);

  if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
      && cf.mmap () != 0)
    {
#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
      ACE_FILE_Info info;
      cf.file ()->get_info (info);

      if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
        {
          ACE_SOCK_Stream stream;
          stream.set_handle (ioh->handle ());
          if (((u_long) stream.send_n (header, header_size) == header_size)
              && (stream.send_n (cf.mmap ()->addr (), info.size_)
                  == info.size_)
              && ((u_long) stream.send_n (trailer, trailer_size)
                  == trailer_size))
            {
              ioh->transmit_file_complete ();
              return;
            }
          else
            {
              result = -1;
            }
        }
      else
        {
          result = -1;
        }
#else
      // Attempting to use writev
      // Is this faster?
      iovec iov[3];
      int iovcnt = 0;
      if (header_size > 0)
        {
          iov[iovcnt].iov_base = ACE_const_cast(char*,header);
          iov[iovcnt].iov_len =  header_size;
          iovcnt++;
        }

      ACE_FILE_Info info;

      if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
        {
          iov[iovcnt].iov_base = (char *) cf.mmap ()->addr ();
          iov[iovcnt].iov_len = info.size_;
          iovcnt++;
        }
      if (trailer_size > 0)
        {
          iov[iovcnt].iov_base = ACE_const_cast(char*,trailer);
          iov[iovcnt].iov_len = trailer_size;
          iovcnt++;
        }
      if (ACE_OS::writev (ioh->handle (), iov, iovcnt) < 0)
        {
          result = -1;
        }
      else
        {
          ioh->transmit_file_complete ();
          return;
        }
#endif /* ACE_JAWS_BASELINE */
    }
  else if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
           && cf.mmap () == 0)
    {
      this->transmit_file (ioh,
                           cf.file ()->get_handle (),
                           header, header_size,
                           trailer, trailer_size);
      return;
    }
  else
    {
      result = -1;
    }

  if (result != 0)
    {
      ioh->transmit_file_error (result);
    }
}

void
JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
                                          const char *buffer,
                                          unsigned int length)
{
  this->send_message (ioh, buffer, length);
  ioh->confirmation_message_complete ();
}

void

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国精产品一区一区三区mba桃花| 免费在线看一区| 91精品免费在线| 成人福利在线看| 捆绑变态av一区二区三区| 亚洲欧美精品午睡沙发| 久久日一线二线三线suv| 欧美日韩视频不卡| 成人av在线观| 欧美性xxxxxx少妇| 国产a精品视频| 麻豆一区二区在线| 日韩精品欧美成人高清一区二区| 日韩一区在线播放| 国产欧美日韩在线视频| 日韩三级视频中文字幕| 精品视频一区二区三区免费| 97久久人人超碰| 成人国产在线观看| 国产69精品一区二区亚洲孕妇| 日本免费新一区视频| 三级亚洲高清视频| 五月天丁香久久| 天天综合色天天综合色h| 夜夜夜精品看看| 亚洲愉拍自拍另类高清精品| 中文字幕日韩精品一区| 亚洲欧洲精品成人久久奇米网| 久久久99久久| 国产三级精品三级在线专区| 久久亚洲二区三区| 精品国产乱码久久久久久浪潮| 7777精品久久久大香线蕉| 欧美日韩国产色站一区二区三区| 色丁香久综合在线久综合在线观看| 不卡的av在线播放| 99精品久久只有精品| 色综合天天性综合| 色综合一个色综合| 一本一本大道香蕉久在线精品| 91亚洲资源网| 欧洲精品在线观看| 欧美日韩视频不卡| 欧美一区二区三区色| 欧美一级在线观看| 精品国产91亚洲一区二区三区婷婷| 精品久久久久久久久久久久包黑料 | 日韩无一区二区| 欧美成人精品3d动漫h| 精品国产麻豆免费人成网站| 久久九九99视频| 中文字幕一区二区5566日韩| 夜夜操天天操亚洲| 婷婷国产在线综合| 久久99精品一区二区三区三区| 日韩一级视频免费观看在线| 日韩三级在线观看| 国产欧美日韩亚州综合| 亚洲色大成网站www久久九九| 一区二区久久久久| 日本在线播放一区二区三区| 国产一区在线看| 成人不卡免费av| 欧美日韩一级视频| 26uuu亚洲| 国产精品短视频| 亚洲电影在线播放| 久久激情五月激情| 成人爽a毛片一区二区免费| 色综合激情五月| 精品免费日韩av| 亚洲图片另类小说| 视频一区二区欧美| 国产成人午夜99999| 日本久久一区二区| 精品久久99ma| 亚洲日本在线观看| 偷拍日韩校园综合在线| 国产黄色91视频| 欧美三片在线视频观看| 精品日韩成人av| 一区二区三区美女| 国产精品资源网| 欧美日韩精品欧美日韩精品 | 欧美午夜片在线观看| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧洲99久久| 久久成人免费日本黄色| 91麻豆国产在线观看| 亚洲精品一区二区三区精华液| 亚洲伦理在线免费看| 国内精品写真在线观看| 亚洲欧美色一区| 国产在线不卡一卡二卡三卡四卡| 91麻豆国产香蕉久久精品| 久久久久久久久一| 日本伊人午夜精品| 色婷婷一区二区三区四区| 久久久国产一区二区三区四区小说 | 一道本成人在线| 久久久精品影视| 蜜桃久久久久久久| 色综合色综合色综合| 国产午夜精品福利| 日韩福利电影在线观看| 91久久一区二区| 中文字幕一区二区5566日韩| 国产乱码精品一区二区三区忘忧草 | 日韩综合在线视频| 色欧美日韩亚洲| 亚洲欧洲另类国产综合| 国产高清一区日本| 日韩精品在线一区| 日韩成人一区二区三区在线观看| 91视频免费播放| 中文字幕制服丝袜成人av | 91麻豆免费观看| 国产欧美精品一区| 国产在线国偷精品产拍免费yy | 国产精品免费网站在线观看| 美女视频黄久久| 欧美日韩一二三区| 亚洲国产欧美在线人成| 91豆麻精品91久久久久久| 亚洲同性gay激情无套| 成人黄色在线网站| 中文字幕乱码一区二区免费| 国产成人8x视频一区二区| 国产午夜精品一区二区| 国产东北露脸精品视频| 国产欧美日韩一区二区三区在线观看| 黑人巨大精品欧美一区| 精品国产欧美一区二区| 激情丁香综合五月| 国产亚洲精品aa| 精品国产麻豆免费人成网站| 毛片一区二区三区| 欧美精品一区二区三区蜜臀| 激情五月婷婷综合网| 精品剧情在线观看| 国产美女精品一区二区三区| 久久久久久久久一| 国产不卡视频在线观看| 亚洲欧洲色图综合| 一本一道波多野结衣一区二区| 亚洲综合丝袜美腿| 在线成人av影院| 精品一区二区三区免费| 国产网红主播福利一区二区| 成人午夜电影网站| 亚洲视频一区在线观看| 欧美午夜一区二区三区| 日韩av一级片| 久久九九全国免费| 91浏览器打开| 日韩不卡一二三区| 久久久不卡网国产精品二区| 成人激情av网| 亚洲午夜久久久| 精品噜噜噜噜久久久久久久久试看| 国产福利精品一区| 亚洲视频在线观看一区| 在线播放国产精品二区一二区四区| 奇米影视一区二区三区| 国产欧美日韩亚州综合 | 26uuu久久天堂性欧美| 福利一区福利二区| 亚洲国产精品一区二区久久恐怖片 | 在线影院国内精品| 日本91福利区| 国产色91在线| 在线观看不卡一区| 奇米精品一区二区三区在线观看| 久久精品一区二区三区不卡| 色999日韩国产欧美一区二区| 日韩专区一卡二卡| 亚洲国产经典视频| 欧美高清你懂得| 国产另类ts人妖一区二区| 一区二区三区蜜桃网| 久久久精品tv| 欧美日韩夫妻久久| jizz一区二区| 美女在线视频一区| 亚洲精品网站在线观看| 久久综合视频网| 欧美色国产精品| 成人免费看片app下载| 午夜电影一区二区| 中文字幕亚洲视频| 欧美大肚乱孕交hd孕妇| 一本久久综合亚洲鲁鲁五月天 | 亚洲欧美福利一区二区| 精品国免费一区二区三区| 欧美在线短视频| 从欧美一区二区三区| 精品一区二区三区在线播放| 亚洲一级二级在线| 亚洲视频一区二区在线| 蜜桃av一区二区|