1 /* 2 * Copyright 2009-2017 Alibaba Cloud All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 18 #include <set> 19 #include <sstream> 20 #include <alibabacloud/oss/model/ListPartsRequest.h> 21 #include <alibabacloud/oss/http/HttpType.h> 22 #include "utils/Utils.h" 23 #include "ModelError.h" 24 #include <alibabacloud/oss/Const.h> 25 26 27 using namespace AlibabaCloud::OSS; 28 using std::stringstream; 29 ListPartsRequest(const std::string & bucket,const std::string & key)30 ListPartsRequest::ListPartsRequest(const std::string &bucket, 31 const std::string &key) : 32 ListPartsRequest(bucket, key, std::string()) 33 { 34 } 35 ListPartsRequest(const std::string & bucket,const std::string & key,const std::string & uploadId)36 ListPartsRequest::ListPartsRequest(const std::string &bucket, 37 const std::string &key, const std::string &uploadId) : 38 OssObjectRequest(bucket, key), 39 uploadId_(uploadId), 40 maxPartsIsSet_(false), 41 partNumberMarkerIsSet_(false), 42 encodingTypeIsSet_(false) 43 { 44 } 45 setUploadId(const std::string & uploadId)46 void ListPartsRequest::setUploadId(const std::string &uploadId) 47 { 48 uploadId_ = uploadId; 49 } 50 setEncodingType(const std::string & str)51 void ListPartsRequest::setEncodingType(const std::string &str) 52 { 53 encodingType_ = str; 54 encodingTypeIsSet_ = true; 55 } 56 setMaxParts(uint32_t maxParts)57 void ListPartsRequest::setMaxParts(uint32_t maxParts) 58 { 59 maxParts_ = maxParts > MaxReturnedKeys ? MaxReturnedKeys: maxParts; 60 maxPartsIsSet_ = true; 61 } 62 setPartNumberMarker(uint32_t partNumberMarker)63 void ListPartsRequest::setPartNumberMarker(uint32_t partNumberMarker) 64 { 65 partNumberMarker_ = partNumberMarker; 66 partNumberMarkerIsSet_ = true; 67 } 68 specialParameters() const69 ParameterCollection ListPartsRequest::specialParameters() const 70 { 71 ParameterCollection parameters; 72 parameters["uploadId"] = uploadId_; 73 74 if (maxPartsIsSet_) { 75 parameters["max-parts"] = std::to_string(maxParts_); 76 } 77 78 if (partNumberMarkerIsSet_) { 79 parameters["part-number-marker"] = std::to_string(partNumberMarker_); 80 } 81 82 if (encodingTypeIsSet_) { 83 parameters["encoding-type"] = encodingType_; 84 } 85 86 return parameters; 87 } 88