Add a new interface for asynchronous image translation.

This commit is contained in:
sdk-team
2020-10-19 12:14:21 +00:00
parent 9fd70bc2bf
commit 675ab8f60f
12 changed files with 581 additions and 0 deletions

View File

@@ -87,6 +87,42 @@ AlimtClient::CreateDocTranslateTaskOutcomeCallable AlimtClient::createDocTransla
return task->get_future();
}
AlimtClient::CreateImageTranslateTaskOutcome AlimtClient::createImageTranslateTask(const CreateImageTranslateTaskRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return CreateImageTranslateTaskOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return CreateImageTranslateTaskOutcome(CreateImageTranslateTaskResult(outcome.result()));
else
return CreateImageTranslateTaskOutcome(outcome.error());
}
void AlimtClient::createImageTranslateTaskAsync(const CreateImageTranslateTaskRequest& request, const CreateImageTranslateTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, createImageTranslateTask(request), context);
};
asyncExecute(new Runnable(fn));
}
AlimtClient::CreateImageTranslateTaskOutcomeCallable AlimtClient::createImageTranslateTaskCallable(const CreateImageTranslateTaskRequest &request) const
{
auto task = std::make_shared<std::packaged_task<CreateImageTranslateTaskOutcome()>>(
[this, request]()
{
return this->createImageTranslateTask(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
AlimtClient::GetDetectLanguageOutcome AlimtClient::getDetectLanguage(const GetDetectLanguageRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -231,6 +267,42 @@ AlimtClient::GetImageTranslateOutcomeCallable AlimtClient::getImageTranslateCall
return task->get_future();
}
AlimtClient::GetImageTranslateTaskOutcome AlimtClient::getImageTranslateTask(const GetImageTranslateTaskRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return GetImageTranslateTaskOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return GetImageTranslateTaskOutcome(GetImageTranslateTaskResult(outcome.result()));
else
return GetImageTranslateTaskOutcome(outcome.error());
}
void AlimtClient::getImageTranslateTaskAsync(const GetImageTranslateTaskRequest& request, const GetImageTranslateTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, getImageTranslateTask(request), context);
};
asyncExecute(new Runnable(fn));
}
AlimtClient::GetImageTranslateTaskOutcomeCallable AlimtClient::getImageTranslateTaskCallable(const GetImageTranslateTaskRequest &request) const
{
auto task = std::make_shared<std::packaged_task<GetImageTranslateTaskOutcome()>>(
[this, request]()
{
return this->getImageTranslateTask(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
AlimtClient::GetTitleDiagnoseOutcome AlimtClient::getTitleDiagnose(const GetTitleDiagnoseRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();

View File

@@ -0,0 +1,84 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/alimt/model/CreateImageTranslateTaskRequest.h>
using AlibabaCloud::Alimt::Model::CreateImageTranslateTaskRequest;
CreateImageTranslateTaskRequest::CreateImageTranslateTaskRequest() :
RpcServiceRequest("alimt", "2018-10-12", "CreateImageTranslateTask")
{
setMethod(HttpRequest::Method::Post);
}
CreateImageTranslateTaskRequest::~CreateImageTranslateTaskRequest()
{}
std::string CreateImageTranslateTaskRequest::getSourceLanguage()const
{
return sourceLanguage_;
}
void CreateImageTranslateTaskRequest::setSourceLanguage(const std::string& sourceLanguage)
{
sourceLanguage_ = sourceLanguage;
setBodyParameter("SourceLanguage", sourceLanguage);
}
std::string CreateImageTranslateTaskRequest::getClientToken()const
{
return clientToken_;
}
void CreateImageTranslateTaskRequest::setClientToken(const std::string& clientToken)
{
clientToken_ = clientToken;
setBodyParameter("ClientToken", clientToken);
}
std::string CreateImageTranslateTaskRequest::getUrlList()const
{
return urlList_;
}
void CreateImageTranslateTaskRequest::setUrlList(const std::string& urlList)
{
urlList_ = urlList;
setBodyParameter("UrlList", urlList);
}
std::string CreateImageTranslateTaskRequest::getExtra()const
{
return extra_;
}
void CreateImageTranslateTaskRequest::setExtra(const std::string& extra)
{
extra_ = extra;
setBodyParameter("Extra", extra);
}
std::string CreateImageTranslateTaskRequest::getTargetLanguage()const
{
return targetLanguage_;
}
void CreateImageTranslateTaskRequest::setTargetLanguage(const std::string& targetLanguage)
{
targetLanguage_ = targetLanguage;
setBodyParameter("TargetLanguage", targetLanguage);
}

View File

@@ -0,0 +1,66 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/alimt/model/CreateImageTranslateTaskResult.h>
#include <json/json.h>
using namespace AlibabaCloud::Alimt;
using namespace AlibabaCloud::Alimt::Model;
CreateImageTranslateTaskResult::CreateImageTranslateTaskResult() :
ServiceResult()
{}
CreateImageTranslateTaskResult::CreateImageTranslateTaskResult(const std::string &payload) :
ServiceResult()
{
parse(payload);
}
CreateImageTranslateTaskResult::~CreateImageTranslateTaskResult()
{}
void CreateImageTranslateTaskResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto dataNode = value["Data"];
if(!dataNode["TaskId"].isNull())
data_.taskId = dataNode["TaskId"].asString();
if(!value["Code"].isNull())
code_ = std::stoi(value["Code"].asString());
if(!value["Message"].isNull())
message_ = value["Message"].asString();
}
std::string CreateImageTranslateTaskResult::getMessage()const
{
return message_;
}
CreateImageTranslateTaskResult::Data CreateImageTranslateTaskResult::getData()const
{
return data_;
}
int CreateImageTranslateTaskResult::getCode()const
{
return code_;
}

View File

@@ -0,0 +1,40 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/alimt/model/GetImageTranslateTaskRequest.h>
using AlibabaCloud::Alimt::Model::GetImageTranslateTaskRequest;
GetImageTranslateTaskRequest::GetImageTranslateTaskRequest() :
RpcServiceRequest("alimt", "2018-10-12", "GetImageTranslateTask")
{
setMethod(HttpRequest::Method::Post);
}
GetImageTranslateTaskRequest::~GetImageTranslateTaskRequest()
{}
std::string GetImageTranslateTaskRequest::getTaskId()const
{
return taskId_;
}
void GetImageTranslateTaskRequest::setTaskId(const std::string& taskId)
{
taskId_ = taskId;
setBodyParameter("TaskId", taskId);
}

View File

@@ -0,0 +1,66 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/alimt/model/GetImageTranslateTaskResult.h>
#include <json/json.h>
using namespace AlibabaCloud::Alimt;
using namespace AlibabaCloud::Alimt::Model;
GetImageTranslateTaskResult::GetImageTranslateTaskResult() :
ServiceResult()
{}
GetImageTranslateTaskResult::GetImageTranslateTaskResult(const std::string &payload) :
ServiceResult()
{
parse(payload);
}
GetImageTranslateTaskResult::~GetImageTranslateTaskResult()
{}
void GetImageTranslateTaskResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto dataNode = value["Data"];
if(!dataNode["ImageData"].isNull())
data_.imageData = dataNode["ImageData"].asString();
if(!value["Code"].isNull())
code_ = std::stoi(value["Code"].asString());
if(!value["Message"].isNull())
message_ = value["Message"].asString();
}
std::string GetImageTranslateTaskResult::getMessage()const
{
return message_;
}
GetImageTranslateTaskResult::Data GetImageTranslateTaskResult::getData()const
{
return data_;
}
int GetImageTranslateTaskResult::getCode()const
{
return code_;
}