Supported API MassPush for Push Message or Notice.

This commit is contained in:
sdk-team
2019-10-08 16:31:12 +08:00
parent 032fbad258
commit 009add7f30
9 changed files with 355 additions and 4 deletions

View File

@@ -31,21 +31,21 @@ PushClient::PushClient(const Credentials &credentials, const ClientConfiguration
RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
{
auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "push");
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
}
PushClient::PushClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
{
auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "push");
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
}
PushClient::PushClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
{
auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "push");
endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
}
PushClient::~PushClient()
@@ -375,6 +375,42 @@ PushClient::ListTagsOutcomeCallable PushClient::listTagsCallable(const ListTagsR
return task->get_future();
}
PushClient::MassPushOutcome PushClient::massPush(const MassPushRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return MassPushOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return MassPushOutcome(MassPushResult(outcome.result()));
else
return MassPushOutcome(outcome.error());
}
void PushClient::massPushAsync(const MassPushRequest& request, const MassPushAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, massPush(request), context);
};
asyncExecute(new Runnable(fn));
}
PushClient::MassPushOutcomeCallable PushClient::massPushCallable(const MassPushRequest &request) const
{
auto task = std::make_shared<std::packaged_task<MassPushOutcome()>>(
[this, request]()
{
return this->massPush(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
PushClient::PushOutcome PushClient::push(const PushRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();