sdk/include/alibabacloud/pds/PdsRequest.h (78 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 <string> #include <alibabacloud/pds/ServiceRequest.h> namespace AlibabaCloud { namespace PDS { class PdsClientImpl; class ALIBABACLOUD_PDS_EXPORT PdsRequest : public ServiceRequest { public: PdsRequest(); virtual ~ PdsRequest() = default; virtual HeaderCollection Headers() const; virtual ParameterCollection Parameters() const; virtual std::shared_ptr<std::iostream> Body() const; protected: friend class PdsClientImpl; virtual int validate() const; const char *validateMessage(int code) const; virtual std::string payload() const; virtual HeaderCollection specialHeaders() const; virtual ParameterCollection specialParameters() const; }; class ALIBABACLOUD_PDS_EXPORT PdsResumableBaseRequest : public PdsRequest { public: PdsResumableBaseRequest(const std::string& checkpointDir, const uint64_t partSize, const uint32_t threadNum) : PdsRequest(), partSize_(partSize), checkpointDir_(checkpointDir), trafficLimit_(0), versionId_() { threadNum_ = threadNum == 0 ? 1 : threadNum; } PdsResumableBaseRequest(const std::wstring& checkpointDir, const uint64_t partSize, const uint32_t threadNum) : PdsRequest(), partSize_(partSize), checkpointDirW_(checkpointDir), trafficLimit_(0), versionId_() { threadNum_ = threadNum == 0 ? 1 : threadNum; } void setPartSize(uint64_t partSize); uint64_t PartSize() const; void setFileSize(uint64_t fileSize); uint64_t FileSize() const; void setThreadNum(uint32_t threadNum); uint32_t ThreadNum() const; void setCheckpointDir(const std::string& checkpointDir); const std::string& CheckpointDir() const; void setCheckpointDir(const std::wstring& checkpointDir); const std::wstring& CheckpointDirW() const; bool hasCheckpointDir() const; void setFileMtime(const std::string& mtime); const std::string& FileMtime() const; void setTrafficLimit(uint64_t value); uint64_t TrafficLimit() const; void setVersionId(const std::string& versionId); const std::string& VersionId() const; protected: friend class PdsClientImpl; virtual int validate() const; const char *validateMessage(int code) const; protected: uint64_t partSize_; uint64_t fileSize_; uint32_t threadNum_; std::string checkpointDir_; std::wstring checkpointDirW_; std::string mtime_; uint64_t trafficLimit_; std::string versionId_; }; } }