int AccessStatInfoMessage::set_counter_map(char** data, int32_t* len, const COUNTER_TYPE & map, int32_t from_row, int32_t return_row, int32_t size) { if (set_int32(data, len, size) == TFS_ERROR) { return TFS_ERROR; } if (size <= 0) { return TFS_SUCCESS; } int count = 0; COUNTER_TYPE::const_iterator it = map.begin(); for (; it != map.end(); ++it) { count++; if (count <= from_row) { continue; } if (count > from_row + return_row) { break; } if (set_int32(data, len, static_cast<int32_t> (it->first)) == TFS_ERROR) { return TFS_ERROR; } if (set_object(data, len, reinterpret_cast<void*> (const_cast<Throughput*>(&it->second)), sizeof(Throughput)) == TFS_ERROR) { return TFS_ERROR; } } return TFS_SUCCESS; }
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 ReplicateInfoMessage::set_counter_map(char** data, int32_t* len, const COUNTER_TYPE & map, int32_t size) { if (set_int32(data, len, size) == TFS_ERROR) { return TFS_ERROR; } for (COUNTER_TYPE::const_iterator it = map.begin(); it != map.end(); ++it) { if (set_int64(data, len, static_cast<int64_t> (it->first)) == TFS_ERROR) { return TFS_ERROR; } if (set_int32(data, len, static_cast<int32_t> (it->second)) == TFS_ERROR) { return TFS_ERROR; } size--; if (size <= 0) { break; } } return TFS_SUCCESS; }