diff --git a/CHANGELOG b/CHANGELOG
index 74bd76d12..8cdc78c1a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+2021-04-08 Version: 1.36.670
+- Release DetectVideoIPCObject.
+
2021-04-06 Version: 1.36.669
- Release MonitorExamination.
diff --git a/VERSION b/VERSION
index 172aa948e..be94fbc8c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.36.669
\ No newline at end of file
+1.36.670
\ No newline at end of file
diff --git a/objectdet/2019-12-30/ClassifyVehicleInsurance.xml b/objectdet/2019-12-30/ClassifyVehicleInsurance.xml
new file mode 100644
index 000000000..6756ae021
--- /dev/null
+++ b/objectdet/2019-12-30/ClassifyVehicleInsurance.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectIPCObject.xml b/objectdet/2019-12-30/DetectIPCObject.xml
new file mode 100644
index 000000000..441b2fed4
--- /dev/null
+++ b/objectdet/2019-12-30/DetectIPCObject.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectMainBody.xml b/objectdet/2019-12-30/DetectMainBody.xml
new file mode 100644
index 000000000..e6327e7a6
--- /dev/null
+++ b/objectdet/2019-12-30/DetectMainBody.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectObject.xml b/objectdet/2019-12-30/DetectObject.xml
new file mode 100644
index 000000000..6de557d9b
--- /dev/null
+++ b/objectdet/2019-12-30/DetectObject.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectTransparentImage.xml b/objectdet/2019-12-30/DetectTransparentImage.xml
new file mode 100644
index 000000000..c00090577
--- /dev/null
+++ b/objectdet/2019-12-30/DetectTransparentImage.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectVehicle.xml b/objectdet/2019-12-30/DetectVehicle.xml
new file mode 100644
index 000000000..ec0051d95
--- /dev/null
+++ b/objectdet/2019-12-30/DetectVehicle.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectVehicleICongestion.xml b/objectdet/2019-12-30/DetectVehicleICongestion.xml
new file mode 100644
index 000000000..deb8ae866
--- /dev/null
+++ b/objectdet/2019-12-30/DetectVehicleICongestion.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectVehicleIllegalParking.xml b/objectdet/2019-12-30/DetectVehicleIllegalParking.xml
new file mode 100644
index 000000000..b396750fc
--- /dev/null
+++ b/objectdet/2019-12-30/DetectVehicleIllegalParking.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectVideoIPCObject.xml b/objectdet/2019-12-30/DetectVideoIPCObject.xml
new file mode 100644
index 000000000..ee169ff03
--- /dev/null
+++ b/objectdet/2019-12-30/DetectVideoIPCObject.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/DetectWhiteBaseImage.xml b/objectdet/2019-12-30/DetectWhiteBaseImage.xml
new file mode 100644
index 000000000..e191050ec
--- /dev/null
+++ b/objectdet/2019-12-30/DetectWhiteBaseImage.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/GenerateVehicleRepairPlan.xml b/objectdet/2019-12-30/GenerateVehicleRepairPlan.xml
new file mode 100644
index 000000000..8424b1ead
--- /dev/null
+++ b/objectdet/2019-12-30/GenerateVehicleRepairPlan.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/GetAsyncJobResult.xml b/objectdet/2019-12-30/GetAsyncJobResult.xml
new file mode 100644
index 000000000..0a1def641
--- /dev/null
+++ b/objectdet/2019-12-30/GetAsyncJobResult.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/GetVehicleRepairPlan.xml b/objectdet/2019-12-30/GetVehicleRepairPlan.xml
new file mode 100644
index 000000000..a3a8bc854
--- /dev/null
+++ b/objectdet/2019-12-30/GetVehicleRepairPlan.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/RecognizeVehicleDamage.xml b/objectdet/2019-12-30/RecognizeVehicleDamage.xml
new file mode 100644
index 000000000..592f2e5fa
--- /dev/null
+++ b/objectdet/2019-12-30/RecognizeVehicleDamage.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/RecognizeVehicleDashboard.xml b/objectdet/2019-12-30/RecognizeVehicleDashboard.xml
new file mode 100644
index 000000000..c79516bcf
--- /dev/null
+++ b/objectdet/2019-12-30/RecognizeVehicleDashboard.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/2019-12-30/RecognizeVehicleParts.xml b/objectdet/2019-12-30/RecognizeVehicleParts.xml
new file mode 100644
index 000000000..3e111ac73
--- /dev/null
+++ b/objectdet/2019-12-30/RecognizeVehicleParts.xml
@@ -0,0 +1 @@
+
diff --git a/objectdet/CMakeLists.txt b/objectdet/CMakeLists.txt
index b016a8c0a..e86d5b7d8 100644
--- a/objectdet/CMakeLists.txt
+++ b/objectdet/CMakeLists.txt
@@ -37,10 +37,14 @@ set(objectdet_public_header_model
include/alibabacloud/objectdet/model/DetectVehicleICongestionResult.h
include/alibabacloud/objectdet/model/DetectVehicleIllegalParkingRequest.h
include/alibabacloud/objectdet/model/DetectVehicleIllegalParkingResult.h
+ include/alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h
+ include/alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h
include/alibabacloud/objectdet/model/DetectWhiteBaseImageRequest.h
include/alibabacloud/objectdet/model/DetectWhiteBaseImageResult.h
include/alibabacloud/objectdet/model/GenerateVehicleRepairPlanRequest.h
include/alibabacloud/objectdet/model/GenerateVehicleRepairPlanResult.h
+ include/alibabacloud/objectdet/model/GetAsyncJobResultRequest.h
+ include/alibabacloud/objectdet/model/GetAsyncJobResultResult.h
include/alibabacloud/objectdet/model/GetVehicleRepairPlanRequest.h
include/alibabacloud/objectdet/model/GetVehicleRepairPlanResult.h
include/alibabacloud/objectdet/model/RecognizeVehicleDamageRequest.h
@@ -68,10 +72,14 @@ set(objectdet_src
src/model/DetectVehicleICongestionResult.cc
src/model/DetectVehicleIllegalParkingRequest.cc
src/model/DetectVehicleIllegalParkingResult.cc
+ src/model/DetectVideoIPCObjectRequest.cc
+ src/model/DetectVideoIPCObjectResult.cc
src/model/DetectWhiteBaseImageRequest.cc
src/model/DetectWhiteBaseImageResult.cc
src/model/GenerateVehicleRepairPlanRequest.cc
src/model/GenerateVehicleRepairPlanResult.cc
+ src/model/GetAsyncJobResultRequest.cc
+ src/model/GetAsyncJobResultResult.cc
src/model/GetVehicleRepairPlanRequest.cc
src/model/GetVehicleRepairPlanResult.cc
src/model/RecognizeVehicleDamageRequest.cc
diff --git a/objectdet/include/alibabacloud/objectdet/ObjectdetClient.h b/objectdet/include/alibabacloud/objectdet/ObjectdetClient.h
index 5ae02b33f..552c4e4e0 100644
--- a/objectdet/include/alibabacloud/objectdet/ObjectdetClient.h
+++ b/objectdet/include/alibabacloud/objectdet/ObjectdetClient.h
@@ -38,10 +38,14 @@
#include "model/DetectVehicleICongestionResult.h"
#include "model/DetectVehicleIllegalParkingRequest.h"
#include "model/DetectVehicleIllegalParkingResult.h"
+#include "model/DetectVideoIPCObjectRequest.h"
+#include "model/DetectVideoIPCObjectResult.h"
#include "model/DetectWhiteBaseImageRequest.h"
#include "model/DetectWhiteBaseImageResult.h"
#include "model/GenerateVehicleRepairPlanRequest.h"
#include "model/GenerateVehicleRepairPlanResult.h"
+#include "model/GetAsyncJobResultRequest.h"
+#include "model/GetAsyncJobResultResult.h"
#include "model/GetVehicleRepairPlanRequest.h"
#include "model/GetVehicleRepairPlanResult.h"
#include "model/RecognizeVehicleDamageRequest.h"
@@ -83,12 +87,18 @@ namespace AlibabaCloud
typedef Outcome DetectVehicleIllegalParkingOutcome;
typedef std::future DetectVehicleIllegalParkingOutcomeCallable;
typedef std::function&)> DetectVehicleIllegalParkingAsyncHandler;
+ typedef Outcome DetectVideoIPCObjectOutcome;
+ typedef std::future DetectVideoIPCObjectOutcomeCallable;
+ typedef std::function&)> DetectVideoIPCObjectAsyncHandler;
typedef Outcome DetectWhiteBaseImageOutcome;
typedef std::future DetectWhiteBaseImageOutcomeCallable;
typedef std::function&)> DetectWhiteBaseImageAsyncHandler;
typedef Outcome GenerateVehicleRepairPlanOutcome;
typedef std::future GenerateVehicleRepairPlanOutcomeCallable;
typedef std::function&)> GenerateVehicleRepairPlanAsyncHandler;
+ typedef Outcome GetAsyncJobResultOutcome;
+ typedef std::future GetAsyncJobResultOutcomeCallable;
+ typedef std::function&)> GetAsyncJobResultAsyncHandler;
typedef Outcome GetVehicleRepairPlanOutcome;
typedef std::future GetVehicleRepairPlanOutcomeCallable;
typedef std::function&)> GetVehicleRepairPlanAsyncHandler;
@@ -130,12 +140,18 @@ namespace AlibabaCloud
DetectVehicleIllegalParkingOutcome detectVehicleIllegalParking(const Model::DetectVehicleIllegalParkingRequest &request)const;
void detectVehicleIllegalParkingAsync(const Model::DetectVehicleIllegalParkingRequest& request, const DetectVehicleIllegalParkingAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
DetectVehicleIllegalParkingOutcomeCallable detectVehicleIllegalParkingCallable(const Model::DetectVehicleIllegalParkingRequest& request) const;
+ DetectVideoIPCObjectOutcome detectVideoIPCObject(const Model::DetectVideoIPCObjectRequest &request)const;
+ void detectVideoIPCObjectAsync(const Model::DetectVideoIPCObjectRequest& request, const DetectVideoIPCObjectAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
+ DetectVideoIPCObjectOutcomeCallable detectVideoIPCObjectCallable(const Model::DetectVideoIPCObjectRequest& request) const;
DetectWhiteBaseImageOutcome detectWhiteBaseImage(const Model::DetectWhiteBaseImageRequest &request)const;
void detectWhiteBaseImageAsync(const Model::DetectWhiteBaseImageRequest& request, const DetectWhiteBaseImageAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
DetectWhiteBaseImageOutcomeCallable detectWhiteBaseImageCallable(const Model::DetectWhiteBaseImageRequest& request) const;
GenerateVehicleRepairPlanOutcome generateVehicleRepairPlan(const Model::GenerateVehicleRepairPlanRequest &request)const;
void generateVehicleRepairPlanAsync(const Model::GenerateVehicleRepairPlanRequest& request, const GenerateVehicleRepairPlanAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
GenerateVehicleRepairPlanOutcomeCallable generateVehicleRepairPlanCallable(const Model::GenerateVehicleRepairPlanRequest& request) const;
+ GetAsyncJobResultOutcome getAsyncJobResult(const Model::GetAsyncJobResultRequest &request)const;
+ void getAsyncJobResultAsync(const Model::GetAsyncJobResultRequest& request, const GetAsyncJobResultAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
+ GetAsyncJobResultOutcomeCallable getAsyncJobResultCallable(const Model::GetAsyncJobResultRequest& request) const;
GetVehicleRepairPlanOutcome getVehicleRepairPlan(const Model::GetVehicleRepairPlanRequest &request)const;
void getVehicleRepairPlanAsync(const Model::GetVehicleRepairPlanRequest& request, const GetVehicleRepairPlanAsyncHandler& handler, const std::shared_ptr& context = nullptr) const;
GetVehicleRepairPlanOutcomeCallable getVehicleRepairPlanCallable(const Model::GetVehicleRepairPlanRequest& request) const;
diff --git a/objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h b/objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h
index e7dec2ac5..b5690a173 100644
--- a/objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h
+++ b/objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h
@@ -36,6 +36,7 @@ namespace AlibabaCloud
{
struct Element
{
+ float targetRate;
float score;
std::string type;
std::vector box;
diff --git a/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h b/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h
new file mode 100644
index 000000000..78353cb83
--- /dev/null
+++ b/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTREQUEST_H_
+#define ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTREQUEST_H_
+
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Objectdet
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_OBJECTDET_EXPORT DetectVideoIPCObjectRequest : public RpcServiceRequest
+ {
+
+ public:
+ DetectVideoIPCObjectRequest();
+ ~DetectVideoIPCObjectRequest();
+
+ bool getAsync()const;
+ void setAsync(bool async);
+ std::string getVideoURL()const;
+ void setVideoURL(const std::string& videoURL);
+
+ private:
+ bool async_;
+ std::string videoURL_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTREQUEST_H_
\ No newline at end of file
diff --git a/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h b/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h
new file mode 100644
index 000000000..74ef83588
--- /dev/null
+++ b/objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTRESULT_H_
+#define ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTRESULT_H_
+
+#include
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Objectdet
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_OBJECTDET_EXPORT DetectVideoIPCObjectResult : public ServiceResult
+ {
+ public:
+ struct Data
+ {
+ struct Frame
+ {
+ struct ElementsItem
+ {
+ float score;
+ std::string type;
+ long x;
+ long y;
+ long height;
+ long width;
+ };
+ long time;
+ std::vector elements;
+ };
+ std::vector frames;
+ long height;
+ long width;
+ };
+
+
+ DetectVideoIPCObjectResult();
+ explicit DetectVideoIPCObjectResult(const std::string &payload);
+ ~DetectVideoIPCObjectResult();
+ std::string getMessage()const;
+ Data getData()const;
+ std::string getCode()const;
+
+ protected:
+ void parse(const std::string &payload);
+ private:
+ std::string message_;
+ Data data_;
+ std::string code_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_OBJECTDET_MODEL_DETECTVIDEOIPCOBJECTRESULT_H_
\ No newline at end of file
diff --git a/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultRequest.h b/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultRequest.h
new file mode 100644
index 000000000..5f61b311c
--- /dev/null
+++ b/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultRequest.h
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTREQUEST_H_
+#define ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTREQUEST_H_
+
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Objectdet
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_OBJECTDET_EXPORT GetAsyncJobResultRequest : public RpcServiceRequest
+ {
+
+ public:
+ GetAsyncJobResultRequest();
+ ~GetAsyncJobResultRequest();
+
+ std::string getJobId()const;
+ void setJobId(const std::string& jobId);
+ bool getAsync()const;
+ void setAsync(bool async);
+
+ private:
+ std::string jobId_;
+ bool async_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTREQUEST_H_
\ No newline at end of file
diff --git a/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultResult.h b/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultResult.h
new file mode 100644
index 000000000..e14bd3305
--- /dev/null
+++ b/objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultResult.h
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTRESULT_H_
+#define ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTRESULT_H_
+
+#include
+#include
+#include
+#include
+#include
+
+namespace AlibabaCloud
+{
+ namespace Objectdet
+ {
+ namespace Model
+ {
+ class ALIBABACLOUD_OBJECTDET_EXPORT GetAsyncJobResultResult : public ServiceResult
+ {
+ public:
+ struct Data
+ {
+ std::string status;
+ std::string errorCode;
+ std::string errorMessage;
+ std::string jobId;
+ std::string result;
+ };
+
+
+ GetAsyncJobResultResult();
+ explicit GetAsyncJobResultResult(const std::string &payload);
+ ~GetAsyncJobResultResult();
+ Data getData()const;
+
+ protected:
+ void parse(const std::string &payload);
+ private:
+ Data data_;
+
+ };
+ }
+ }
+}
+#endif // !ALIBABACLOUD_OBJECTDET_MODEL_GETASYNCJOBRESULTRESULT_H_
\ No newline at end of file
diff --git a/objectdet/src/ObjectdetClient.cc b/objectdet/src/ObjectdetClient.cc
index 123cb64f5..5cd8971e1 100644
--- a/objectdet/src/ObjectdetClient.cc
+++ b/objectdet/src/ObjectdetClient.cc
@@ -339,6 +339,42 @@ ObjectdetClient::DetectVehicleIllegalParkingOutcomeCallable ObjectdetClient::det
return task->get_future();
}
+ObjectdetClient::DetectVideoIPCObjectOutcome ObjectdetClient::detectVideoIPCObject(const DetectVideoIPCObjectRequest &request) const
+{
+ auto endpointOutcome = endpointProvider_->getEndpoint();
+ if (!endpointOutcome.isSuccess())
+ return DetectVideoIPCObjectOutcome(endpointOutcome.error());
+
+ auto outcome = makeRequest(endpointOutcome.result(), request);
+
+ if (outcome.isSuccess())
+ return DetectVideoIPCObjectOutcome(DetectVideoIPCObjectResult(outcome.result()));
+ else
+ return DetectVideoIPCObjectOutcome(outcome.error());
+}
+
+void ObjectdetClient::detectVideoIPCObjectAsync(const DetectVideoIPCObjectRequest& request, const DetectVideoIPCObjectAsyncHandler& handler, const std::shared_ptr& context) const
+{
+ auto fn = [this, request, handler, context]()
+ {
+ handler(this, request, detectVideoIPCObject(request), context);
+ };
+
+ asyncExecute(new Runnable(fn));
+}
+
+ObjectdetClient::DetectVideoIPCObjectOutcomeCallable ObjectdetClient::detectVideoIPCObjectCallable(const DetectVideoIPCObjectRequest &request) const
+{
+ auto task = std::make_shared>(
+ [this, request]()
+ {
+ return this->detectVideoIPCObject(request);
+ });
+
+ asyncExecute(new Runnable([task]() { (*task)(); }));
+ return task->get_future();
+}
+
ObjectdetClient::DetectWhiteBaseImageOutcome ObjectdetClient::detectWhiteBaseImage(const DetectWhiteBaseImageRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -411,6 +447,42 @@ ObjectdetClient::GenerateVehicleRepairPlanOutcomeCallable ObjectdetClient::gener
return task->get_future();
}
+ObjectdetClient::GetAsyncJobResultOutcome ObjectdetClient::getAsyncJobResult(const GetAsyncJobResultRequest &request) const
+{
+ auto endpointOutcome = endpointProvider_->getEndpoint();
+ if (!endpointOutcome.isSuccess())
+ return GetAsyncJobResultOutcome(endpointOutcome.error());
+
+ auto outcome = makeRequest(endpointOutcome.result(), request);
+
+ if (outcome.isSuccess())
+ return GetAsyncJobResultOutcome(GetAsyncJobResultResult(outcome.result()));
+ else
+ return GetAsyncJobResultOutcome(outcome.error());
+}
+
+void ObjectdetClient::getAsyncJobResultAsync(const GetAsyncJobResultRequest& request, const GetAsyncJobResultAsyncHandler& handler, const std::shared_ptr& context) const
+{
+ auto fn = [this, request, handler, context]()
+ {
+ handler(this, request, getAsyncJobResult(request), context);
+ };
+
+ asyncExecute(new Runnable(fn));
+}
+
+ObjectdetClient::GetAsyncJobResultOutcomeCallable ObjectdetClient::getAsyncJobResultCallable(const GetAsyncJobResultRequest &request) const
+{
+ auto task = std::make_shared>(
+ [this, request]()
+ {
+ return this->getAsyncJobResult(request);
+ });
+
+ asyncExecute(new Runnable([task]() { (*task)(); }));
+ return task->get_future();
+}
+
ObjectdetClient::GetVehicleRepairPlanOutcome ObjectdetClient::getVehicleRepairPlan(const GetVehicleRepairPlanRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
diff --git a/objectdet/src/model/DetectIPCObjectResult.cc b/objectdet/src/model/DetectIPCObjectResult.cc
index 303b88364..78dc9f04a 100644
--- a/objectdet/src/model/DetectIPCObjectResult.cc
+++ b/objectdet/src/model/DetectIPCObjectResult.cc
@@ -48,6 +48,8 @@ void DetectIPCObjectResult::parse(const std::string &payload)
for (auto dataNodeElementsElement : allElementsNode)
{
Data::Element elementObject;
+ if(!dataNodeElementsElement["TargetRate"].isNull())
+ elementObject.targetRate = std::stof(dataNodeElementsElement["TargetRate"].asString());
if(!dataNodeElementsElement["Score"].isNull())
elementObject.score = std::stof(dataNodeElementsElement["Score"].asString());
if(!dataNodeElementsElement["Type"].isNull())
diff --git a/objectdet/src/model/DetectVideoIPCObjectRequest.cc b/objectdet/src/model/DetectVideoIPCObjectRequest.cc
new file mode 100644
index 000000000..98cc4c2a8
--- /dev/null
+++ b/objectdet/src/model/DetectVideoIPCObjectRequest.cc
@@ -0,0 +1,51 @@
+/*
+ * 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
+
+using AlibabaCloud::Objectdet::Model::DetectVideoIPCObjectRequest;
+
+DetectVideoIPCObjectRequest::DetectVideoIPCObjectRequest() :
+ RpcServiceRequest("objectdet", "2019-12-30", "DetectVideoIPCObject")
+{
+ setMethod(HttpRequest::Method::Post);
+}
+
+DetectVideoIPCObjectRequest::~DetectVideoIPCObjectRequest()
+{}
+
+bool DetectVideoIPCObjectRequest::getAsync()const
+{
+ return async_;
+}
+
+void DetectVideoIPCObjectRequest::setAsync(bool async)
+{
+ async_ = async;
+ setBodyParameter("Async", async ? "true" : "false");
+}
+
+std::string DetectVideoIPCObjectRequest::getVideoURL()const
+{
+ return videoURL_;
+}
+
+void DetectVideoIPCObjectRequest::setVideoURL(const std::string& videoURL)
+{
+ videoURL_ = videoURL;
+ setBodyParameter("VideoURL", videoURL);
+}
+
diff --git a/objectdet/src/model/DetectVideoIPCObjectResult.cc b/objectdet/src/model/DetectVideoIPCObjectResult.cc
new file mode 100644
index 000000000..bcdb5b362
--- /dev/null
+++ b/objectdet/src/model/DetectVideoIPCObjectResult.cc
@@ -0,0 +1,94 @@
+/*
+ * 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
+#include
+
+using namespace AlibabaCloud::Objectdet;
+using namespace AlibabaCloud::Objectdet::Model;
+
+DetectVideoIPCObjectResult::DetectVideoIPCObjectResult() :
+ ServiceResult()
+{}
+
+DetectVideoIPCObjectResult::DetectVideoIPCObjectResult(const std::string &payload) :
+ ServiceResult()
+{
+ parse(payload);
+}
+
+DetectVideoIPCObjectResult::~DetectVideoIPCObjectResult()
+{}
+
+void DetectVideoIPCObjectResult::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["Height"].isNull())
+ data_.height = std::stol(dataNode["Height"].asString());
+ if(!dataNode["Width"].isNull())
+ data_.width = std::stol(dataNode["Width"].asString());
+ auto allFramesNode = dataNode["Frames"]["Frame"];
+ for (auto dataNodeFramesFrame : allFramesNode)
+ {
+ Data::Frame frameObject;
+ if(!dataNodeFramesFrame["Time"].isNull())
+ frameObject.time = std::stol(dataNodeFramesFrame["Time"].asString());
+ auto allElementsNode = dataNodeFramesFrame["Elements"]["elementsItem"];
+ for (auto dataNodeFramesFrameElementselementsItem : allElementsNode)
+ {
+ Data::Frame::ElementsItem elementsObject;
+ if(!dataNodeFramesFrameElementselementsItem["Score"].isNull())
+ elementsObject.score = std::stof(dataNodeFramesFrameElementselementsItem["Score"].asString());
+ if(!dataNodeFramesFrameElementselementsItem["Type"].isNull())
+ elementsObject.type = dataNodeFramesFrameElementselementsItem["Type"].asString();
+ if(!dataNodeFramesFrameElementselementsItem["X"].isNull())
+ elementsObject.x = std::stol(dataNodeFramesFrameElementselementsItem["X"].asString());
+ if(!dataNodeFramesFrameElementselementsItem["Y"].isNull())
+ elementsObject.y = std::stol(dataNodeFramesFrameElementselementsItem["Y"].asString());
+ if(!dataNodeFramesFrameElementselementsItem["Height"].isNull())
+ elementsObject.height = std::stol(dataNodeFramesFrameElementselementsItem["Height"].asString());
+ if(!dataNodeFramesFrameElementselementsItem["Width"].isNull())
+ elementsObject.width = std::stol(dataNodeFramesFrameElementselementsItem["Width"].asString());
+ frameObject.elements.push_back(elementsObject);
+ }
+ data_.frames.push_back(frameObject);
+ }
+ if(!value["Message"].isNull())
+ message_ = value["Message"].asString();
+ if(!value["Code"].isNull())
+ code_ = value["Code"].asString();
+
+}
+
+std::string DetectVideoIPCObjectResult::getMessage()const
+{
+ return message_;
+}
+
+DetectVideoIPCObjectResult::Data DetectVideoIPCObjectResult::getData()const
+{
+ return data_;
+}
+
+std::string DetectVideoIPCObjectResult::getCode()const
+{
+ return code_;
+}
+
diff --git a/objectdet/src/model/GetAsyncJobResultRequest.cc b/objectdet/src/model/GetAsyncJobResultRequest.cc
new file mode 100644
index 000000000..4f030bac3
--- /dev/null
+++ b/objectdet/src/model/GetAsyncJobResultRequest.cc
@@ -0,0 +1,51 @@
+/*
+ * 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
+
+using AlibabaCloud::Objectdet::Model::GetAsyncJobResultRequest;
+
+GetAsyncJobResultRequest::GetAsyncJobResultRequest() :
+ RpcServiceRequest("objectdet", "2019-12-30", "GetAsyncJobResult")
+{
+ setMethod(HttpRequest::Method::Post);
+}
+
+GetAsyncJobResultRequest::~GetAsyncJobResultRequest()
+{}
+
+std::string GetAsyncJobResultRequest::getJobId()const
+{
+ return jobId_;
+}
+
+void GetAsyncJobResultRequest::setJobId(const std::string& jobId)
+{
+ jobId_ = jobId;
+ setBodyParameter("JobId", jobId);
+}
+
+bool GetAsyncJobResultRequest::getAsync()const
+{
+ return async_;
+}
+
+void GetAsyncJobResultRequest::setAsync(bool async)
+{
+ async_ = async;
+ setBodyParameter("Async", async ? "true" : "false");
+}
+
diff --git a/objectdet/src/model/GetAsyncJobResultResult.cc b/objectdet/src/model/GetAsyncJobResultResult.cc
new file mode 100644
index 000000000..82609924e
--- /dev/null
+++ b/objectdet/src/model/GetAsyncJobResultResult.cc
@@ -0,0 +1,60 @@
+/*
+ * 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
+#include
+
+using namespace AlibabaCloud::Objectdet;
+using namespace AlibabaCloud::Objectdet::Model;
+
+GetAsyncJobResultResult::GetAsyncJobResultResult() :
+ ServiceResult()
+{}
+
+GetAsyncJobResultResult::GetAsyncJobResultResult(const std::string &payload) :
+ ServiceResult()
+{
+ parse(payload);
+}
+
+GetAsyncJobResultResult::~GetAsyncJobResultResult()
+{}
+
+void GetAsyncJobResultResult::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["Status"].isNull())
+ data_.status = dataNode["Status"].asString();
+ if(!dataNode["ErrorCode"].isNull())
+ data_.errorCode = dataNode["ErrorCode"].asString();
+ if(!dataNode["ErrorMessage"].isNull())
+ data_.errorMessage = dataNode["ErrorMessage"].asString();
+ if(!dataNode["JobId"].isNull())
+ data_.jobId = dataNode["JobId"].asString();
+ if(!dataNode["Result"].isNull())
+ data_.result = dataNode["Result"].asString();
+
+}
+
+GetAsyncJobResultResult::Data GetAsyncJobResultResult::getData()const
+{
+ return data_;
+}
+
diff --git a/objectdet/version-2019-12-30.xml b/objectdet/version-2019-12-30.xml
new file mode 100644
index 000000000..63dbbc568
--- /dev/null
+++ b/objectdet/version-2019-12-30.xml
@@ -0,0 +1 @@
+