int BatchSetBlockInfoMessage::serialize(common::Stream& output) const { int32_t iret = output.set_int32(block_infos_.size()); if (common::TFS_SUCCESS == iret) { std::map<uint32_t, common::BlockInfoSeg>::const_iterator it = block_infos_.begin(); common::BlockInfoSeg* block_info = NULL; for (; it != block_infos_.end(); it++) { block_info = const_cast< common::BlockInfoSeg*>(&it->second); if (block_info->has_lease() && !block_info->ds_.empty()) { block_info->ds_.push_back(ULONG_LONG_MAX); block_info->ds_.push_back(static_cast<uint64_t> (block_info->version_)); block_info->ds_.push_back(static_cast<uint64_t> (block_info->lease_id_)); } //block id iret = output.set_int32(it->first); if (common::TFS_SUCCESS != iret) break; // dataserver list iret = output.set_vint64(block_info->ds_); if (common::TFS_SUCCESS != iret) break; // reparse, avoid push verion&lease again when clone twice; common::BasePacket::parse_special_ds(block_info->ds_, block_info->version_, block_info->lease_id_); } } return iret; }
int RespHeartMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(status_); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(heart_interval_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(max_mr_network_bandwith_mb_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(max_rw_network_bandwith_mb_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int8(ns_role_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int8(enable_old_interface_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int8(enable_version_check_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(verify_index_reserved_space_ratio_); } return ret; }
int ECMarshallingMessage::serialize(common::Stream& output) const { const int32_t MEMBER_NUM = GET_DATA_MEMBER_NUM(family_aid_info_) + GET_CHECK_MEMBER_NUM(family_aid_info_); int32_t ret = output.set_int64(family_id_); if (common::TFS_SUCCESS == ret) { ret = output.set_int64(seqno_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(expire_time_); } if (common::TFS_SUCCESS == ret) { ret = (NULL != family_members_ && MEMBER_NUM > 0 && MEMBER_NUM <= MAX_MARSHALLING_NUM) ? common::TFS_SUCCESS : common::EXIT_PARAMETER_ERROR; if (TFS_SUCCESS == ret) { ret = output.set_int32(family_aid_info_); } } if (common::TFS_SUCCESS == ret) { for (int32_t index = 0; index < MEMBER_NUM && TFS_SUCCESS == ret; ++index) { int64_t pos = 0; ret = family_members_[index].serialize(output.get_free(), output.get_free_length() , pos); if (TFS_SUCCESS == ret) output.pour(family_members_[index].length()); } } return ret; }
int AccessStatInfoMessage::set_counter_map(common::Stream& output, const COUNTER_TYPE & map, int32_t from_row, int32_t return_row, int32_t size) const { int32_t iret = output.set_int32(size); if (common::TFS_SUCCESS == iret) { if (size > 0) { int64_t pos = 0; int32_t count = 0; COUNTER_TYPE::const_iterator iter = map.begin(); for (; iter != map.end(); ++iter, ++count) { if (count <= from_row) continue; if (count > from_row + return_row) break; iret = output.set_int32(iter->first); if (common::TFS_SUCCESS != iret) break; pos = 0; iret = const_cast<common::Throughput*>(&iter->second)->serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) output.pour(iter->second.length()); else break; } } } return iret; }
int BlockWriteCompleteMessage::serialize(common::Stream& output) const { int32_t ret = block_info_.block_id_ <= 0 ? common::TFS_ERROR : common::TFS_SUCCESS; if (common::TFS_SUCCESS == ret) { ret = output.set_int64(server_id_); } if (common::TFS_SUCCESS == ret) { int64_t pos = 0; ret = block_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(block_info_.length()); } } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(lease_id_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(write_complete_status_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(unlink_flag_); } return ret; }
int BlockFileInfoMessage::serialize(common::Stream& output) const { int32_t iret = output.set_int32(block_id_); if (common::TFS_SUCCESS == iret) { iret = output.set_int32(fileinfo_list_.size()); } if (common::TFS_SUCCESS == iret) { common::FILE_INFO_LIST::const_iterator iter = fileinfo_list_.begin(); for (; iter != fileinfo_list_.end(); ++iter) { int64_t pos = 0; iret = (*iter).serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) { output.pour((*iter).length()); } else { break; } } } return iret; }
int WriteInfoBatchMessage::serialize(common::Stream& output) const { int64_t pos = 0; int32_t have_block = (block_info_.block_id_ > 0) ? 1 : 0; int32_t iret = write_data_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) { output.pour(write_data_info_.length()); iret = output.set_int32(have_block); } if (common::TFS_SUCCESS == iret) { if (1 == have_block) { pos = 0; iret = block_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) { output.pour(block_info_.length()); } } } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(meta_list_.size()); } if (common::TFS_SUCCESS == iret) { common::RawMetaVec::const_iterator iter = meta_list_.begin(); for (; iter != meta_list_.end(); ++iter) { pos = 0; iret = const_cast<common::RawMeta*>((&(*iter)))->serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) { output.pour((*iter).length()); } else { break; } } } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(cluster_); } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(remove_flag_); } return iret; }
int RespListBlockMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(status_type_); if (common::TFS_SUCCESS == ret) { if (status_type_ & common::LB_BLOCK) { ret = output.set_vint64(blocks_); } if (common::TFS_SUCCESS == ret && status_type_ & common::LB_PAIRS) { ret = output.set_int32(block_pairs_.size()); if (common::TFS_SUCCESS == ret) { std::map<uint64_t, std::vector<int32_t> >:: const_iterator iter = block_pairs_.begin(); for (; iter != block_pairs_.end(); ++iter) { ret = output.set_int64(iter->first); if (common::TFS_SUCCESS != ret) break; ret = output.set_vint32(iter->second); if (common::TFS_SUCCESS != ret) break; } } } if (common::TFS_SUCCESS == ret && status_type_ & common::LB_INFOS) { ret = output.set_int32(block_infos_.size()); if (common::TFS_SUCCESS == ret) { std::vector<common::BlockInfoV2>::const_iterator iter = block_infos_.begin(); for (; iter != block_infos_.end(); ++iter) { int64_t pos = 0; ret = iter->serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) output.pour(iter->length()); else break; } } } } return ret; }
int GetServerStatusMessage::serialize(common::Stream& output) const { int32_t iret = output.set_int32(status_type_); if (common::TFS_SUCCESS == iret) { iret = output.set_int32(from_row_); } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(return_row_); } return iret; }
int GetBlockInfoMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(mode_); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(block_id_); } if (common::TFS_SUCCESS == ret) { ret = output.set_vint64(fail_server_); } return ret; }
int RespListBitMapMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(uuse_len_); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(ubitmap_len_); } if (common::TFS_SUCCESS == ret && ubitmap_len_ > 0) { ret = output.set_bytes(data_, ubitmap_len_); } return ret; }
int NewReplicateBlockMessage::serialize(common::Stream& output) { int32_t iret = output.set_int32(command_); if (TFS_SUCCESS == iret) { iret = output.set_int32(expire_); } if (TFS_SUCCESS == iret) { iret = repl_block_.serialize(output); } return iret; }
int BatchGetBlockInfoMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(mode_); if (common::TFS_SUCCESS == ret) { if (mode_ & common::T_READ) { ret = output.set_vint32(block_ids_); } else { ret = output.set_int32(block_count_); } } return ret; }
int RemoveBlockMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(0); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(id_); } if (common::TFS_SUCCESS == ret) { output.set_int8(response_flag_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int64(seqno_); } return ret; }
int RespHeartMessage::serialize(common::Stream& output) const { int32_t iret = output.set_int32(status_); if (common::TFS_SUCCESS == iret) { iret = output.set_int32(heart_interval_); } if (common::TFS_SUCCESS == iret) { iret = output.set_vint32(expire_blocks_); } if (common::TFS_SUCCESS == iret) { iret = output.set_vint32(new_blocks_); } return iret; }
int NsRequestCompactBlockMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(block_id_); if (common::TFS_SUCCESS == ret) { ret = output.set_vint64(servers_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int64(seqno_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(expire_time_); } return ret; }
int CheckBlockRequestMessage::serialize(common::Stream& output) const { int64_t pos = 0; int ret = range_.serialize(output.get_free(), output.get_free_length(), pos); if (TFS_SUCCESS == ret) { output.pour(range_.length()); } if (TFS_SUCCESS == ret) { ret = output.set_int32(group_count_); } if (TFS_SUCCESS == ret) { ret = output.set_int32(group_seq_); } return ret; }
int GetFamilyInfoMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(mode_); if (common::TFS_SUCCESS == ret) { ret = output.set_int64(family_id_); } return ret; }
int RemoveBlockResponseMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(block_id_); if (common::TFS_SUCCESS == ret) { output.set_int64(seqno_); } return ret; }
int UpdateBlockInfoMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(block_id_); if (common::TFS_SUCCESS == ret) { ret = output.set_int64(server_id_); } int32_t have_block = block_info_.block_id_ > 0 ? 1 : 0; if (common::TFS_SUCCESS == ret) { ret = output.set_int32(have_block); } int64_t pos = 0; if (common::TFS_SUCCESS == ret && have_block) { ret = block_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(block_info_.length()); } } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(repair_); } int32_t have_sdbm = db_stat_.item_count_ > 0 ? 0 : 1; if (common::TFS_SUCCESS == ret) { ret = output.set_int32(have_sdbm); } if (common::TFS_SUCCESS == ret && have_sdbm) { pos = 0; ret = db_stat_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(db_stat_.length()); } } return ret; }
int ReadRawdataRespMessageV2::serialize(common::Stream& output) const { int ret = output.set_int32(length_); if (TFS_SUCCESS == ret) { if ((length_ > 0) && (NULL != data_)) { ret = output.set_bytes(data_, length_); } } return ret; }
int WriteRawIndexMessage::serialize(common::Stream& output) const { int32_t iret = output.set_int32(block_id_); if (common::TFS_SUCCESS == iret) { iret = output.set_int64(family_id_); } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(index_op_); } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(index_vec_.size()); } for (uint32_t i = 0; i < index_vec_.size() && common::TFS_SUCCESS == iret; i++) { if (common::TFS_SUCCESS == iret) { iret = output.set_int32(index_vec_[i].block_id_); } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(index_vec_[i].size_); } if (common::TFS_SUCCESS == iret && index_vec_[i].size_ > 0) { iret = output.set_bytes(index_vec_[i].data_, index_vec_[i].size_); } } return iret; }
int MasterAndSlaveHeartResponseMessage::serialize(common::Stream& output) const { int64_t pos = 0; int32_t ret = ns_identity_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(ns_identity_.length()); } if (common::TFS_SUCCESS == ret) { ret = output.set_int64(lease_id_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(lease_expired_time_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(renew_lease_interval_time_); } return ret; }
int ResolveBlockVersionConflictMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int32(block_); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(members_.size()); } if (common::TFS_SUCCESS == ret) { std::vector<std::pair<uint64_t, common::BlockInfo> >::const_iterator iter = members_.begin(); for (; iter != members_.end() && common::TFS_SUCCESS == ret; ++iter) { ret = output.set_int64(iter->first); if (common::TFS_SUCCESS == ret) { int64_t pos = 0; ret = iter->second.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) output.pour(iter->second.length()); } } } return ret; }
int UnlinkFileMessage::serialize(common::Stream& output) const { if (has_lease()) { dataservers_.push_back(ULONG_LONG_MAX); dataservers_.push_back(static_cast<uint64_t> (version_)); dataservers_.push_back(static_cast<uint64_t> (lease_id_)); } int64_t pos = 0; int32_t ret = unlink_file_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(unlink_file_info_.length()); } if (common::TFS_SUCCESS == ret) { ret = output.set_vint64(dataservers_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(option_flag_); } if (common::TFS_SUCCESS == ret) { BasePacket::parse_special_ds(dataservers_, version_, lease_id_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int64(lease_id_ext_); } if (common::TFS_SUCCESS == ret) { if (common::INVALID_FAMILY_ID != family_info_.family_id_) { int64_t pos = 0; ret = family_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) { output.pour(family_info_.length()); } } } return ret; }
int WriteRawDataMessage::serialize(common::Stream& output) const { int64_t pos = 0; int32_t iret = write_data_info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == iret) { output.pour(write_data_info_.length()); if (write_data_info_.length_ > 0) { iret = output.set_bytes(data_, write_data_info_.length_); } } if (common::TFS_SUCCESS == iret) { iret = output.set_int32(flag_); } return iret; }
int GetFamilyInfoResponseMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int64(family_id_); if (common::TFS_SUCCESS == ret) { ret = output.set_int32(family_aid_info_); } if (common::TFS_SUCCESS == ret) { const int32_t MEMBER_NUM = GET_DATA_MEMBER_NUM(family_aid_info_) + GET_CHECK_MEMBER_NUM(family_aid_info_); for (int32_t index = 0; index < MEMBER_NUM; ++index) { ret = output.set_int64(members_[index].first); if (common::TFS_SUCCESS == ret) ret = output.set_int64(members_[index].second); } } return ret; }
int WriteDataResponseMessage::serialize(common::Stream& output) const { int32_t ret = output.set_int64(server_); if (common::TFS_SUCCESS == ret) { ret = output.set_int64(offset_); } if (common::TFS_SUCCESS == ret) { ret = output.set_int32(status_); } if (common::TFS_SUCCESS == ret) { int64_t pos = 0; ret = info_.serialize(output.get_free(), output.get_free_length(), pos); if (common::TFS_SUCCESS == ret) output.pour(info_.length()); } return ret; }
int AccessStatInfoMessage::serialize(common::Stream& output) const { int32_t size = stats_.size(); size -= from_row_; if (size < 0) { size = 0; } if (size > return_row_) { has_next_ = 1; size = return_row_; } int32_t iret = output.set_int32(has_next_); if (common::TFS_SUCCESS == iret) { iret = set_counter_map(output, stats_, from_row_, return_row_, size); } return iret; }
int SetBlockInfoMessage::serialize(common::Stream& output) const { if (has_lease() && !ds_.empty()) { ds_.push_back(ULONG_LONG_MAX); ds_.push_back(static_cast<uint64_t> (version_)); ds_.push_back(static_cast<uint64_t> (lease_id_)); } int32_t iret = output.set_int32(block_id_); if (common::TFS_SUCCESS == iret) { iret = output.set_vint64(ds_); } if (common::TFS_SUCCESS == iret) { // reparse, avoid push verion&lease again when clone twice; common::BasePacket::parse_special_ds(ds_, version_, lease_id_); } return iret; }