int MockChunkServer::handle_get_table(ObPacket * ob_packet) { int ret = OB_SUCCESS; ObDataBuffer* data = ob_packet->get_buffer(); if (NULL == data) { ret = OB_ERROR; } ObGetParam param; if (OB_SUCCESS == ret) { ret = param.deserialize(data->get_data(), data->get_capacity(), data->get_position()); if (ret != OB_SUCCESS) { TBSYS_LOG(ERROR, "%s", "check param failed"); } } tbnet::Connection* connection = ob_packet->get_connection(); ThreadSpecificBuffer::Buffer* thread_buffer = response_packet_buffer_.get_buffer(); if (NULL == thread_buffer) { ret = OB_ERROR; } else { thread_buffer->reset(); ObDataBuffer out_buffer(thread_buffer->current(), thread_buffer->remain()); ObResultCode result_msg; result_msg.result_code_ = ret; ret = result_msg.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // fake data cell ObCellInfo cell; ObScanner scanner; ObRowkey row_key; ObString column_name; char temp[256] = ""; cell.table_id_ = 101; for (uint64_t i = 0; i < 10; ++i) { snprintf(temp, 256, "chunk_%lu_get_row_key:%lu", i, i); row_key = make_rowkey(temp, &allocator_); cell.row_key_ = row_key; cell.column_id_ = i + 1; cell.value_.set_int(2234 + i); scanner.add_cell(cell); } scanner.set_is_req_fullfilled(true, 1); int32_t channel_id = ob_packet->getChannelId(); ret = scanner.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // ret = send_response(OB_GET_RESPONSE, 1, out_buffer, connection, channel_id); } TBSYS_LOG(INFO, "handle get table result:ret[%d]", ret); return ret; }
int MockUpdateServer::handle_get_table(ObPacket * ob_packet) { int ret = OB_SUCCESS; ObDataBuffer* data = ob_packet->get_buffer(); if (NULL == data) { ret = OB_ERROR; } ObGetParam param; if (OB_SUCCESS == ret) { ret = param.deserialize(data->get_data(), data->get_capacity(), data->get_position()); if (ret != OB_SUCCESS) { TBSYS_LOG(ERROR, "%s", "check param failed"); } } tbnet::Connection* connection = ob_packet->get_connection(); ThreadSpecificBuffer::Buffer* thread_buffer = response_packet_buffer_.get_buffer(); if (NULL == thread_buffer) { ret = OB_ERROR; } else { thread_buffer->reset(); ObDataBuffer out_buffer(thread_buffer->current(), thread_buffer->remain()); ObResultCode result_msg; result_msg.result_code_ = ret; ret = result_msg.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // fake data cell ObCellInfo cell; ObScanner scanner; ObString row_key; ObString column_name; char temp[256] = ""; ObString table_name; char * name = "update_test_table"; table_name.assign(name, strlen(name)); cell.table_name_ = table_name; for (uint64_t i = 0; i < 10; ++i) { snprintf(temp, 256, "update_%lu_get_row_key:%lu", i, i); row_key.assign(temp, strlen(temp)); cell.row_key_ = row_key; column_name.assign(temp, strlen(temp)); cell.column_name_ = column_name; cell.value_.set_int(2234 + i); scanner.add_cell(cell); } int32_t channel_id = ob_packet->getChannelId(); ret = scanner.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // ret = send_response(OB_SCAN_RESPONSE, 1, out_buffer, connection, channel_id); } TBSYS_LOG(INFO, "handle scan root table result:ret[%d]", ret); return ret; }
int MockChunkServer::handle_get_table(ObPacket * ob_packet) { int ret = OB_SUCCESS; #if 0 ObDataBuffer* data = ob_packet->get_buffer(); if (NULL == data) { ret = OB_ERROR; } ObGetParam param; if (OB_SUCCESS == ret) { ret = param.deserialize(data->get_data(), data->get_capacity(), data->get_position()); if (ret != OB_SUCCESS) { TBSYS_LOG(ERROR, "%s", "check param failed"); } } tbnet::Connection* connection = ob_packet->get_connection(); ThreadSpecificBuffer::Buffer* thread_buffer = response_packet_buffer_.get_buffer(); if (NULL == thread_buffer) { ret = OB_ERROR; } else { thread_buffer->reset(); ObDataBuffer out_buffer(thread_buffer->current(), thread_buffer->remain()); ObResultCode result_msg; result_msg.result_code_ = ret; ret = result_msg.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // fake data cell ObCellInfo cell; ObNewScanner scanner; ObRow row; ObObj obj_a, obj_b, obj_d; ObObj str_c; ObString var_str; var_str.assign("hello", 5); row_desc_.add_column_desc(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 0); row_desc_.add_column_desc(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 1); row_desc_.add_column_desc(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 2); row_desc_.add_column_desc(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 3); obj_a.set_int(19); obj_b.set_int(2); str_c.set_varchar(var_str); obj_d.set_int(3); row_.set_row_desc(row_desc_); row_.set_cell(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 0, obj_a); row_.set_cell(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 1, obj_b); row_.set_cell(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 2, str_c); row_.set_cell(test::ObFakeTable::TABLE_ID, OB_APP_MIN_COLUMN_ID + 3, obj_d); ObString row_key; ObString column_name; char temp[256] = ""; cell.table_id_ = 101; for (uint64_t i = 0; i < 10; ++i) { const ObRowStore::StoredRow *stored_row = NULL; ASSERT_EQ(OB_SUCCESS, store_.add_row(row_, stored_row)); ASSERT_TRUE(NULL != stored_row); /* snprintf(temp, 256, "chunk_%lu_get_row_key:%lu", i, i); row_key.assign(temp, static_cast<int32_t>(strlen(temp))); printf("server:%.*s\n", row_key.length(), row_key.ptr()); cell.row_key_ = row_key; cell.column_id_ = i + 1; cell.value_.set_int(2234 + i); scanner.add_cell(cell); */ } scanner.set_is_req_fullfilled(true, 1); int32_t channel_id = ob_packet->getChannelId(); ret = scanner.serialize(out_buffer.get_data(), out_buffer.get_capacity(), out_buffer.get_position()); // ret = send_response(OB_GET_RESPONSE, 1, out_buffer, connection, channel_id); } #endif TBSYS_LOG(INFO, "handle get table result:ret[%d]", ret); return ret; }