This commit is contained in:
aozhiwei 2022-03-24 13:43:26 +08:00
parent a1204c1dca
commit 979806c56c

View File

@ -778,7 +778,7 @@ void RoomMgr::SendGetBattleData(std::vector<std::shared_ptr<cs::CMJoin>>& join_m
if (join_msgs.empty()) {
abort();
}
std::vector<BattleDataContext> result;
std::shared_ptr<std::vector<BattleDataContext>> result = std::make_shared<std::vector<BattleDataContext>>();
bool is_old_version = false;
for (auto& msg : join_msgs) {
if (msg->proto_version() < 2022032201) {
@ -787,11 +787,12 @@ void RoomMgr::SendGetBattleData(std::vector<std::shared_ptr<cs::CMJoin>>& join_m
}
BattleDataContext context;
context.join_msg = msg;
result.push_back(context);
result->push_back(context);
}
if (is_old_version) {
cb(result);
cb(*result);
}
{
std::string url;
JsonDataMgr::Instance()->GetApiUrl(url);
if (!f8::IsOnlineEnv()) {
@ -809,15 +810,31 @@ void RoomMgr::SendGetBattleData(std::vector<std::shared_ptr<cs::CMJoin>>& join_m
a8::MutableXObject* url_params = a8::MutableXObject::NewObject();
HttpProxy::Instance()->HttpGet
(
a8::XParams(),
a8::XParams()
.SetSender(new std::shared_ptr<std::vector<BattleDataContext>>(result))
.SetParam1(new std::function<
void(std::vector<BattleDataContext>&)>(cb)),
[] (a8::XParams& param, a8::XObject& data)
{
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
auto cb = (std::function<
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
(*cb)(*result->get());
delete cb;
delete result;
},
[] (a8::XParams& param, const std::string& response)
{
auto result = (std::shared_ptr<std::vector<BattleDataContext>>*)param.sender.GetUserData();
auto cb = (std::function<
void(std::vector<BattleDataContext>&)>*)param.param1.GetUserData();
(*cb)(*result->get());
delete cb;
delete result;
},
url.c_str(),
*url_params
);
delete url_params;
}
}