当前位置: 首页>>代码示例>>C++>>正文


C++ ObPacket::set_request方法代码示例

本文整理汇总了C++中ObPacket::set_request方法的典型用法代码示例。如果您正苦于以下问题:C++ ObPacket::set_request方法的具体用法?C++ ObPacket::set_request怎么用?C++ ObPacket::set_request使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObPacket的用法示例。


在下文中一共展示了ObPacket::set_request方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: process

    static int process(easy_request_t *r)
    {
      int ret = EASY_OK;

      if (NULL == r)
      {
        TBSYS_LOG(WARN, "request is NULL, r = %p", r);
        ret = EASY_BREAK;
      }
      else if (NULL == r->ipacket)
      {
        TBSYS_LOG(WARN, "request is NULL, r->ipacket = %p", r->ipacket);
        ret = EASY_BREAK;
      }
      else
      {
        ObFileServer* server = (ObFileServer*)r->ms->c->handler->user_data;
        ObPacket* packet = (ObPacket*)r->ipacket;
        packet->set_request(r);
        r->ms->c->pool->ref++;
        easy_atomic_inc(&r->ms->pool->ref);
        easy_pool_set_lock(r->ms->pool);
        if (OB_REQUIRE_HEARTBEAT == packet->get_packet_code())
        {
          server->handle_request(packet);
        }
        else
        {
          server->handlePacket(packet);
        }

        ret = EASY_AGAIN;
      }
      return ret;
    }
开发者ID:Alibaba-boonya,项目名称:oceanbase,代码行数:35,代码来源:test_ob_file_service.cpp

示例2: shadow_process

 int ObTbnetCallback::shadow_process(easy_request_t* r)
 {
   int ret = EASY_OK;
   if (NULL == r || NULL == r->ipacket)
   {
     TBSYS_LOG(ERROR, "request is empty, r = %p, r->ipacket = %p", r, r->ipacket);
     ret = EASY_BREAK;
   }
   else
   {
     ObShadowServer *server = (ObShadowServer*)r->ms->c->handler->user_data;
     ObPacket *req = (ObPacket*) r->ipacket;
     req->set_request(r);
     ret = server->handlePacket(req);
     if (OB_SUCCESS == ret)
     {
       r->ms->c->pool->ref++;
       easy_atomic_inc(&r->ms->pool->ref);
       easy_pool_set_lock(r->ms->pool);
       ret = EASY_AGAIN;
     }
     else
     {
       ret = EASY_OK;
       TBSYS_LOG(WARN, "can not push packet(src is %s, pcode is %u) to packet queue",
                 inet_ntoa_r(r->ms->c->addr), req->get_packet_code());
     }
   }
   return ret;
 }
开发者ID:mrunix,项目名称:oceanbase,代码行数:30,代码来源:ob_tbnet_callback.cpp

示例3: process

    int ObProxyCallback::process(easy_request_t *r)
    {
      int ret = EASY_OK;

      if (NULL == r)
      {
        TBSYS_LOG(WARN, "request is NULL, r = %p", r);
        ret = EASY_BREAK;
      }
      else if (NULL == r->ipacket)
      {
        TBSYS_LOG(WARN, "request is NULL, r->ipacket = %p", r->ipacket);
        ret = EASY_BREAK;
      }
      else
      {
        ObProxyServer* server = (ObProxyServer*)r->ms->c->handler->user_data;
        ObPacket* packet = (ObPacket*)r->ipacket;
        packet->set_request(r);
        //handle_request will send response
        if (OB_REQUIRE_HEARTBEAT == packet->get_packet_code())
        {
          server->handle_request(packet);
          ret = EASY_OK;
        }
        else
        {
          ret = server->handlePacket(packet);
          if (OB_SUCCESS == ret)
          {
            r->ms->c->pool->ref++;
            easy_atomic_inc(&r->ms->pool->ref);
            easy_pool_set_lock(r->ms->pool);
            ret = EASY_AGAIN;
          }
          else
          {
            ret = EASY_OK;
            TBSYS_LOG(WARN, "can not push packet(src is %s, pcode is %u) to packet queue",
                      inet_ntoa_r(r->ms->c->addr), packet->get_packet_code());

          }
        }
      }
      return ret;
    }
开发者ID:Alibaba-boonya,项目名称:oceanbase,代码行数:46,代码来源:ob_proxy_callback.cpp

示例4: process

 int ObUpdateCallback::process(easy_request_t* r)
 {
   int ret = EASY_OK;
   if (NULL == r)
   {
     TBSYS_LOG(ERROR, "request is empty, r = %p", r);
     ret = EASY_BREAK;
   }
   else if (NULL == r->ipacket)
   {
     TBSYS_LOG(ERROR, "request is empty, r->ipacket = %p", r->ipacket);
     ret = EASY_BREAK;
   }
   else
   {
     ObUpdateServer *server = reinterpret_cast<ObUpdateServer*>(r->ms->c->handler->user_data);
     ObPacket *req = reinterpret_cast<ObPacket*>(r->ipacket);
     req->set_request(r);
     r->ms->c->pool->ref ++;
     easy_atomic_inc(&r->ms->pool->ref);
     easy_pool_set_lock(r->ms->pool);
     ret = server->handlePacket(req);
     if (OB_SUCCESS == ret)
     {
       // enqueue success
       ret = EASY_AGAIN;
     }
     else if (OB_ENQUEUE_FAILED == ret)
     {
       TBSYS_LOG(WARN, "can not push packet(src is %s, pcode is %u) to packet queue", 
                 inet_ntoa_r(r->ms->c->addr), req->get_packet_code());
       r->ms->c->pool->ref --;
       easy_atomic_dec(&r->ms->pool->ref);
       ret = EASY_OK;
     }
     else /* OB_ERROR */
     {
       ret = EASY_AGAIN;
     }
   }
   return ret;
 }
开发者ID:Alibaba-boonya,项目名称:oceanbase,代码行数:42,代码来源:ob_update_callback.cpp


注:本文中的ObPacket::set_request方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。