/* * 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; using namespace AlibabaCloud::Location; using namespace AlibabaCloud::Eas; using namespace AlibabaCloud::Eas::Model; namespace { const std::string SERVICE_NAME = "eas"; } EasClient::EasClient(const Credentials &credentials, const ClientConfiguration &configuration) : RoaServiceClient(SERVICE_NAME, std::make_shared(credentials), configuration) { auto locationClient = std::make_shared(credentials, configuration); endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); } EasClient::EasClient(const std::shared_ptr& credentialsProvider, const ClientConfiguration & configuration) : RoaServiceClient(SERVICE_NAME, credentialsProvider, configuration) { auto locationClient = std::make_shared(credentialsProvider, configuration); endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); } EasClient::EasClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) : RoaServiceClient(SERVICE_NAME, std::make_shared(accessKeyId, accessKeySecret), configuration) { auto locationClient = std::make_shared(accessKeyId, accessKeySecret, configuration); endpointProvider_ = std::make_shared(locationClient, configuration.regionId(), SERVICE_NAME, ""); } EasClient::~EasClient() {} EasClient::CheckServiceExistsOutcome EasClient::checkServiceExists(const CheckServiceExistsRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return CheckServiceExistsOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return CheckServiceExistsOutcome(CheckServiceExistsResult(outcome.result())); else return CheckServiceExistsOutcome(outcome.error()); } void EasClient::checkServiceExistsAsync(const CheckServiceExistsRequest& request, const CheckServiceExistsAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, checkServiceExists(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::CheckServiceExistsOutcomeCallable EasClient::checkServiceExistsCallable(const CheckServiceExistsRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->checkServiceExists(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::CreateNetworkInterfaceOutcome EasClient::createNetworkInterface(const CreateNetworkInterfaceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return CreateNetworkInterfaceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return CreateNetworkInterfaceOutcome(CreateNetworkInterfaceResult(outcome.result())); else return CreateNetworkInterfaceOutcome(outcome.error()); } void EasClient::createNetworkInterfaceAsync(const CreateNetworkInterfaceRequest& request, const CreateNetworkInterfaceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, createNetworkInterface(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::CreateNetworkInterfaceOutcomeCallable EasClient::createNetworkInterfaceCallable(const CreateNetworkInterfaceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->createNetworkInterface(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::CreateSLSOutcome EasClient::createSLS(const CreateSLSRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return CreateSLSOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return CreateSLSOutcome(CreateSLSResult(outcome.result())); else return CreateSLSOutcome(outcome.error()); } void EasClient::createSLSAsync(const CreateSLSRequest& request, const CreateSLSAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, createSLS(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::CreateSLSOutcomeCallable EasClient::createSLSCallable(const CreateSLSRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->createSLS(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::CreateServiceOutcome EasClient::createService(const CreateServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return CreateServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return CreateServiceOutcome(CreateServiceResult(outcome.result())); else return CreateServiceOutcome(outcome.error()); } void EasClient::createServiceAsync(const CreateServiceRequest& request, const CreateServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, createService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::CreateServiceOutcomeCallable EasClient::createServiceCallable(const CreateServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->createService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::CreateTaskOutcome EasClient::createTask(const CreateTaskRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return CreateTaskOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return CreateTaskOutcome(CreateTaskResult(outcome.result())); else return CreateTaskOutcome(outcome.error()); } void EasClient::createTaskAsync(const CreateTaskRequest& request, const CreateTaskAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, createTask(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::CreateTaskOutcomeCallable EasClient::createTaskCallable(const CreateTaskRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->createTask(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::DeleteResourceOutcome EasClient::deleteResource(const DeleteResourceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return DeleteResourceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return DeleteResourceOutcome(DeleteResourceResult(outcome.result())); else return DeleteResourceOutcome(outcome.error()); } void EasClient::deleteResourceAsync(const DeleteResourceRequest& request, const DeleteResourceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, deleteResource(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::DeleteResourceOutcomeCallable EasClient::deleteResourceCallable(const DeleteResourceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->deleteResource(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::DeleteResourceInstanceOutcome EasClient::deleteResourceInstance(const DeleteResourceInstanceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return DeleteResourceInstanceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return DeleteResourceInstanceOutcome(DeleteResourceInstanceResult(outcome.result())); else return DeleteResourceInstanceOutcome(outcome.error()); } void EasClient::deleteResourceInstanceAsync(const DeleteResourceInstanceRequest& request, const DeleteResourceInstanceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, deleteResourceInstance(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::DeleteResourceInstanceOutcomeCallable EasClient::deleteResourceInstanceCallable(const DeleteResourceInstanceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->deleteResourceInstance(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::DeleteServiceOutcome EasClient::deleteService(const DeleteServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return DeleteServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return DeleteServiceOutcome(DeleteServiceResult(outcome.result())); else return DeleteServiceOutcome(outcome.error()); } void EasClient::deleteServiceAsync(const DeleteServiceRequest& request, const DeleteServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, deleteService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::DeleteServiceOutcomeCallable EasClient::deleteServiceCallable(const DeleteServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->deleteService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::DeleteTaskOutcome EasClient::deleteTask(const DeleteTaskRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return DeleteTaskOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return DeleteTaskOutcome(DeleteTaskResult(outcome.result())); else return DeleteTaskOutcome(outcome.error()); } void EasClient::deleteTaskAsync(const DeleteTaskRequest& request, const DeleteTaskAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, deleteTask(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::DeleteTaskOutcomeCallable EasClient::deleteTaskCallable(const DeleteTaskRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->deleteTask(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetAvailableRegionsOutcome EasClient::getAvailableRegions(const GetAvailableRegionsRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetAvailableRegionsOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetAvailableRegionsOutcome(GetAvailableRegionsResult(outcome.result())); else return GetAvailableRegionsOutcome(outcome.error()); } void EasClient::getAvailableRegionsAsync(const GetAvailableRegionsRequest& request, const GetAvailableRegionsAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getAvailableRegions(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetAvailableRegionsOutcomeCallable EasClient::getAvailableRegionsCallable(const GetAvailableRegionsRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getAvailableRegions(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetNetworkInterfaceOutcome EasClient::getNetworkInterface(const GetNetworkInterfaceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetNetworkInterfaceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetNetworkInterfaceOutcome(GetNetworkInterfaceResult(outcome.result())); else return GetNetworkInterfaceOutcome(outcome.error()); } void EasClient::getNetworkInterfaceAsync(const GetNetworkInterfaceRequest& request, const GetNetworkInterfaceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getNetworkInterface(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetNetworkInterfaceOutcomeCallable EasClient::getNetworkInterfaceCallable(const GetNetworkInterfaceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getNetworkInterface(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetOrCreateResourceOutcome EasClient::getOrCreateResource(const GetOrCreateResourceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetOrCreateResourceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetOrCreateResourceOutcome(GetOrCreateResourceResult(outcome.result())); else return GetOrCreateResourceOutcome(outcome.error()); } void EasClient::getOrCreateResourceAsync(const GetOrCreateResourceRequest& request, const GetOrCreateResourceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getOrCreateResource(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetOrCreateResourceOutcomeCallable EasClient::getOrCreateResourceCallable(const GetOrCreateResourceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getOrCreateResource(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetOssAuthorizeOutcome EasClient::getOssAuthorize(const GetOssAuthorizeRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetOssAuthorizeOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetOssAuthorizeOutcome(GetOssAuthorizeResult(outcome.result())); else return GetOssAuthorizeOutcome(outcome.error()); } void EasClient::getOssAuthorizeAsync(const GetOssAuthorizeRequest& request, const GetOssAuthorizeAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getOssAuthorize(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetOssAuthorizeOutcomeCallable EasClient::getOssAuthorizeCallable(const GetOssAuthorizeRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getOssAuthorize(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetResourceInstancesOutcome EasClient::getResourceInstances(const GetResourceInstancesRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetResourceInstancesOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetResourceInstancesOutcome(GetResourceInstancesResult(outcome.result())); else return GetResourceInstancesOutcome(outcome.error()); } void EasClient::getResourceInstancesAsync(const GetResourceInstancesRequest& request, const GetResourceInstancesAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getResourceInstances(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetResourceInstancesOutcomeCallable EasClient::getResourceInstancesCallable(const GetResourceInstancesRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getResourceInstances(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetResourcePodsOutcome EasClient::getResourcePods(const GetResourcePodsRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetResourcePodsOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetResourcePodsOutcome(GetResourcePodsResult(outcome.result())); else return GetResourcePodsOutcome(outcome.error()); } void EasClient::getResourcePodsAsync(const GetResourcePodsRequest& request, const GetResourcePodsAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getResourcePods(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetResourcePodsOutcomeCallable EasClient::getResourcePodsCallable(const GetResourcePodsRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getResourcePods(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetResourceServicesOutcome EasClient::getResourceServices(const GetResourceServicesRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetResourceServicesOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetResourceServicesOutcome(GetResourceServicesResult(outcome.result())); else return GetResourceServicesOutcome(outcome.error()); } void EasClient::getResourceServicesAsync(const GetResourceServicesRequest& request, const GetResourceServicesAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getResourceServices(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetResourceServicesOutcomeCallable EasClient::getResourceServicesCallable(const GetResourceServicesRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getResourceServices(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetResourceStatusOutcome EasClient::getResourceStatus(const GetResourceStatusRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetResourceStatusOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetResourceStatusOutcome(GetResourceStatusResult(outcome.result())); else return GetResourceStatusOutcome(outcome.error()); } void EasClient::getResourceStatusAsync(const GetResourceStatusRequest& request, const GetResourceStatusAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getResourceStatus(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetResourceStatusOutcomeCallable EasClient::getResourceStatusCallable(const GetResourceStatusRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getResourceStatus(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceOutcome EasClient::getService(const GetServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceOutcome(GetServiceResult(outcome.result())); else return GetServiceOutcome(outcome.error()); } void EasClient::getServiceAsync(const GetServiceRequest& request, const GetServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceOutcomeCallable EasClient::getServiceCallable(const GetServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceRegionOutcome EasClient::getServiceRegion(const GetServiceRegionRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceRegionOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceRegionOutcome(GetServiceRegionResult(outcome.result())); else return GetServiceRegionOutcome(outcome.error()); } void EasClient::getServiceRegionAsync(const GetServiceRegionRequest& request, const GetServiceRegionAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getServiceRegion(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceRegionOutcomeCallable EasClient::getServiceRegionCallable(const GetServiceRegionRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getServiceRegion(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceStatisticsOutcome EasClient::getServiceStatistics(const GetServiceStatisticsRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceStatisticsOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceStatisticsOutcome(GetServiceStatisticsResult(outcome.result())); else return GetServiceStatisticsOutcome(outcome.error()); } void EasClient::getServiceStatisticsAsync(const GetServiceStatisticsRequest& request, const GetServiceStatisticsAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getServiceStatistics(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceStatisticsOutcomeCallable EasClient::getServiceStatisticsCallable(const GetServiceStatisticsRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getServiceStatistics(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceTokenOutcome EasClient::getServiceToken(const GetServiceTokenRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceTokenOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceTokenOutcome(GetServiceTokenResult(outcome.result())); else return GetServiceTokenOutcome(outcome.error()); } void EasClient::getServiceTokenAsync(const GetServiceTokenRequest& request, const GetServiceTokenAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getServiceToken(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceTokenOutcomeCallable EasClient::getServiceTokenCallable(const GetServiceTokenRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getServiceToken(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceVersionOutcome EasClient::getServiceVersion(const GetServiceVersionRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceVersionOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceVersionOutcome(GetServiceVersionResult(outcome.result())); else return GetServiceVersionOutcome(outcome.error()); } void EasClient::getServiceVersionAsync(const GetServiceVersionRequest& request, const GetServiceVersionAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getServiceVersion(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceVersionOutcomeCallable EasClient::getServiceVersionCallable(const GetServiceVersionRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getServiceVersion(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetServiceWorkerOutcome EasClient::getServiceWorker(const GetServiceWorkerRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetServiceWorkerOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetServiceWorkerOutcome(GetServiceWorkerResult(outcome.result())); else return GetServiceWorkerOutcome(outcome.error()); } void EasClient::getServiceWorkerAsync(const GetServiceWorkerRequest& request, const GetServiceWorkerAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getServiceWorker(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetServiceWorkerOutcomeCallable EasClient::getServiceWorkerCallable(const GetServiceWorkerRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getServiceWorker(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::GetTaskOutcome EasClient::getTask(const GetTaskRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return GetTaskOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return GetTaskOutcome(GetTaskResult(outcome.result())); else return GetTaskOutcome(outcome.error()); } void EasClient::getTaskAsync(const GetTaskRequest& request, const GetTaskAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, getTask(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::GetTaskOutcomeCallable EasClient::getTaskCallable(const GetTaskRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->getTask(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ListServicesOutcome EasClient::listServices(const ListServicesRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ListServicesOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ListServicesOutcome(ListServicesResult(outcome.result())); else return ListServicesOutcome(outcome.error()); } void EasClient::listServicesAsync(const ListServicesRequest& request, const ListServicesAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, listServices(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ListServicesOutcomeCallable EasClient::listServicesCallable(const ListServicesRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->listServices(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ListTasksOutcome EasClient::listTasks(const ListTasksRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ListTasksOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ListTasksOutcome(ListTasksResult(outcome.result())); else return ListTasksOutcome(outcome.error()); } void EasClient::listTasksAsync(const ListTasksRequest& request, const ListTasksAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, listTasks(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ListTasksOutcomeCallable EasClient::listTasksCallable(const ListTasksRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->listTasks(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ListVIndexOutcome EasClient::listVIndex(const ListVIndexRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ListVIndexOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ListVIndexOutcome(ListVIndexResult(outcome.result())); else return ListVIndexOutcome(outcome.error()); } void EasClient::listVIndexAsync(const ListVIndexRequest& request, const ListVIndexAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, listVIndex(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ListVIndexOutcomeCallable EasClient::listVIndexCallable(const ListVIndexRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->listVIndex(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ModifyServiceOutcome EasClient::modifyService(const ModifyServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ModifyServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ModifyServiceOutcome(ModifyServiceResult(outcome.result())); else return ModifyServiceOutcome(outcome.error()); } void EasClient::modifyServiceAsync(const ModifyServiceRequest& request, const ModifyServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, modifyService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ModifyServiceOutcomeCallable EasClient::modifyServiceCallable(const ModifyServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->modifyService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ModifyServiceVersionOutcome EasClient::modifyServiceVersion(const ModifyServiceVersionRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ModifyServiceVersionOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ModifyServiceVersionOutcome(ModifyServiceVersionResult(outcome.result())); else return ModifyServiceVersionOutcome(outcome.error()); } void EasClient::modifyServiceVersionAsync(const ModifyServiceVersionRequest& request, const ModifyServiceVersionAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, modifyServiceVersion(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ModifyServiceVersionOutcomeCallable EasClient::modifyServiceVersionCallable(const ModifyServiceVersionRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->modifyServiceVersion(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::ReleaseServiceOutcome EasClient::releaseService(const ReleaseServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return ReleaseServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return ReleaseServiceOutcome(ReleaseServiceResult(outcome.result())); else return ReleaseServiceOutcome(outcome.error()); } void EasClient::releaseServiceAsync(const ReleaseServiceRequest& request, const ReleaseServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, releaseService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::ReleaseServiceOutcomeCallable EasClient::releaseServiceCallable(const ReleaseServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->releaseService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::StartServiceOutcome EasClient::startService(const StartServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return StartServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return StartServiceOutcome(StartServiceResult(outcome.result())); else return StartServiceOutcome(outcome.error()); } void EasClient::startServiceAsync(const StartServiceRequest& request, const StartServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, startService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::StartServiceOutcomeCallable EasClient::startServiceCallable(const StartServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->startService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::StopServiceOutcome EasClient::stopService(const StopServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return StopServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return StopServiceOutcome(StopServiceResult(outcome.result())); else return StopServiceOutcome(outcome.error()); } void EasClient::stopServiceAsync(const StopServiceRequest& request, const StopServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, stopService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::StopServiceOutcomeCallable EasClient::stopServiceCallable(const StopServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->stopService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); } EasClient::SyncServiceOutcome EasClient::syncService(const SyncServiceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); if (!endpointOutcome.isSuccess()) return SyncServiceOutcome(endpointOutcome.error()); auto outcome = makeRequest(endpointOutcome.result(), request); if (outcome.isSuccess()) return SyncServiceOutcome(SyncServiceResult(outcome.result())); else return SyncServiceOutcome(outcome.error()); } void EasClient::syncServiceAsync(const SyncServiceRequest& request, const SyncServiceAsyncHandler& handler, const std::shared_ptr& context) const { auto fn = [this, request, handler, context]() { handler(this, request, syncService(request), context); }; asyncExecute(new Runnable(fn)); } EasClient::SyncServiceOutcomeCallable EasClient::syncServiceCallable(const SyncServiceRequest &request) const { auto task = std::make_shared>( [this, request]() { return this->syncService(request); }); asyncExecute(new Runnable([task]() { (*task)(); })); return task->get_future(); }