sdk/include/alibabacloud/pds/PdsClient.h (66 lines of code) (raw):
/*
* Copyright 2009-2021 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.
*/
#pragma once
#include <alibabacloud/pds/Export.h>
#include <alibabacloud/pds/client/ClientConfiguration.h>
#include <alibabacloud/pds/auth/CredentialsProvider.h>
#include <alibabacloud/pds/PdsFwd.h>
#include <alibabacloud/pds/client/AsyncCallerContext.h>
#include <future>
#include <ctime>
namespace AlibabaCloud
{
namespace PDS
{
/*Global Init/Deinit*/
void ALIBABACLOUD_PDS_EXPORT InitializeSdk();
bool ALIBABACLOUD_PDS_EXPORT IsSdkInitialized();
void ALIBABACLOUD_PDS_EXPORT ShutdownSdk();
/*Log*/
void ALIBABACLOUD_PDS_EXPORT SetLogLevel(LogLevel level);
void ALIBABACLOUD_PDS_EXPORT SetLogCallback(LogCallback callback);
class PdsClientImpl;
class ALIBABACLOUD_PDS_EXPORT PdsClient
{
public:
PdsClient(const std::string& endpoint, const ClientConfiguration& configuration);
PdsClient(const std::string& endpoint, const std::string& accessToken, const ClientConfiguration& configuration);
PdsClient(const std::string& endpoint, const Credentials& credentials, const ClientConfiguration& configuration);
PdsClient(const std::string& endpoint, const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration& configuration);
virtual ~PdsClient();
/*AsyncTask*/
AsyncTaskGetOutcome AsyncTaskGet(const AsyncTaskGetRequest& request) const;
/*Dir*/
DirCreateOutcome DirCreate(const DirCreateRequest& request) const;
DirListOutcome DirList(const DirListRequest& request) const;
DirSearchOutcome DirSearch(const DirSearchRequest& request) const;
DirRenameOutcome DirRename(const DirRenameRequest& request) const;
DirTrashOutcome DirTrash(const DirTrashRequest& request) const;
DirDeleteOutcome DirDelete(const DirDeleteRequest& request) const;
DirCopyOutcome DirCopy(const DirCopyRequest& request) const;
DirMoveOutcome DirMove(const DirMoveRequest& request) const;
DirHiddenOutcome DirHidden(const DirHiddenRequest& request) const;
/*File*/
FileCreateOutcome FileCreate(const FileCreateRequest& request) const;
FileGetUploadUrlOutcome FileGetUploadUrl(const FileGetUploadUrlRequest& request) const;
FileListUploadedPartsOutcome FileListUploadedParts(const FileListUploadedPartsRequest& request) const;
FileCompleteOutcome FileComplete(const FileCompleteRequest& request) const;
FileGetDownloadUrlOutcome FileGetDownloadUrl(const FileGetDownloadUrlRequest& request) const;
FileGetOutcome FileGet(const FileGetRequest& request) const;
FileRenameOutcome FileRename(const FileRenameRequest& request) const;
FileTrashOutcome FileTrash(const FileTrashRequest& request) const;
FileDeleteOutcome FileDelete(const FileDeleteRequest& request) const;
FileGetVideoPreviewPlayInfoOutcome FileGetVideoPreviewPlayInfo(const FileGetVideoPreviewPlayInfoRequest& request) const;
FileCopyOutcome FileCopy(const FileCopyRequest& request) const;
FileMoveOutcome FileMove(const FileMoveRequest& request) const;
FileHiddenOutcome FileHidden(const FileHiddenRequest& request) const;
/*Data*/
DataGetOutcome DataGetByUrl(const DataGetByUrlRequest& request) const;
DataGetOutcome DataGetByUrl(const std::string& url) const;
DataGetOutcome DataGetByUrl(const std::string& url, const std::string& file) const;
DataPutOutcome DataPutByUrl(const DataPutByUrlRequest& request) const;
DataPutOutcome DataPutByUrl(const std::string& url, const std::string& file) const;
DataPutOutcome DataPutByUrl(const std::string& url, const std::shared_ptr<std::iostream>& content) const;
/*Meta*/
MetaUserTagsPutOutcome MetaUserTagsPut(const MetaUserTagsPutRequest& request) const;
PdsOutcome MetaUserTagsDelete(const MetaUserTagsDeleteRequest& request) const;
/*Resumable Operation*/
FileCompleteOutcome ResumableFileUpload(const FileUploadRequest& request) const;
DataGetOutcome ResumableFileDownload(const FileDownloadRequest& request) const;
/*Requests control*/
void DisableRequest();
void EnableRequest();
protected:
std::shared_ptr<PdsClientImpl> client_;
};
}
}