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


C++ data_entry::get_prefix_size方法代码示例

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


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

示例1: do_rsync_data

int do_rsync_data(ClusterHandler& local_handler, ClusterHandler& remote_handler, int32_t type, data_entry& key)
{
  data_entry* value = NULL;
  // get from local cluster
  int ret = get_from_local_cluster(local_handler, key, value);

  // attach info to key
  if (value != NULL)
  {
    key.data_meta.cdate = value->data_meta.cdate;
    key.data_meta.edate = value->data_meta.edate;
    key.data_meta.mdate = value->data_meta.mdate;
    key.data_meta.version = value->data_meta.version;
  }

  log_debug("@@ k:%d %s %d %d %u %u %u.v:%s %d %d", key.get_area(), key.get_size() > 6 ? key.get_data()+6 : "", key.get_size(), key.get_prefix_size(),key.data_meta.cdate,key.data_meta.mdate,key.data_meta.edate, (value != NULL && value->get_size() > 4) ? value->get_data()+4 : "", value != NULL ? value->get_size() : 0, value != NULL ? value->data_meta.flag : -1);

  key.server_flag = TAIR_SERVERFLAG_RSYNC;
  key.data_meta.flag = TAIR_CLIENT_DATA_MTIME_CARE | TAIR_CLIENT_PUT_SKIP_CACHE_FLAG;

  // do repair
  if (ret == TAIR_RETURN_SUCCESS || ret == TAIR_RETURN_DATA_NOT_EXIST)
  {
    switch (type)
    {
    case TAIR_REMOTE_SYNC_TYPE_PUT:
      if (ret == TAIR_RETURN_SUCCESS)
      {
        log_error("@@ edate : %d %d %d", key.data_meta.mdate, key.data_meta.edate, value->data_meta.edate);
        ret = remote_handler.client()->put(key.get_area(), key, *value, 0, 0, false);
        if (ret == TAIR_RETURN_MTIME_EARLY)
        {
          ret = TAIR_RETURN_SUCCESS;
        }
      }
      else
      {
        log_warn("put but data not exist in local");
        ret = TAIR_RETURN_SUCCESS;
      }
      break;
    case TAIR_REMOTE_SYNC_TYPE_DELETE:
      if (ret == TAIR_RETURN_DATA_NOT_EXIST)
      {
        ret = remote_handler.client()->remove(key.get_area(), key);
        if (ret == TAIR_RETURN_DATA_NOT_EXIST || ret == TAIR_RETURN_DATA_EXPIRED || ret == TAIR_RETURN_MTIME_EARLY)
        {
          ret = TAIR_RETURN_SUCCESS;
        }
      }
      else
      {
        log_warn("delete but data exist in local");
        ret = TAIR_RETURN_SUCCESS;
      }
      break;
    default:
      log_error("invalid type: %d, ignore", type);
      ret = TAIR_RETURN_SUCCESS;
      break;
    }
  }

  if (value != NULL)
  {
    delete value;
  }

  return ret;
}
开发者ID:0x3FFFFFFF,项目名称:tair,代码行数:70,代码来源:repair_rsync.cpp


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