Browse Source

fix ecs build failure

zhangzifa 7 years ago
parent
commit
57daafe4cc

+ 6 - 0
core/include/alibabacloud/core/EndpointProvider.h

@@ -32,6 +32,12 @@ namespace AlibabaCloud
 	public:
 		typedef Outcome<Error, std::string> EndpointOutcome;
 
+		EndpointProvider(const std::shared_ptr<Location::LocationClient>& locationClient,
+			const std::string regionId,
+			const std::string product,
+			const std::string serviceCode = std::string(),
+			int durationSeconds = 3600);
+
 		EndpointProvider(
 			const Credentials &credentials,
 			const ClientConfiguration &configuration,

+ 5 - 0
core/include/alibabacloud/core/RpcServiceClient.h

@@ -40,7 +40,12 @@ namespace AlibabaCloud
 			const ClientConfiguration &configuration,
 			const std::shared_ptr<Signer> &signer = std::make_shared<HmacSha1Signer>());
 		virtual ~RpcServiceClient();
+
+		std::shared_ptr<CredentialsProvider> credentialsProvider() {
+			return credentialsProvider_;
+		}
 		using CoreClient::configuration;
+
 		using CoreClient::AttemptRequest;
 
 	protected:

+ 1 - 0
core/include/alibabacloud/core/location/LocationClient.h

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 			LocationClient(const Credentials &credentials, const ClientConfiguration &configuration);
 			LocationClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
 			LocationClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			LocationClient(const std::shared_ptr<Location::LocationClient>& locationClient);
 			~LocationClient();
 			virtual DescribeEndpointsOutcome describeEndpoints(const Model::DescribeEndpointsRequest &request)const;
 			void describeEndpointsAsync(const Model::DescribeEndpointsRequest& request, const DescribeEndpointsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;

+ 15 - 0
core/src/EndpointProvider.cc

@@ -82,6 +82,21 @@ namespace
 		"]}";
 }
 
+EndpointProvider::EndpointProvider(const std::shared_ptr<Location::LocationClient>& locationClient, const std::string regionId, const std::string product, const std::string serviceCode, int durationSeconds) :
+	LocationClient(locationClient),
+	regionId_(regionId),
+	product_(product),
+	serviceCode_(serviceCode),
+	durationSeconds_(durationSeconds),
+	cachedMutex_(),
+	cachedEndpoint_(),
+	expiry_(),
+	internalProductsInfo_()
+{
+	loadInternalProductsInfo();
+}
+
+
 EndpointProvider::EndpointProvider(
 	  const Credentials& credentials,
 	  const ClientConfiguration &configuration,

+ 6 - 0
core/src/location/LocationClient.cc

@@ -41,6 +41,12 @@ LocationClient::LocationClient(const std::string & accessKeyId, const std::strin
 {
 }
 
+LocationClient::LocationClient(const std::shared_ptr<Location::LocationClient>& locationClient):
+  RpcServiceClient(SERVICE_NAME, locationClient->credentialsProvider(), locationClient->configuration())
+{
+}
+
+
 LocationClient::~LocationClient()
 {}