|
@@ -17,7 +17,7 @@ Error_manager Parkspace_communicator::alloc_request(message::Parkspace_allocatio
|
|
|
if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
|
|
|
return Error_manager(PARKSPACE_ALLOC_REQUEST_INVALID,MINOR_ERROR,"车位分配请求信息错误!!!");
|
|
|
|
|
|
- if(m_alloc_table.find(request)==true)
|
|
|
+ if(m_alloc_table.find(request.command_info().time())==true)
|
|
|
return Error_manager(PARKSPACE_ALLOC_REQUEST_REPEATED,MINOR_ERROR,"车位分配请求已经存在,重复!!!");
|
|
|
//设置超时,若没有设置,默认1000
|
|
|
int timeout=request.base_info().has_timeout_ms()?request.base_info().timeout_ms():1000;
|
|
@@ -43,7 +43,7 @@ Error_manager Parkspace_communicator::alloc_request(message::Parkspace_allocatio
|
|
|
//查询到记录
|
|
|
message::Parkspace_allocation_response_msg response;
|
|
|
///查询是否存在,并且删除该记录,
|
|
|
- if(m_alloc_table.find(request,response))
|
|
|
+ if(m_alloc_table.find(request.command_info().time(),response))
|
|
|
{
|
|
|
//判断是否接收到回应,若回应信息被赋值则证明有回应
|
|
|
if (response.has_base_info() && response.has_command_info())
|
|
@@ -62,7 +62,7 @@ Error_manager Parkspace_communicator::alloc_request(message::Parkspace_allocatio
|
|
|
"parkspace alloc response msg info error");
|
|
|
}
|
|
|
result = response;
|
|
|
- m_alloc_table.erase(request);
|
|
|
+ m_alloc_table.erase(request.command_info().time());
|
|
|
|
|
|
return SUCCESS;
|
|
|
|
|
@@ -81,7 +81,7 @@ Error_manager Parkspace_communicator::alloc_request(message::Parkspace_allocatio
|
|
|
usleep(1000);
|
|
|
}while(time<double(timeout));
|
|
|
//超时,删除记录,返回错误
|
|
|
- m_alloc_table.erase(request);
|
|
|
+ m_alloc_table.erase(request.command_info().time());
|
|
|
return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"parkspace alloc request timeout");
|
|
|
|
|
|
}
|
|
@@ -98,7 +98,7 @@ Error_manager Parkspace_communicator::search_request(message::Parkspace_search_r
|
|
|
if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
|
|
|
return Error_manager(PARKSPACE_SEARCH_REQUEST_INVALID,MINOR_ERROR,"parkspace search request invalid");
|
|
|
|
|
|
- if(m_search_table.find(request)==true)
|
|
|
+ if(m_search_table.find(request.command_info().time())==true)
|
|
|
return Error_manager(PARKSPACE_SEARCH_REQUEST_REPEATED,MAJOR_ERROR," parkspace search request repeated");
|
|
|
//设置超时,若没有设置,默认1000
|
|
|
int timeout=request.base_info().has_timeout_ms()?request.base_info().timeout_ms():1000;
|
|
@@ -124,7 +124,7 @@ Error_manager Parkspace_communicator::search_request(message::Parkspace_search_r
|
|
|
//查询到记录
|
|
|
message::Parkspace_search_response_msg response;
|
|
|
///查询是否存在,并且删除该记录,
|
|
|
- if(m_search_table.find(request,response))
|
|
|
+ if(m_search_table.find(request.command_info().time(),response))
|
|
|
{
|
|
|
//判断是否接收到回应,若回应信息被赋值则证明有回应
|
|
|
if (response.has_base_info() && response.has_command_info())
|
|
@@ -143,7 +143,7 @@ Error_manager Parkspace_communicator::search_request(message::Parkspace_search_r
|
|
|
"parkspace search response msg info error");
|
|
|
}
|
|
|
result = response;
|
|
|
- m_search_table.erase(request);
|
|
|
+ m_search_table.erase(request.command_info().time());
|
|
|
if(response.has_error_manager())
|
|
|
{
|
|
|
if(response.error_manager().error_code()==0)
|
|
@@ -166,7 +166,7 @@ Error_manager Parkspace_communicator::search_request(message::Parkspace_search_r
|
|
|
usleep(1000);
|
|
|
}while(time<double(timeout));
|
|
|
//超时,删除记录,返回错误
|
|
|
- m_search_table.erase(request);
|
|
|
+ m_search_table.erase(request.command_info().time());
|
|
|
return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"parkspace search request timeout");
|
|
|
}
|
|
|
|
|
@@ -182,7 +182,7 @@ Error_manager Parkspace_communicator::release_request(message::Parkspace_release
|
|
|
if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
|
|
|
return Error_manager(PARKSPACE_RELEASE_REQUEST_INVALID,MINOR_ERROR,"parkspace release request invalid");
|
|
|
|
|
|
- if(m_release_table.find(request)==true)
|
|
|
+ if(m_release_table.find(request.command_info().time())==true)
|
|
|
return Error_manager(PARKSPACE_RELEASE_REQUEST_REPEATED,MAJOR_ERROR," parkspace release request repeated");
|
|
|
//设置超时,若没有设置,默认1000
|
|
|
int timeout=request.base_info().has_timeout_ms()?request.base_info().timeout_ms():1000;
|
|
@@ -208,7 +208,7 @@ Error_manager Parkspace_communicator::release_request(message::Parkspace_release
|
|
|
//查询到记录
|
|
|
message::Parkspace_release_response_msg response;
|
|
|
///查询是否存在,并且删除该记录,
|
|
|
- if(m_release_table.find(request,response))
|
|
|
+ if(m_release_table.find(request.command_info().time(),response))
|
|
|
{
|
|
|
//判断是否接收到回应,若回应信息被赋值则证明有回应
|
|
|
if (response.has_base_info() && response.has_command_info())
|
|
@@ -227,7 +227,7 @@ Error_manager Parkspace_communicator::release_request(message::Parkspace_release
|
|
|
"parkspace release response msg info error");
|
|
|
}
|
|
|
result = response;
|
|
|
- m_release_table.erase(request);
|
|
|
+ m_release_table.erase(request.command_info().time());
|
|
|
|
|
|
return SUCCESS;
|
|
|
|
|
@@ -246,7 +246,7 @@ Error_manager Parkspace_communicator::release_request(message::Parkspace_release
|
|
|
usleep(1000);
|
|
|
}while(time<double(timeout));
|
|
|
//超时,删除记录,返回错误
|
|
|
- m_release_table.erase(request);
|
|
|
+ m_release_table.erase(request.command_info().time());
|
|
|
return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"parkspace release request timeout");
|
|
|
}
|
|
|
|
|
@@ -263,7 +263,7 @@ Error_manager Parkspace_communicator::confirm_request(message::Parkspace_confirm
|
|
|
return Error_manager(FAILED,MINOR_ERROR,"parkspace confirm request invalid");
|
|
|
|
|
|
|
|
|
- if(m_confirm_table.find(request)==true)
|
|
|
+ if(m_confirm_table.find(request.command_info().time())==true)
|
|
|
{
|
|
|
return Error_manager(FAILED,MAJOR_ERROR," parkspace confirm request repeated");
|
|
|
}
|
|
@@ -285,7 +285,7 @@ Error_manager Parkspace_communicator::confirm_request(message::Parkspace_confirm
|
|
|
//查询到记录
|
|
|
message::Parkspace_confirm_alloc_response_msg response;
|
|
|
///查询是否存在,并且删除该记录,
|
|
|
- if(m_confirm_table.find(request,response))
|
|
|
+ if(m_confirm_table.find(request.command_info().time(),response))
|
|
|
{
|
|
|
//判断是否接收到回应,若回应信息被赋值则证明有回应
|
|
|
if (response.has_base_info() && response.has_command_info())
|
|
@@ -304,7 +304,7 @@ Error_manager Parkspace_communicator::confirm_request(message::Parkspace_confirm
|
|
|
"parkspace confirm response msg info error");
|
|
|
}
|
|
|
result = response;
|
|
|
- m_confirm_table.erase(request);
|
|
|
+ m_confirm_table.erase(request.command_info().time());
|
|
|
|
|
|
return SUCCESS;
|
|
|
|
|
@@ -323,7 +323,7 @@ Error_manager Parkspace_communicator::confirm_request(message::Parkspace_confirm
|
|
|
usleep(1000);
|
|
|
}while(time<double(timeout));
|
|
|
//超时,删除记录,返回错误
|
|
|
- m_confirm_table.erase(request);
|
|
|
+ m_confirm_table.erase(request.command_info().time());
|
|
|
return Error_manager(RESPONSE_TIMEOUT,MINOR_ERROR,"parkspace confirm request timeout");
|
|
|
}
|
|
|
|
|
@@ -355,12 +355,12 @@ Error_manager Parkspace_communicator::encapsulate_msg(Communication_message* mes
|
|
|
message::Parkspace_allocation_request_msg request;
|
|
|
request.ParseFromString(message->get_message_buf());
|
|
|
//记录数据
|
|
|
- m_alloc_table[request]=message::Parkspace_allocation_response_msg();
|
|
|
+ m_alloc_table[request.command_info().time()]=message::Parkspace_allocation_response_msg();
|
|
|
//发送请求
|
|
|
code= Communication_socket_base::encapsulate_msg(message);
|
|
|
if(code!=SUCCESS)
|
|
|
{
|
|
|
- m_alloc_table.erase(request);
|
|
|
+ m_alloc_table.erase(request.command_info().time());
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -369,12 +369,12 @@ Error_manager Parkspace_communicator::encapsulate_msg(Communication_message* mes
|
|
|
message::Parkspace_search_request_msg request;
|
|
|
request.ParseFromString(message->get_message_buf());
|
|
|
//记录数据
|
|
|
- m_search_table[request]=message::Parkspace_search_response_msg();
|
|
|
+ m_search_table[request.command_info().time()]=message::Parkspace_search_response_msg();
|
|
|
//发送请求
|
|
|
code= Communication_socket_base::encapsulate_msg(message);
|
|
|
if(code!=SUCCESS)
|
|
|
{
|
|
|
- m_search_table.erase(request);
|
|
|
+ m_search_table.erase(request.command_info().time());
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -383,12 +383,12 @@ Error_manager Parkspace_communicator::encapsulate_msg(Communication_message* mes
|
|
|
message::Parkspace_release_request_msg request;
|
|
|
request.ParseFromString(message->get_message_buf());
|
|
|
//记录数据
|
|
|
- m_release_table[request]=message::Parkspace_release_response_msg();
|
|
|
+ m_release_table[request.command_info().time()]=message::Parkspace_release_response_msg();
|
|
|
//发送请求
|
|
|
code= Communication_socket_base::encapsulate_msg(message);
|
|
|
if(code!=SUCCESS)
|
|
|
{
|
|
|
- m_release_table.erase(request);
|
|
|
+ m_release_table.erase(request.command_info().time());
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -398,12 +398,12 @@ Error_manager Parkspace_communicator::encapsulate_msg(Communication_message* mes
|
|
|
request.ParseFromString(message->get_message_buf());
|
|
|
//记录数据
|
|
|
LOG(INFO)<<" Add request : "<<request.command_info().DebugString();
|
|
|
- m_confirm_table[request]=message::Parkspace_confirm_alloc_response_msg();
|
|
|
+ m_confirm_table[request.command_info().time()]=message::Parkspace_confirm_alloc_response_msg();
|
|
|
//发送请求
|
|
|
code= Communication_socket_base::encapsulate_msg(message);
|
|
|
if(code!=SUCCESS)
|
|
|
{
|
|
|
- m_confirm_table.erase(request);
|
|
|
+ m_confirm_table.erase(request.command_info().time());
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -427,9 +427,9 @@ Error_manager Parkspace_communicator::execute_msg(Communication_message* p_msg)
|
|
|
{
|
|
|
message::Parkspace_allocation_response_msg response;
|
|
|
response.ParseFromString(p_msg->get_message_buf());
|
|
|
- message::Parkspace_allocation_request_msg request=create_request_by_response(response);
|
|
|
+
|
|
|
///查询请求表是否存在,并且更新
|
|
|
- if(m_alloc_table.find_update(request,response)==false)
|
|
|
+ if(m_alloc_table.find_update(response.command_info().time(),response)==false)
|
|
|
{
|
|
|
return Error_manager(PARKSPACE_ALLOCMSG_RESPONSE_HAS_NO_REQUEST,NEGLIGIBLE_ERROR,"parkspace alloc response without request");
|
|
|
}
|
|
@@ -443,9 +443,8 @@ Error_manager Parkspace_communicator::execute_msg(Communication_message* p_msg)
|
|
|
{
|
|
|
return Error_manager(ERROR,CRITICAL_ERROR,"parkspace search response 解析失败");
|
|
|
}
|
|
|
- message::Parkspace_search_request_msg request=create_request_by_response(response);
|
|
|
///查询请求表是否存在,并且更新
|
|
|
- if(m_search_table.find_update(request,response)==false)
|
|
|
+ if(m_search_table.find_update(response.command_info().time(),response)==false)
|
|
|
{
|
|
|
return Error_manager(PARKSPACE_SEARCHMSG_RESPONSE_HAS_NO_REQUEST,NEGLIGIBLE_ERROR,"parkspace search response without request");
|
|
|
}
|
|
@@ -455,9 +454,8 @@ Error_manager Parkspace_communicator::execute_msg(Communication_message* p_msg)
|
|
|
{
|
|
|
message::Parkspace_release_response_msg response;
|
|
|
response.ParseFromString(p_msg->get_message_buf());
|
|
|
- message::Parkspace_release_request_msg request=create_request_by_response(response);
|
|
|
///查询请求表是否存在,并且更新
|
|
|
- if(m_release_table.find_update(request,response)==false)
|
|
|
+ if(m_release_table.find_update(response.command_info().time(),response)==false)
|
|
|
{
|
|
|
return Error_manager(PARKSPACE_RELEASEMSG_RESPONSE_HAS_NO_REQUEST,NEGLIGIBLE_ERROR,"parkspace release response without request");
|
|
|
}
|
|
@@ -468,9 +466,8 @@ Error_manager Parkspace_communicator::execute_msg(Communication_message* p_msg)
|
|
|
{
|
|
|
message::Parkspace_confirm_alloc_response_msg response;
|
|
|
response.ParseFromString(p_msg->get_message_buf());
|
|
|
- message::Parkspace_confirm_alloc_request_msg request=create_request_by_response(response);
|
|
|
///查询请求表是否存在,并且更新
|
|
|
- if(m_confirm_table.find_update(request,response)==true)
|
|
|
+ if(m_confirm_table.find_update(response.command_info().time(),response)==true)
|
|
|
{
|
|
|
return SUCCESS;
|
|
|
}
|
|
@@ -526,60 +523,3 @@ Error_manager Parkspace_communicator::check_executer(Communication_message* p_ms
|
|
|
{
|
|
|
return SUCCESS;
|
|
|
}
|
|
|
-
|
|
|
-/*
|
|
|
- * 根据接收到的response,生成对应的 request
|
|
|
- */
|
|
|
-message::Parkspace_allocation_request_msg
|
|
|
-Parkspace_communicator::create_request_by_response(message::Parkspace_allocation_response_msg& response)
|
|
|
-{
|
|
|
- message::Parkspace_allocation_request_msg request;
|
|
|
- message::Base_info baseInfo;
|
|
|
- baseInfo.set_msg_type(message::eParkspace_allocation_request_msg);
|
|
|
- baseInfo.set_sender(response.base_info().receiver());
|
|
|
- baseInfo.set_receiver(response.base_info().sender());
|
|
|
- request.mutable_base_info()->CopyFrom(baseInfo);
|
|
|
- request.mutable_command_info()->CopyFrom(response.command_info());
|
|
|
- return request;
|
|
|
-}
|
|
|
-
|
|
|
-message::Parkspace_search_request_msg
|
|
|
-Parkspace_communicator::create_request_by_response(message::Parkspace_search_response_msg& response)
|
|
|
-{
|
|
|
- message::Parkspace_search_request_msg request;
|
|
|
- message::Base_info baseInfo;
|
|
|
- baseInfo.set_msg_type(message::eParkspace_search_request_msg);
|
|
|
- baseInfo.set_sender(response.base_info().receiver());
|
|
|
- baseInfo.set_receiver(response.base_info().sender());
|
|
|
- request.mutable_base_info()->CopyFrom(baseInfo);
|
|
|
- request.mutable_command_info()->CopyFrom(response.command_info());
|
|
|
-
|
|
|
-
|
|
|
- return request;
|
|
|
-}
|
|
|
-
|
|
|
-message::Parkspace_release_request_msg
|
|
|
-Parkspace_communicator::create_request_by_response(message::Parkspace_release_response_msg& response)
|
|
|
-{
|
|
|
- message::Parkspace_release_request_msg request;
|
|
|
- message::Base_info baseInfo;
|
|
|
- baseInfo.set_msg_type(message::eParkspace_release_request_msg);
|
|
|
- baseInfo.set_sender(response.base_info().sender());
|
|
|
- baseInfo.set_receiver(response.base_info().receiver());
|
|
|
- request.mutable_base_info()->CopyFrom(baseInfo);
|
|
|
- request.mutable_command_info()->CopyFrom(response.command_info());
|
|
|
- return request;
|
|
|
-}
|
|
|
-
|
|
|
-message::Parkspace_confirm_alloc_request_msg
|
|
|
-Parkspace_communicator::create_request_by_response(message::Parkspace_confirm_alloc_response_msg& response)
|
|
|
-{
|
|
|
- message::Parkspace_confirm_alloc_request_msg request;
|
|
|
- message::Base_info baseInfo;
|
|
|
- baseInfo.set_msg_type(message::eParkspace_confirm_alloc_request_msg);
|
|
|
- baseInfo.set_sender(response.base_info().sender());
|
|
|
- baseInfo.set_receiver(response.base_info().receiver());
|
|
|
- request.mutable_base_info()->CopyFrom(baseInfo);
|
|
|
- request.mutable_command_info()->CopyFrom(response.command_info());
|
|
|
- return request;
|
|
|
-}
|