Browse Source

Release DetectVideoIPCObject.

sdk-team 5 years ago
parent
commit
bc4ce30725
32 changed files with 596 additions and 1 deletions
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 0 0
      objectdet/2019-12-30/ClassifyVehicleInsurance.xml
  4. 0 0
      objectdet/2019-12-30/DetectIPCObject.xml
  5. 0 0
      objectdet/2019-12-30/DetectMainBody.xml
  6. 0 0
      objectdet/2019-12-30/DetectObject.xml
  7. 0 0
      objectdet/2019-12-30/DetectTransparentImage.xml
  8. 0 0
      objectdet/2019-12-30/DetectVehicle.xml
  9. 0 0
      objectdet/2019-12-30/DetectVehicleICongestion.xml
  10. 0 0
      objectdet/2019-12-30/DetectVehicleIllegalParking.xml
  11. 0 0
      objectdet/2019-12-30/DetectVideoIPCObject.xml
  12. 0 0
      objectdet/2019-12-30/DetectWhiteBaseImage.xml
  13. 0 0
      objectdet/2019-12-30/GenerateVehicleRepairPlan.xml
  14. 0 0
      objectdet/2019-12-30/GetAsyncJobResult.xml
  15. 0 0
      objectdet/2019-12-30/GetVehicleRepairPlan.xml
  16. 0 0
      objectdet/2019-12-30/RecognizeVehicleDamage.xml
  17. 0 0
      objectdet/2019-12-30/RecognizeVehicleDashboard.xml
  18. 0 0
      objectdet/2019-12-30/RecognizeVehicleParts.xml
  19. 8 0
      objectdet/CMakeLists.txt
  20. 16 0
      objectdet/include/alibabacloud/objectdet/ObjectdetClient.h
  21. 1 0
      objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h
  22. 51 0
      objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h
  23. 75 0
      objectdet/include/alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h
  24. 51 0
      objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultRequest.h
  25. 59 0
      objectdet/include/alibabacloud/objectdet/model/GetAsyncJobResultResult.h
  26. 72 0
      objectdet/src/ObjectdetClient.cc
  27. 2 0
      objectdet/src/model/DetectIPCObjectResult.cc
  28. 51 0
      objectdet/src/model/DetectVideoIPCObjectRequest.cc
  29. 94 0
      objectdet/src/model/DetectVideoIPCObjectResult.cc
  30. 51 0
      objectdet/src/model/GetAsyncJobResultRequest.cc
  31. 60 0
      objectdet/src/model/GetAsyncJobResultResult.cc
  32. 1 0
      objectdet/version-2019-12-30.xml

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-04-08 Version: 1.36.670
+- Release DetectVideoIPCObject.
+
 2021-04-06 Version: 1.36.669
 - Release MonitorExamination.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.669
+1.36.670

File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/ClassifyVehicleInsurance.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectIPCObject.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectMainBody.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectObject.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectTransparentImage.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectVehicle.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectVehicleICongestion.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectVehicleIllegalParking.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectVideoIPCObject.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/DetectWhiteBaseImage.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/GenerateVehicleRepairPlan.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/GetAsyncJobResult.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/GetVehicleRepairPlan.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/RecognizeVehicleDamage.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/RecognizeVehicleDashboard.xml


File diff suppressed because it is too large
+ 0 - 0
objectdet/2019-12-30/RecognizeVehicleParts.xml


+ 8 - 0
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

+ 16 - 0
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<Error, Model::DetectVehicleIllegalParkingResult> DetectVehicleIllegalParkingOutcome;
 			typedef std::future<DetectVehicleIllegalParkingOutcome> DetectVehicleIllegalParkingOutcomeCallable;
 			typedef std::function<void(const ObjectdetClient*, const Model::DetectVehicleIllegalParkingRequest&, const DetectVehicleIllegalParkingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectVehicleIllegalParkingAsyncHandler;
+			typedef Outcome<Error, Model::DetectVideoIPCObjectResult> DetectVideoIPCObjectOutcome;
+			typedef std::future<DetectVideoIPCObjectOutcome> DetectVideoIPCObjectOutcomeCallable;
+			typedef std::function<void(const ObjectdetClient*, const Model::DetectVideoIPCObjectRequest&, const DetectVideoIPCObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectVideoIPCObjectAsyncHandler;
 			typedef Outcome<Error, Model::DetectWhiteBaseImageResult> DetectWhiteBaseImageOutcome;
 			typedef std::future<DetectWhiteBaseImageOutcome> DetectWhiteBaseImageOutcomeCallable;
 			typedef std::function<void(const ObjectdetClient*, const Model::DetectWhiteBaseImageRequest&, const DetectWhiteBaseImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectWhiteBaseImageAsyncHandler;
 			typedef Outcome<Error, Model::GenerateVehicleRepairPlanResult> GenerateVehicleRepairPlanOutcome;
 			typedef std::future<GenerateVehicleRepairPlanOutcome> GenerateVehicleRepairPlanOutcomeCallable;
 			typedef std::function<void(const ObjectdetClient*, const Model::GenerateVehicleRepairPlanRequest&, const GenerateVehicleRepairPlanOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GenerateVehicleRepairPlanAsyncHandler;
+			typedef Outcome<Error, Model::GetAsyncJobResultResult> GetAsyncJobResultOutcome;
+			typedef std::future<GetAsyncJobResultOutcome> GetAsyncJobResultOutcomeCallable;
+			typedef std::function<void(const ObjectdetClient*, const Model::GetAsyncJobResultRequest&, const GetAsyncJobResultOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetAsyncJobResultAsyncHandler;
 			typedef Outcome<Error, Model::GetVehicleRepairPlanResult> GetVehicleRepairPlanOutcome;
 			typedef std::future<GetVehicleRepairPlanOutcome> GetVehicleRepairPlanOutcomeCallable;
 			typedef std::function<void(const ObjectdetClient*, const Model::GetVehicleRepairPlanRequest&, const GetVehicleRepairPlanOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> 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<const AsyncCallerContext>& 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<const AsyncCallerContext>& 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<const AsyncCallerContext>& 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<const AsyncCallerContext>& 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<const AsyncCallerContext>& 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<const AsyncCallerContext>& context = nullptr) const;
 			GetVehicleRepairPlanOutcomeCallable getVehicleRepairPlanCallable(const Model::GetVehicleRepairPlanRequest& request) const;

+ 1 - 0
objectdet/include/alibabacloud/objectdet/model/DetectIPCObjectResult.h

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					struct Element
 					{
+						float targetRate;
 						float score;
 						std::string type;
 						std::vector<std::string> box;

+ 51 - 0
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 <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/objectdet/ObjectdetExport.h>
+
+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_

+ 75 - 0
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 <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/objectdet/ObjectdetExport.h>
+
+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<Frame::ElementsItem> elements;
+					};
+					std::vector<Frame> 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_

+ 51 - 0
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 <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/objectdet/ObjectdetExport.h>
+
+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_

+ 59 - 0
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 <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/objectdet/ObjectdetExport.h>
+
+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_

+ 72 - 0
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<const AsyncCallerContext>& 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<std::packaged_task<DetectVideoIPCObjectOutcome()>>(
+			[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<const AsyncCallerContext>& 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<std::packaged_task<GetAsyncJobResultOutcome()>>(
+			[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();

+ 2 - 0
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())

+ 51 - 0
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 <alibabacloud/objectdet/model/DetectVideoIPCObjectRequest.h>
+
+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);
+}
+

+ 94 - 0
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 <alibabacloud/objectdet/model/DetectVideoIPCObjectResult.h>
+#include <json/json.h>
+
+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_;
+}
+

+ 51 - 0
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 <alibabacloud/objectdet/model/GetAsyncJobResultRequest.h>
+
+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");
+}
+

+ 60 - 0
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 <alibabacloud/objectdet/model/GetAsyncJobResultResult.h>
+#include <json/json.h>
+
+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_;
+}
+

+ 1 - 0
objectdet/version-2019-12-30.xml

@@ -0,0 +1 @@
+<?xml version='1.0' encoding='UTF-8'?><Version product="objectdet" apiStyle="RPC" name="2019-12-30" isolationType="outer"><ErrorMapping exceptionExpress=""><ErrorCodes /></ErrorMapping><Apis><Api name="DetectVideoIPCObject" /><Api name="GetAsyncJobResult" /><Api name="DetectIPCObject" /><Api name="DetectVehicleIllegalParking" /><Api name="DetectVehicleICongestion" /><Api name="GenerateVehicleRepairPlan" /><Api name="GetVehicleRepairPlan" /><Api name="DetectTransparentImage" /><Api name="DetectObject" /><Api name="DetectWhiteBaseImage" /><Api name="ClassifyVehicleInsurance" /><Api name="RecognizeVehicleDashboard" /><Api name="RecognizeVehicleDamage" /><Api name="RecognizeVehicleParts" /><Api name="DetectVehicle" /><Api name="DetectMainBody" /></Apis></Version>

Some files were not shown because too many files changed in this diff