Showing preview only (6,944K chars total). Download the full file or copy to clipboard to get everything.
Repository: aliyun/aliyun-oss-cpp-sdk
Branch: master
Commit: c42600fb0b20
Files: 612
Total size: 6.5 MB
Directory structure:
gitextract_dz4dljta/
├── .github/
│ └── workflows/
│ ├── linux-clang.yml
│ ├── linux-gcc.yml
│ ├── mac.yml
│ └── windows.yml
├── .gitignore
├── CHANGELOG
├── CMakeLists.txt
├── LICENSE
├── README.md
├── README_zh.md
├── VERSION
├── ptest/
│ ├── CMakeLists.txt
│ └── src/
│ ├── Config.cc
│ ├── Config.h
│ └── Program.cc
├── sample/
│ ├── CMakeLists.txt
│ └── src/
│ ├── Config.cc
│ ├── Config.h
│ ├── LiveChannel/
│ │ ├── LiveChannelSample.cc
│ │ └── LiveChannelSample.h
│ ├── Program.cc
│ ├── bucket/
│ │ ├── BucketSample.cc
│ │ └── BucketSample.h
│ ├── encryption/
│ │ ├── EncryptionSample.cc
│ │ └── EncryptionSample.h
│ ├── object/
│ │ ├── ObjectSample.cc
│ │ └── ObjectSample.h
│ ├── presignedurl/
│ │ ├── PresignedUrlSample.cc
│ │ └── PresignedUrlSample.h
│ └── service/
│ ├── ServiceSample.cc
│ └── ServiceSample.h
├── sdk/
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── alibabacloud/
│ │ └── oss/
│ │ ├── Config.h
│ │ ├── Const.h
│ │ ├── Export.h
│ │ ├── Global.h
│ │ ├── OssClient.h
│ │ ├── OssEncryptionClient.h
│ │ ├── OssError.h
│ │ ├── OssFwd.h
│ │ ├── OssRequest.h
│ │ ├── OssResponse.h
│ │ ├── OssResult.h
│ │ ├── ServiceRequest.h
│ │ ├── ServiceResult.h
│ │ ├── Types.h
│ │ ├── auth/
│ │ │ ├── Credentials.h
│ │ │ └── CredentialsProvider.h
│ │ ├── client/
│ │ │ ├── AsyncCallerContext.h
│ │ │ ├── ClientConfiguration.h
│ │ │ ├── Error.h
│ │ │ ├── RateLimiter.h
│ │ │ └── RetryStrategy.h
│ │ ├── encryption/
│ │ │ ├── Cipher.h
│ │ │ ├── ContentCryptoMaterial.h
│ │ │ ├── CryptoConfiguration.h
│ │ │ └── EncryptionMaterials.h
│ │ ├── http/
│ │ │ ├── HttpClient.h
│ │ │ ├── HttpInterceptor.h
│ │ │ ├── HttpMessage.h
│ │ │ ├── HttpRequest.h
│ │ │ ├── HttpResponse.h
│ │ │ ├── HttpType.h
│ │ │ └── Url.h
│ │ ├── model/
│ │ │ ├── AbortBucketWormRequest.h
│ │ │ ├── AbortMultipartUploadRequest.h
│ │ │ ├── AppendObjectRequest.h
│ │ │ ├── AppendObjectResult.h
│ │ │ ├── Bucket.h
│ │ │ ├── CORSRule.h
│ │ │ ├── CompleteBucketWormRequest.h
│ │ │ ├── CompleteMultipartUploadRequest.h
│ │ │ ├── CompleteMultipartUploadResult.h
│ │ │ ├── CopyObjectRequest.h
│ │ │ ├── CopyObjectResult.h
│ │ │ ├── CreateBucketRequest.h
│ │ │ ├── CreateSelectObjectMetaRequest.h
│ │ │ ├── CreateSelectObjectMetaResult.h
│ │ │ ├── CreateSymlinkRequest.h
│ │ │ ├── CreateSymlinkResult.h
│ │ │ ├── DeleteBucketCorsRequest.h
│ │ │ ├── DeleteBucketEncryptionRequest.h
│ │ │ ├── DeleteBucketInventoryConfigurationRequest.h
│ │ │ ├── DeleteBucketLifecycleRequest.h
│ │ │ ├── DeleteBucketLoggingRequest.h
│ │ │ ├── DeleteBucketPolicyRequest.h
│ │ │ ├── DeleteBucketQosInfoRequest.h
│ │ │ ├── DeleteBucketRequest.h
│ │ │ ├── DeleteBucketTaggingRequest.h
│ │ │ ├── DeleteBucketWebsiteRequest.h
│ │ │ ├── DeleteLiveChannelRequest.h
│ │ │ ├── DeleteObjectRequest.h
│ │ │ ├── DeleteObjectResult.h
│ │ │ ├── DeleteObjectTaggingRequest.h
│ │ │ ├── DeleteObjectTaggingResult.h
│ │ │ ├── DeleteObjectVersionsRequest.h
│ │ │ ├── DeleteObjectVersionsResult.h
│ │ │ ├── DeleteObjectsRequest.h
│ │ │ ├── DeleteObjectsResult.h
│ │ │ ├── DownloadObjectRequest.h
│ │ │ ├── ExtendBucketWormRequest.h
│ │ │ ├── GeneratePresignedUrlRequest.h
│ │ │ ├── GenerateRTMPSignedUrlRequest.h
│ │ │ ├── GetBucketAclRequest.h
│ │ │ ├── GetBucketAclResult.h
│ │ │ ├── GetBucketCorsRequest.h
│ │ │ ├── GetBucketCorsResult.h
│ │ │ ├── GetBucketEncryptionRequest.h
│ │ │ ├── GetBucketEncryptionResult.h
│ │ │ ├── GetBucketInfoRequest.h
│ │ │ ├── GetBucketInfoResult.h
│ │ │ ├── GetBucketInventoryConfigurationRequest.h
│ │ │ ├── GetBucketInventoryConfigurationResult.h
│ │ │ ├── GetBucketLifecycleRequest.h
│ │ │ ├── GetBucketLifecycleResult.h
│ │ │ ├── GetBucketLocationRequest.h
│ │ │ ├── GetBucketLocationResult.h
│ │ │ ├── GetBucketLoggingRequest.h
│ │ │ ├── GetBucketLoggingResult.h
│ │ │ ├── GetBucketPaymentRequest.h
│ │ │ ├── GetBucketPaymentResult.h
│ │ │ ├── GetBucketPolicyRequest.h
│ │ │ ├── GetBucketPolicyResult.h
│ │ │ ├── GetBucketQosInfoRequest.h
│ │ │ ├── GetBucketQosInfoResult.h
│ │ │ ├── GetBucketRefererRequest.h
│ │ │ ├── GetBucketRefererResult.h
│ │ │ ├── GetBucketStatRequest.h
│ │ │ ├── GetBucketStatResult.h
│ │ │ ├── GetBucketStorageCapacityRequest.h
│ │ │ ├── GetBucketStorageCapacityResult.h
│ │ │ ├── GetBucketTaggingRequest.h
│ │ │ ├── GetBucketTaggingResult.h
│ │ │ ├── GetBucketVersioningRequest.h
│ │ │ ├── GetBucketVersioningResult.h
│ │ │ ├── GetBucketWebsiteRequest.h
│ │ │ ├── GetBucketWebsiteResult.h
│ │ │ ├── GetBucketWormRequest.h
│ │ │ ├── GetBucketWormResult.h
│ │ │ ├── GetLiveChannelHistoryRequest.h
│ │ │ ├── GetLiveChannelHistoryResult.h
│ │ │ ├── GetLiveChannelInfoRequest.h
│ │ │ ├── GetLiveChannelInfoResult.h
│ │ │ ├── GetLiveChannelStatRequest.h
│ │ │ ├── GetLiveChannelStatResult.h
│ │ │ ├── GetObjectAclRequest.h
│ │ │ ├── GetObjectAclResult.h
│ │ │ ├── GetObjectByUrlRequest.h
│ │ │ ├── GetObjectMetaRequest.h
│ │ │ ├── GetObjectRequest.h
│ │ │ ├── GetObjectResult.h
│ │ │ ├── GetObjectTaggingRequest.h
│ │ │ ├── GetObjectTaggingResult.h
│ │ │ ├── GetSymlinkRequest.h
│ │ │ ├── GetSymlinkResult.h
│ │ │ ├── GetUserQosInfoRequest.h
│ │ │ ├── GetUserQosInfoResult.h
│ │ │ ├── GetVodPlaylistRequest.h
│ │ │ ├── GetVodPlaylistResult.h
│ │ │ ├── HeadObjectRequest.h
│ │ │ ├── InitiateBucketWormRequest.h
│ │ │ ├── InitiateBucketWormResult.h
│ │ │ ├── InitiateMultipartUploadRequest.h
│ │ │ ├── InitiateMultipartUploadResult.h
│ │ │ ├── InputFormat.h
│ │ │ ├── InventoryConfiguration.h
│ │ │ ├── LifecycleRule.h
│ │ │ ├── ListBucketInventoryConfigurationsRequest.h
│ │ │ ├── ListBucketInventoryConfigurationsResult.h
│ │ │ ├── ListBucketsRequest.h
│ │ │ ├── ListBucketsResult.h
│ │ │ ├── ListLiveChannelRequest.h
│ │ │ ├── ListLiveChannelResult.h
│ │ │ ├── ListMultipartUploadsRequest.h
│ │ │ ├── ListMultipartUploadsResult.h
│ │ │ ├── ListObjectVersionsRequest.h
│ │ │ ├── ListObjectVersionsResult.h
│ │ │ ├── ListObjectsRequest.h
│ │ │ ├── ListObjectsResult.h
│ │ │ ├── ListObjectsV2Request.h
│ │ │ ├── ListObjectsV2Result.h
│ │ │ ├── ListPartsRequest.h
│ │ │ ├── ListPartsResult.h
│ │ │ ├── MultiCopyObjectRequest.h
│ │ │ ├── MultipartUploadCryptoContext.h
│ │ │ ├── ObjectCallbackBuilder.h
│ │ │ ├── ObjectMetaData.h
│ │ │ ├── OutputFormat.h
│ │ │ ├── Owner.h
│ │ │ ├── Part.h
│ │ │ ├── PostVodPlaylistRequest.h
│ │ │ ├── ProcessObjectRequest.h
│ │ │ ├── PutLiveChannelRequest.h
│ │ │ ├── PutLiveChannelResult.h
│ │ │ ├── PutLiveChannelStatusRequest.h
│ │ │ ├── PutObjectByUrlRequest.h
│ │ │ ├── PutObjectRequest.h
│ │ │ ├── PutObjectResult.h
│ │ │ ├── QosConfiguration.h
│ │ │ ├── RestoreObjectRequest.h
│ │ │ ├── RestoreObjectResult.h
│ │ │ ├── SelectObjectRequest.h
│ │ │ ├── SetBucketAclRequest.h
│ │ │ ├── SetBucketCorsRequest.h
│ │ │ ├── SetBucketEncryptionRequest.h
│ │ │ ├── SetBucketInventoryConfigurationRequest.h
│ │ │ ├── SetBucketLifecycleRequest.h
│ │ │ ├── SetBucketLoggingRequest.h
│ │ │ ├── SetBucketPaymentRequest.h
│ │ │ ├── SetBucketPolicyRequest.h
│ │ │ ├── SetBucketQosInfoRequest.h
│ │ │ ├── SetBucketRefererRequest.h
│ │ │ ├── SetBucketStorageCapacityRequest.h
│ │ │ ├── SetBucketTaggingRequest.h
│ │ │ ├── SetBucketVersioningRequest.h
│ │ │ ├── SetBucketWebsiteRequest.h
│ │ │ ├── SetObjectAclRequest.h
│ │ │ ├── SetObjectAclResult.h
│ │ │ ├── SetObjectTaggingRequest.h
│ │ │ ├── SetObjectTaggingResult.h
│ │ │ ├── Tagging.h
│ │ │ ├── UploadObjectRequest.h
│ │ │ ├── UploadPartCopyRequest.h
│ │ │ ├── UploadPartCopyResult.h
│ │ │ ├── UploadPartRequest.h
│ │ │ └── VoidResult.h
│ │ └── utils/
│ │ ├── Executor.h
│ │ ├── Outcome.h
│ │ └── Runnable.h
│ └── src/
│ ├── Config.h.in
│ ├── OssClient.cc
│ ├── OssClientImpl.cc
│ ├── OssClientImpl.h
│ ├── OssRequest.cc
│ ├── OssResponse.cc
│ ├── OssResult.cc
│ ├── ServiceRequest.cc
│ ├── auth/
│ │ ├── Credentials.cc
│ │ ├── CredentialsProvider.cc
│ │ └── SimpleCredentialsProvider.cc
│ ├── client/
│ │ ├── AsyncCallerContext.cc
│ │ ├── Client.cc
│ │ ├── Client.h
│ │ └── ClientConfiguration.cc
│ ├── encryption/
│ │ ├── Cipher.cc
│ │ ├── CipherOpenssl.cc
│ │ ├── CipherOpenssl.h
│ │ ├── ContentCryptoMaterial.cc
│ │ ├── CryptoConfiguration.cc
│ │ ├── CryptoModule.cc
│ │ ├── CryptoModule.h
│ │ ├── CryptoStreamBuf.cc
│ │ ├── CryptoStreamBuf.h
│ │ ├── EncryptionMaterials.cc
│ │ └── OssEncryptionClient.cc
│ ├── external/
│ │ ├── json/
│ │ │ ├── json-forwards.h
│ │ │ ├── json.h
│ │ │ └── jsoncpp.cpp
│ │ └── tinyxml2/
│ │ ├── tinyxml2.cpp
│ │ └── tinyxml2.h
│ ├── http/
│ │ ├── CurlHttpClient.cc
│ │ ├── CurlHttpClient.h
│ │ ├── HttpClient.cc
│ │ ├── HttpMessage.cc
│ │ ├── HttpRequest.cc
│ │ ├── HttpResponse.cc
│ │ └── Url.cc
│ ├── model/
│ │ ├── AbortBucketWormRequest.cc
│ │ ├── AbortMultipartUploadRequest.cc
│ │ ├── AppendObjectRequest.cc
│ │ ├── AppendObjectResult.cc
│ │ ├── Bucket.cc
│ │ ├── CompleteBucketWormRequest.cc
│ │ ├── CompleteMultipartUploadRequest.cc
│ │ ├── CompleteMultipartUploadResult.cc
│ │ ├── CopyObjectRequest.cc
│ │ ├── CopyObjectResult.cc
│ │ ├── CreateBucketRequest.cc
│ │ ├── CreateSelectObjectMetaRequest.cc
│ │ ├── CreateSelectObjectMetaResult.cc
│ │ ├── CreateSymlinkRequest.cc
│ │ ├── CreateSymlinkResult.cc
│ │ ├── DeleteBucketCorsRequest.cc
│ │ ├── DeleteBucketEncryptionRequest.cc
│ │ ├── DeleteBucketInventoryConfigurationRequest.cc
│ │ ├── DeleteBucketLifecycleRequest.cc
│ │ ├── DeleteBucketLoggingRequest.cc
│ │ ├── DeleteBucketPolicyRequest.cc
│ │ ├── DeleteBucketQosInfoRequest.cc
│ │ ├── DeleteBucketTaggingRequest.cc
│ │ ├── DeleteBucketWebsiteRequest.cc
│ │ ├── DeleteLiveChannelRequest.cc
│ │ ├── DeleteObjectResult.cc
│ │ ├── DeleteObjectTaggingRequest.cc
│ │ ├── DeleteObjectVersionsRequest.cc
│ │ ├── DeleteObjectVersionsResult.cc
│ │ ├── DeleteObjectsRequest.cc
│ │ ├── DeleteObjectsResult.cc
│ │ ├── ExtendBucketWormRequest.cc
│ │ ├── GeneratePresignedUrlRequest.cc
│ │ ├── GenerateRTMPSignedUrlRequest.cc
│ │ ├── GetBucketAclRequest.cc
│ │ ├── GetBucketAclResult.cc
│ │ ├── GetBucketCorsRequest.cc
│ │ ├── GetBucketCorsResult.cc
│ │ ├── GetBucketEncryptionRequest.cc
│ │ ├── GetBucketEncryptionResult.cc
│ │ ├── GetBucketInfoRequest.cc
│ │ ├── GetBucketInfoResult.cc
│ │ ├── GetBucketInventoryConfigurationRequest.cc
│ │ ├── GetBucketInventoryConfigurationResult.cc
│ │ ├── GetBucketLifecycleRequest.cc
│ │ ├── GetBucketLifecycleResult.cc
│ │ ├── GetBucketLocationRequest.cc
│ │ ├── GetBucketLocationResult.cc
│ │ ├── GetBucketLoggingRequest.cc
│ │ ├── GetBucketLoggingResult.cc
│ │ ├── GetBucketPaymentRequest.cc
│ │ ├── GetBucketPaymentResult.cc
│ │ ├── GetBucketPolicyRequest.cc
│ │ ├── GetBucketPolicyResult.cc
│ │ ├── GetBucketQosInfoRequest.cc
│ │ ├── GetBucketQosInfoResult.cc
│ │ ├── GetBucketRefererRequest.cc
│ │ ├── GetBucketRefererResult.cc
│ │ ├── GetBucketStatRequest.cc
│ │ ├── GetBucketStatResult.cc
│ │ ├── GetBucketStorageCapacityRequest.cc
│ │ ├── GetBucketStorageCapacityResult.cc
│ │ ├── GetBucketTaggingRequest.cc
│ │ ├── GetBucketTaggingResult.cc
│ │ ├── GetBucketVersioningRequest.cc
│ │ ├── GetBucketVersioningResult.cc
│ │ ├── GetBucketWebsiteRequest.cc
│ │ ├── GetBucketWebsiteResult.cc
│ │ ├── GetBucketWormRequest.cc
│ │ ├── GetBucketWormResult.cc
│ │ ├── GetLiveChannelHistoryRequest.cc
│ │ ├── GetLiveChannelHistoryResult.cc
│ │ ├── GetLiveChannelInfoRequest.cc
│ │ ├── GetLiveChannelInfoResult.cc
│ │ ├── GetLiveChannelStatRequest.cc
│ │ ├── GetLiveChannelStatResult.cc
│ │ ├── GetObjectAclRequest.cc
│ │ ├── GetObjectAclResult.cc
│ │ ├── GetObjectByUrlRequest.cc
│ │ ├── GetObjectMetaRequest.cc
│ │ ├── GetObjectRequest.cc
│ │ ├── GetObjectResult.cc
│ │ ├── GetObjectTaggingRequest.cc
│ │ ├── GetObjectTaggingResult.cc
│ │ ├── GetSymlinkRequest.cc
│ │ ├── GetSymlinkResult.cc
│ │ ├── GetUserQosInfoRequest.cc
│ │ ├── GetUserQosInfoResult.cc
│ │ ├── GetVodPlaylistRequest.cc
│ │ ├── GetVodPlaylistResult.cc
│ │ ├── InitiateBucketWormRequest.cc
│ │ ├── InitiateBucketWormResult.cc
│ │ ├── InitiateMultipartUploadRequest.cc
│ │ ├── InitiateMultipartUploadResult.cc
│ │ ├── InputFormat.cc
│ │ ├── InventoryConfiguration.cc
│ │ ├── LifecycleRule.cc
│ │ ├── ListBucketInventoryConfigurationsRequest.cc
│ │ ├── ListBucketInventoryConfigurationsResult.cc
│ │ ├── ListBucketsRequest.cc
│ │ ├── ListBucketsResult.cc
│ │ ├── ListLiveChannelRequest.cc
│ │ ├── ListLiveChannelResult.cc
│ │ ├── ListMultipartUploadsRequest.cc
│ │ ├── ListMultipartUploadsResult.cc
│ │ ├── ListObjectVersionsResult.cc
│ │ ├── ListObjectsRequest.cc
│ │ ├── ListObjectsResult.cc
│ │ ├── ListObjectsV2Request.cc
│ │ ├── ListObjectsV2Result.cc
│ │ ├── ListPartsRequest.cc
│ │ ├── ListPartsResult.cc
│ │ ├── ModelError.cc
│ │ ├── ModelError.h
│ │ ├── ObjectCallbackBuilder.cc
│ │ ├── ObjectMetaData.cc
│ │ ├── OutputFormat.cc
│ │ ├── PostVodPlaylistRequest.cc
│ │ ├── ProcessObjectRequest.cc
│ │ ├── PutLiveChannelRequest.cc
│ │ ├── PutLiveChannelResult.cc
│ │ ├── PutLiveChannelStatusRequest.cc
│ │ ├── PutObjectByUrlRequest.cc
│ │ ├── PutObjectRequest.cc
│ │ ├── PutObjectResult.cc
│ │ ├── RestoreObjectRequest.cc
│ │ ├── RestoreObjectResult.cc
│ │ ├── SelectObjectRequest.cc
│ │ ├── SetBucketAclRequest.cc
│ │ ├── SetBucketCorsRequest.cc
│ │ ├── SetBucketEncryptionRequest.cc
│ │ ├── SetBucketInventoryConfigurationRequest.cc
│ │ ├── SetBucketLifecycleRequest.cc
│ │ ├── SetBucketLoggingRequest.cc
│ │ ├── SetBucketPaymentRequest.cc
│ │ ├── SetBucketPolicyRequest.cc
│ │ ├── SetBucketQosInfoRequest.cc
│ │ ├── SetBucketRefererRequest.cc
│ │ ├── SetBucketStorageCapacityRequest.cc
│ │ ├── SetBucketTaggingRequest.cc
│ │ ├── SetBucketVersioningRequest.cc
│ │ ├── SetBucketWebsiteRequest.cc
│ │ ├── SetObjectAclRequest.cc
│ │ ├── SetObjectAclResult.cc
│ │ ├── SetObjectTaggingRequest.cc
│ │ ├── Tagging.cc
│ │ ├── UploadPartCopyRequest.cc
│ │ ├── UploadPartCopyResult.cc
│ │ └── UploadPartRequest.cc
│ ├── resumable/
│ │ ├── DownloadObjectRequest.cc
│ │ ├── MultiCopyObjectRequest.cc
│ │ ├── ResumableBaseWorker.cc
│ │ ├── ResumableBaseWorker.h
│ │ ├── ResumableCopier.cc
│ │ ├── ResumableCopier.h
│ │ ├── ResumableDownloader.cc
│ │ ├── ResumableDownloader.h
│ │ ├── ResumableUploader.cc
│ │ ├── ResumableUploader.h
│ │ └── UploadObjectRequest.cc
│ ├── signer/
│ │ ├── HmacSha1Signer.cc
│ │ ├── HmacSha1Signer.h
│ │ ├── Signer.cc
│ │ ├── Signer.h
│ │ ├── SignerV1.cc
│ │ └── SignerV4.cc
│ └── utils/
│ ├── Crc32.cc
│ ├── Crc32.h
│ ├── Crc64.cc
│ ├── Crc64.h
│ ├── Executor.cc
│ ├── FileSystemUtils.cc
│ ├── FileSystemUtils.h
│ ├── LogUtils.cc
│ ├── LogUtils.h
│ ├── Runnable.cc
│ ├── SignUtils.cc
│ ├── SignUtils.h
│ ├── StreamBuf.h
│ ├── ThreadExecutor.cc
│ ├── ThreadExecutor.h
│ ├── Utils.cc
│ └── Utils.h
├── test/
│ ├── CMakeLists.txt
│ ├── data/
│ │ ├── ca-certificates.crt
│ │ └── sample_data.csv
│ ├── external/
│ │ └── gtest/
│ │ ├── gtest-all.cc
│ │ └── gtest.h
│ └── src/
│ ├── AccessKey/
│ │ └── AccessKeyTest.cc
│ ├── Bucket/
│ │ ├── BucketAclSettingsTest.cc
│ │ ├── BucketBasicOperationTest.cc
│ │ ├── BucketCorsSettingsTest.cc
│ │ ├── BucketEncryptionTest.cc
│ │ ├── BucketInventoryConfigurationTest.cc
│ │ ├── BucketLifecycleSettingsTest.cc
│ │ ├── BucketLoggingSettingsTest.cc
│ │ ├── BucketPolicySettingsTest.cc
│ │ ├── BucketQosInfoTest.cc
│ │ ├── BucketRefersSettingsTest.cc
│ │ ├── BucketRequestPaymentTest.cc
│ │ ├── BucketStorageCapacityTest.cc
│ │ ├── BucketTaggingtTest.cc
│ │ ├── BucketVersioningTest.cc
│ │ ├── BucketWebsiteSettingsTest.cc
│ │ └── BucketWormSettings.cc
│ ├── Config.cc
│ ├── Config.h
│ ├── Encryption/
│ │ ├── CipherTest.cc
│ │ ├── CryptoObjectTest.cc
│ │ ├── CryptoObjectVersioningTest.cc
│ │ ├── CryptoResumableObjectTest.cc
│ │ └── CryptoStreamBufTest.cc
│ ├── LiveChannel/
│ │ ├── DeleteLiveChannelTest.cc
│ │ ├── GenerateRTMPSignatrueUrlTest.cc
│ │ ├── GetLiveChannelHistoryTest.cc
│ │ ├── ListLiveChannelTest.cc
│ │ ├── PostAndGetVodPlayListTest.cc
│ │ ├── PutAndGetLiveChannelStatusTest.cc
│ │ └── PutAndGetLiveChannelTest.cc
│ ├── MultipartUpload/
│ │ ├── CallableTest.cc
│ │ ├── MultipartUploadTest.cc
│ │ ├── ObjectAsyncTest.cc
│ │ └── ResumableObjectTest.cc
│ ├── Object/
│ │ ├── ObjectAclTest.cc
│ │ ├── ObjectAppendTest.cc
│ │ ├── ObjectBasicOperationTest.cc
│ │ ├── ObjectCallbackTest.cc
│ │ ├── ObjectCopyTest.cc
│ │ ├── ObjectEncodingTypeTest.cc
│ │ ├── ObjectHashCheckTest.cc
│ │ ├── ObjectProcessTest.cc
│ │ ├── ObjectProgressTest .cc
│ │ ├── ObjectRequestPaymentTest.cc
│ │ ├── ObjectRestoreTest.cc
│ │ ├── ObjectSignedUrlTest.cc
│ │ ├── ObjectSymlinkTest.cc
│ │ ├── ObjectTaggingTest.cc
│ │ ├── ObjectTrafficLimitTest.cc
│ │ ├── ObjectVersioningTest.cc
│ │ └── SelectObjectTest.cc
│ ├── Other/
│ │ ├── Crc64Test.cc
│ │ ├── EndpointTest.cc
│ │ ├── FileSystemUtilsFunctionTest.cc
│ │ ├── HttpClientTest.cc
│ │ ├── HttpsTest.cc
│ │ ├── IpEndpointTest.cc
│ │ ├── LogTest.cc
│ │ ├── RateLimiterTest.cc
│ │ ├── SignerTest.cc
│ │ └── UtilsFunctionTest.cc
│ ├── Program.cc
│ ├── Utils.cc
│ └── Utils.h
└── third_party/
├── include/
│ ├── curl/
│ │ ├── config-win32.h
│ │ ├── curl.h
│ │ ├── curlbuild.h
│ │ ├── curlrules.h
│ │ ├── curlver.h
│ │ ├── easy.h
│ │ ├── mprintf.h
│ │ ├── multi.h
│ │ ├── stdcheaders.h
│ │ └── typecheck-gcc.h
│ └── openssl/
│ ├── aes.h
│ ├── applink.c
│ ├── asn1.h
│ ├── asn1_mac.h
│ ├── asn1t.h
│ ├── bio.h
│ ├── blowfish.h
│ ├── bn.h
│ ├── buffer.h
│ ├── camellia.h
│ ├── cast.h
│ ├── cmac.h
│ ├── cms.h
│ ├── comp.h
│ ├── conf.h
│ ├── conf_api.h
│ ├── crypto.h
│ ├── des.h
│ ├── des_old.h
│ ├── dh.h
│ ├── dsa.h
│ ├── dso.h
│ ├── dtls1.h
│ ├── e_os2.h
│ ├── ebcdic.h
│ ├── ec.h
│ ├── ecdh.h
│ ├── ecdsa.h
│ ├── engine.h
│ ├── err.h
│ ├── evp.h
│ ├── hmac.h
│ ├── idea.h
│ ├── krb5_asn.h
│ ├── kssl.h
│ ├── lhash.h
│ ├── md4.h
│ ├── md5.h
│ ├── mdc2.h
│ ├── modes.h
│ ├── obj_mac.h
│ ├── objects.h
│ ├── ocsp.h
│ ├── opensslconf.h
│ ├── opensslv.h
│ ├── ossl_typ.h
│ ├── pem.h
│ ├── pem2.h
│ ├── pkcs12.h
│ ├── pkcs7.h
│ ├── pqueue.h
│ ├── rand.h
│ ├── rc2.h
│ ├── rc4.h
│ ├── ripemd.h
│ ├── rsa.h
│ ├── safestack.h
│ ├── seed.h
│ ├── sha.h
│ ├── srp.h
│ ├── srtp.h
│ ├── ssl.h
│ ├── ssl2.h
│ ├── ssl23.h
│ ├── ssl3.h
│ ├── stack.h
│ ├── symhacks.h
│ ├── tls1.h
│ ├── ts.h
│ ├── txt_db.h
│ ├── ui.h
│ ├── ui_compat.h
│ ├── whrlpool.h
│ ├── x509.h
│ ├── x509_vfy.h
│ └── x509v3.h
└── lib/
├── Win32/
│ ├── libcurl.lib
│ ├── libeay32.lib
│ └── ssleay32.lib
└── x64/
├── libcurl.lib
├── libeay32.lib
└── ssleay32.lib
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/linux-clang.yml
================================================
name: Ubuntu (clang)
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
build:
strategy:
matrix:
mode: [ Debug, Release ]
cpp_version: [11, 20]
runs-on: ubuntu-22.04
steps:
- name: check out
uses: actions/checkout@v3
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install curl libssl-dev libcurl4-openssl-dev
- name: configure cmake
run: CXX=clang++ CC=clang cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.mode }} -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }}
- name: build project
run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.mode }}
================================================
FILE: .github/workflows/linux-gcc.yml
================================================
name: Ubuntu (gcc)
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
ubuntu_gcc:
strategy:
matrix:
mode: [ Debug, Release ]
cpp_version: [11, 20]
runs-on: ubuntu-22.04
steps:
- name: check out
uses: actions/checkout@v3
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install curl libssl-dev libcurl4-openssl-dev
- name: checkout gcc version
run: gcc --version
- name: configure cmake
run: CXX=g++ CC=gcc cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.mode }} -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }}
- name: build project
run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.mode }}
================================================
FILE: .github/workflows/mac.yml
================================================
name: macOS Monterey 12
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
build:
strategy:
matrix:
mode: [ Debug ] #mode: [Release, Debug]
cpp_version: [11, 20]
runs-on: macos-latest
steps:
- name: check out
uses: actions/checkout@v4
- name: Install Dependencies
run: HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install openssl
- name: configure cmake
run: OPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 CXX=clang++ CC=clang cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.mode }} -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }}
- name: build project
run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.mode }}
================================================
FILE: .github/workflows/windows.yml
================================================
name: Windows Server 2022
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
mode: [Debug, Release]
cpp_version: [11, 20]
arch: [x64]
env:
CXX: cl.exe
CC: cl.exe
steps:
- name: check out
uses: actions/checkout@v3
- name: generate project
run: cmake -B ${{ github.workspace }}\build -DCMAKE_BUILD_TYPE=${{ matrix.mode }} -A${{ matrix.arch }} -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }}
- name: build project
run: cmake --build ${{ github.workspace }}\build --config ${{ matrix.mode }}
================================================
FILE: .gitignore
================================================
.cache
.vs
.vscode
build
winbuild
================================================
FILE: CHANGELOG
================================================
2018-10-08 Version: 1.0.0
1. pre-release version for oss sdk
================================================
FILE: CMakeLists.txt
================================================
#
# 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.
#
cmake_minimum_required(VERSION 3.5)
cmake_policy(SET CMP0048 NEW)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
#Project setting
file(STRINGS "VERSION" version)
project(alibabacloud-oss-cpp-sdk VERSION ${version})
message(STATUS "Project version: ${PROJECT_VERSION}")
set(SDK_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
set(TARGET_OUTPUT_NAME_PREFIX "alibabacloud-oss-" CACHE STRING "The target's output name prefix")
#Options
option(BUILD_SHARED_LIBS "Enable shared library" OFF)
option(BUILD_SAMPLE "Build sample" ON)
option(BUILD_TESTS "Build unit and perfermence tests" OFF)
option(ENABLE_COVERAGE "Flag to enable/disable building code with -fprofile-arcs and -ftest-coverage. Gcc only" OFF)
option(ENABLE_RTTI "Flag to enable/disable building code with RTTI information" ON)
#Platform
if (CMAKE_CROSSCOMPILING)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Android")
set(PLATFORM_ANDROID 1)
set(TARGET_OS "ANDROID")
else()
message(FATAL_ERROR "Do not support target platform")
endif()
else()
if(CMAKE_HOST_APPLE)
set(PLATFORM_APPLE 1)
set(TARGET_OS "APPLE")
elseif(CMAKE_HOST_UNIX)
set(PLATFORM_LINUX 1)
set(TARGET_OS "LINUX")
elseif(CMAKE_HOST_WIN32)
set(PLATFORM_WINDOWS 1)
set(TARGET_OS "WINDOWS")
else()
message(FATAL_ERROR "Do not support unknown host OS")
endif()
endif()
message(STATUS "TARGET_OS: ${TARGET_OS}")
add_definitions(-DPLATFORM_${TARGET_OS})
#Find dependency Library, curl, openssl
if (${TARGET_OS} STREQUAL "WINDOWS")
set(WLIB_TARGET "Win32")
if (CMAKE_CL_64)
set(WLIB_TARGET "x64")
endif()
set(CRYPTO_LIBS
${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/ssleay32.lib
${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/libeay32.lib)
set(CRYPTO_INCLUDE_DIRS
${CMAKE_SOURCE_DIR}/third_party/include)
set(CLIENT_LIBS
${CMAKE_SOURCE_DIR}/third_party/lib/${WLIB_TARGET}/libcurl.lib)
set(CLIENT_INCLUDE_DIRS
${CMAKE_SOURCE_DIR}/third_party/include)
else()
include(FindCURL)
include(FindOpenSSL)
if(NOT CURL_FOUND)
message(FATAL_ERROR "Could not find curl")
endif()
if(NOT OPENSSL_FOUND)
message(FATAL_ERROR "Could not find openssl")
endif()
set(CRYPTO_LIBS ${OPENSSL_LIBRARIES})
set(CRYPTO_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
set(CRYPTO_LIBS_ABSTRACT_NAME crypto ssl)
set(CLIENT_LIBS ${CURL_LIBRARIES})
set(CLIENT_INCLUDE_DIRS ${CURL_INCLUDE_DIRS})
set(CLIENT_LIBS_ABSTRACT_NAME curl)
endif()
#Compiler flags
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard to use")
message(STATUS "CXX Standard: ${CMAKE_CXX_STANDARD}")
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
list(APPEND SDK_COMPILER_FLAGS "/MP")
if (NOT ENABLE_RTTI)
list(APPEND SDK_COMPILER_FLAGS "/GR-")
endif()
# disable some warning
list(APPEND SDK_COMPILER_FLAGS "/D_CRT_SECURE_NO_WARNINGS")
if(CMAKE_CXX_STANDARD GREATER_EQUAL 17)
list(APPEND SDK_COMPILER_FLAGS "/D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING")
endif()
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
list(APPEND SDK_COMPILER_FLAGS "-fno-exceptions" "-fPIC")
if (NOT ENABLE_RTTI)
list(APPEND SDK_COMPILER_FLAGS "-fno-rtti")
endif()
list(APPEND SDK_COMPILER_FLAGS "-Wall" "-Werror" "-pedantic" "-Wextra")
else()
list(APPEND SDK_COMPILER_FLAGS "-fno-exceptions" "-fPIC")
if (NOT ENABLE_RTTI)
list(APPEND SDK_COMPILER_FLAGS "-fno-rtti")
endif()
list(APPEND SDK_COMPILER_FLAGS "-Wall" "-Werror" "-pedantic" "-Wextra")
if (ENABLE_COVERAGE)
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")
endif()
endif()
if (BUILD_SHARED_LIBS)
set(STATIC_LIB_SUFFIX "-static")
else()
set(STATIC_LIB_SUFFIX "")
endif()
include(ExternalProject)
include(GNUInstallDirs)
add_subdirectory(sdk)
if(BUILD_SAMPLE)
add_subdirectory(sample)
endif()
if(BUILD_TESTS)
add_subdirectory(test)
add_subdirectory(ptest)
endif()
================================================
FILE: LICENSE
================================================
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.
================================================
FILE: README.md
================================================
# Alibaba Cloud OSS C++ Software Development Kit
[中文文档](./README_zh.md)
Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability. You can upload and download data on any application anytime and anywhere by calling APIs, and perform simple management of data through the web console. The OSS can store any type of files and therefore applies to various websites, development enterprises and developers.
The OSS SDK for C++ provides a variety of modern C++ (version C++ 11 or later) interfaces for convenient use of the OSS.
This document introduces how to obtain and call Alibaba Cloud OSS C++ SDK.
If you have any problem while using C++ SDK, please contact us.
## Prerequisites
To use Alibaba Cloud OSS C++ SDK, you must:
* Have an Alibaba Cloud account and an AccessKey. The AccessKey is required when initializing the client. You can create an AccessKey in the Alibaba Cloud console. For more information, see [Create an AccessKey](https://usercenter.console.aliyun.com/?spm=5176.doc52740.2.3.QKZk8w#/manage/ak)
> **Note:** To increase the security of your account, we recommend that you use the AccessKey of the RAM user to access Alibaba Cloud services.
* Install a compiler that supports C + + 11 or later:
* Visual Studio 2013 or later:
* or GCC 4.8 or later:
* or Clang 3.3 or later:
## Building the SDK
1. Download or clone from GitHub [aliyun-oss-cpp-sdk](https://github.com/aliyun/aliyun-oss-cpp-sdk)
* Download https://github.com/aliyun/aliyun-oss-cpp-sdk/archive/master.zip
* Clone source codes
```
git clone https://github.com/aliyun/aliyun-oss-cpp-sdk.git
```
2. Install CMake 3.1 or later, enter SDK to create build files required for the build
```
cd <path/to/aliyun-oss-cpp-sdk>
mkdir build
cd build
cmake ..
```
### Windows
Enter build folder, open alibabacloud-oss-cpp-sdk.sln with Visual Studio.
Or run the the following commands to build and install:
```
msbuild ALL_BUILD.vcxproj
msbuild INSTALL.vcxproj
```
### Linux
Install third-party libraries on the Linux platform, including `libcurl` and `libopenssl`.
Run the following commands on the Redhat/Fedora system to install third-party libraries.
```
sudo dnf install libcurl-devel openssl-devel
```
Run the following commands on the Debian/Ubuntu system to install third-party libraries.
```
sudo apt-get install libcurl4-openssl-dev libssl-dev
```
Run the following commands to build and install sdk:
```
make
sudo make install
```
### Mac
On Mac you should specify openssl path. For example, openssl is installed in /usr/local/Cellar/openssl/1.0.2p, run the following commands
```
cmake -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2p \
-DOPENSSL_LIBRARIES=/usr/local/Cellar/openssl/1.0.2p/lib \
-DOPENSSL_INCLUDE_DIRS=/usr/local/Cellar/openssl/1.0.2p/include/ ..
make
```
### Android
Build and install third-party libraries, including `libcurl` and `libopenssl` to `$ANDROID_NDK/sysroot`, run the following commands
```
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_NDK=$ANDROID_NDK \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_TOOLCHAIN=clang \
-DANDROID_PLATFORM=android-21 \
-DANDROID_STL=c++_shared ..
make
```
### CMake Option
#### BUILD_SHARED_LIBS
(Default OFF) If turned on, both static and shared libraries are built, and the static library name has a -static suffix. At the same time, the sample project will be linked to the shared library.
```
cmake .. -DBUILD_SHARED_LIBS=ON
```
#### BUILD_TESTS
(Default OFF) If turned on, both test and ptest project will be built.
```
cmake .. -DBUILD_TESTS=ON
```
#### ENABLE_RTTI
(Default ON) If turned off, the SDK is built without RTTI information.
```
cmake .. -DENABLE_RTTI=OFF
```
#### OSS_DISABLE_BUCKET
(Default OFF) If turned ON, the SDK is built without the bucket's API.
```
cmake .. -DOSS_DISABLE_BUCKET=ON
```
#### OSS_DISABLE_LIVECHANNEL
(Default OFF) If turned ON, the SDK is built without the livechannel's API.
```
cmake .. -DOSS_DISABLE_LIVECHANNEL=ON
```
#### OSS_DISABLE_RESUAMABLE
(Default OFF) If turned ON, the SDK is built without the resumable operation feature.
```
cmake .. -DOSS_DISABLE_RESUAMABLE=ON
```
#### OSS_DISABLE_ENCRYPTION
(Default OFF) If turned ON, the SDK is built without the client-side encryption feature.
```
cmake .. -DOSS_DISABLE_ENCRYPTION=ON
```
## Use the C++ SDK
The following code shows how to list buckets owned by the requester.
> **Note:** Please replace the your-region-id,your-access-key-id and your-access-key-secret in the sample.
```
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(int argc, char** argv)
{
// Initialize the SDK
InitializeSdk();
// Configure the instance
ClientConfiguration conf;
OssClient client("your-region-id", "your-access-key-id", "your-access-key-secret", conf);
// Create an API request
ListBucketsRequest request;
auto outcome = client.ListBuckets(request);
if (!outcome.isSuccess()) {
// Handle exceptions
std::cout << "ListBuckets fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
ShutdownSdk();
return -1;
}
// Close the SDK
ShutdownSdk();
return 0;
}
```
## License
See the LICENSE file (Apache 2.0 license).
================================================
FILE: README_zh.md
================================================
# 阿里云OSS C++工具套件
阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。
适用于阿里云OSS的 C++ SDK提供了一组现代化的 C++(C++ 11)接口,让您不用复杂编程即可访问阿里云OSS服务。
如果您在使用SDK的过程中遇到任何问题,欢迎前往阿里云SDK问答社区提问,提问前请阅读提问引导。亦可在当前GitHub提交Issues。
完成本文档中的操作开始使用 C++ SDK。
## 前提条件
在使用 C++ SDK 前,确保您已经:
* 注册了阿里云账号并获取了访问密钥(AccessKey)。
> **说明:** 为了保证您的账号安全,建议您使用RAM账号来访问阿里云服务。阿里云账号对拥有的资源有全部权限。RAM账号由阿里云账号授权创建,仅有对特定资源限定的操作权限。详情[参见RAM](https://help.aliyun.com/document_detail/28647.html)。
* 安装支持 C++ 11 或更高版本的编译器:
* Visual Studio 2013 或以上版本
* 或 GCC 4.8 或以上版本
* 或 Clang 3.3 或以上版本
## 从源代码构建 SDK
1. 从 GitHub 下载或 Git 克隆 [aliyun-oss-cpp-sdk](https://github.com/aliyun/aliyun-oss-cpp-sdk)
* 直接下载 https://github.com/aliyun/aliyun-oss-cpp-sdk/archive/master.zip
* 使用 Git 命令获取
```
git clone https://github.com/aliyun/aliyun-oss-cpp-sdk.git
```
2. 安装 cmake 3.1 或以上版本,进入 SDK 创建生成必要的构建文件
```
cd <path/to/aliyun-oss-cpp-sdk>
mkdir build
cd build
cmake ..
```
### Windows
进入 build 目录使用 Visual Studio 打开 alibabacloud-oss-cpp-sdk.sln 生成解决方案。
或者您也可以使用 VS 的开发人员命令提示符,执行以下命令编译并安装:
```
msbuild ALL_BUILD.vcxproj
msbuild INSTALL.vcxproj
```
### Linux
要在 Linux 平台进行编译, 您必须安装依赖的外部库文件 libcurl、libopenssl, 通常情况下,系统的包管理器中的会有提供。
例如:在基于 Redhat / Fedora 的系统上安装这些软件包
```
sudo dnf install libcurl-devel openssl-devel
```
例如:在基于 Debian / Ubuntu 的系统上安装这些软件包
```
sudo apt-get install libcurl4-openssl-dev libssl-dev
```
在安装依赖库后执行以下命令编译并安装:
```
make
sudo make install
```
### Mac
在Mac平台编译时,需要指定openssl 库的路径。例如 openssl安装在 /usr/local/Cellar/openssl/1.0.2p, 请使用如下命令
```
cmake -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2p \
-DOPENSSL_LIBRARIES=/usr/local/Cellar/openssl/1.0.2p/lib \
-DOPENSSL_INCLUDE_DIRS=/usr/local/Cellar/openssl/1.0.2p/include/ ..
make
```
### Android
例如,在linux 环境下,基于android-ndk-r16 工具链构建工程。可以先把第三方库 `libcurl` 和 `libopenssl` 编译并安装到 `$ANDROID_NDK/sysroot` 下,然后使用如下命令
```
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_NDK=$ANDROID_NDK \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_TOOLCHAIN=clang \
-DANDROID_PLATFORM=android-21 \
-DANDROID_STL=c++_shared ..
make
```
### CMake 选项
#### BUILD_SHARED_LIBS
(默认为关,即OFF) 如果打开,会同时构建静态库和动态库, 静态库名字增加-static后缀。同时,sample工程会链接到sdk的动态库上。
```
cmake .. -DBUILD_SHARED_LIBS=ON
```
#### BUILD_TESTS
(默认为关,即OFF) 如果打开,会构建出test 及 ptest两个测试工程。
```
cmake .. -DBUILD_TESTS=ON
```
#### ENABLE_RTTI
(默认为开,即ON) 如果关闭, 构建的库不会添加运行时类型信息.
```
cmake .. -DENABLE_RTTI=OFF
```
#### OSS_DISABLE_BUCKET
(默认为关,即OFF) 如果打开, 构建的库不会包含和 bucket 有关的接口.
```
cmake .. -DOSS_DISABLE_BUCKET=ON
```
#### OSS_DISABLE_LIVECHANNEL
(默认为关,即OFF) 如果打开, 构建的库不会包含和 livechannel 有关的接口.
```
cmake .. -DOSS_DISABLE_LIVECHANNEL=ON
```
#### OSS_DISABLE_RESUAMABLE
(默认为关,即OFF) 如果打开, 构建的库不会包含断点续传功能.
```
cmake .. -DOSS_DISABLE_RESUAMABLE=ON
```
#### OSS_DISABLE_ENCRYPTION
(默认为关,即OFF) 如果打开, 构建的库不会包含客户端加密功能.
```
cmake .. -DOSS_DISABLE_ENCRYPTION=ON
```
## 如何使用 C++ SDK
以下代码展示了如何获取请求者拥有的Bucket。
> **说明:** 您需要替换示例中的 your-region-id、your-access-key-id 和 your-access-key-secret 的值。
```
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(int argc, char** argv)
{
// 初始化SDK
InitializeSdk();
// 配置实例
ClientConfiguration conf;
OssClient client("your-region-id", "your-access-key-id", "your-access-key-secret", conf);
// 创建API请求
ListBucketsRequest request;
auto outcome = client.ListBuckets(request);
if (!outcome.isSuccess()) {
// 异常处理
std::cout << "ListBuckets fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
ShutdownSdk();
return -1;
}
// 关闭SDK
ShutdownSdk();
return 0;
}
```
## 许可协议
请参阅 LICENSE 文件(Apache 2.0 许可证)。
================================================
FILE: VERSION
================================================
1.10.1
================================================
FILE: ptest/CMakeLists.txt
================================================
#
# 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.
#
project(cpp-sdk-ptest VERSION ${version})
file(GLOB ptest_src "src/*")
add_executable(${PROJECT_NAME} ${ptest_src})
target_include_directories(${PROJECT_NAME}
PRIVATE ${CMAKE_SOURCE_DIR}/sdk/include)
target_link_libraries(${PROJECT_NAME} cpp-sdk${STATIC_LIB_SUFFIX})
target_link_libraries(${PROJECT_NAME} ${CRYPTO_LIBS})
target_link_libraries(${PROJECT_NAME} ${CLIENT_LIBS})
if (${TARGET_OS} STREQUAL "LINUX")
target_link_libraries(${PROJECT_NAME} pthread)
endif()
target_compile_options(${PROJECT_NAME}
PRIVATE "${SDK_COMPILER_FLAGS}")
================================================
FILE: ptest/src/Config.cc
================================================
#include <string.h>
#include <string>
#include "Config.h"
#include <sstream>
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace AlibabaCloud::OSS::PTest;
std::string Config::Version = "cpp-sdk-perf-test-1.0.0 ";
std::string Config::Endpoint = "";
std::string Config::AccessKeyId = "";
std::string Config::AccessKeySecret = "";
std::string Config::BucketName = "";
std::string Config::OssCfgFile = "oss.ini";
std::string Config::Command = "";
std::string Config::BaseLocalFile = "";
std::string Config::BaseRemoteKey = "";
int Config::PartSize = 100 * 1024 * 1024;
int Config::Parallel = 5;
int Config::Multithread = 1;
int Config::LoopTimes = 1;
int Config::LoopDurationS = -1;
bool Config::Persistent = false;
bool Config::DifferentSource = false;
bool Config::CrcCheck = true;
int Config::SpeedKBPerSec = 0; //
bool Config::Debug = false;
bool Config::DumpDetail = false;
bool Config::PrintPercentile = false;
static std::string LeftTrim(const char* source)
{
std::string copy(source);
copy.erase(copy.begin(), std::find_if(copy.begin(), copy.end(), [](unsigned char ch) { return !::isspace(ch); }));
return copy;
}
static std::string RightTrim(const char* source)
{
std::string copy(source);
copy.erase(std::find_if(copy.rbegin(), copy.rend(), [](unsigned char ch) { return !::isspace(ch); }).base(), copy.end());
return copy;
}
static std::string Trim(const char* source)
{
return LeftTrim(RightTrim(source).c_str());
}
static std::string LeftTrimQuotes(const char* source)
{
std::string copy(source);
copy.erase(copy.begin(), std::find_if(copy.begin(), copy.end(), [](int ch) { return !(ch == '"'); }));
return copy;
}
static std::string RightTrimQuotes(const char* source)
{
std::string copy(source);
copy.erase(std::find_if(copy.rbegin(), copy.rend(), [](int ch) { return !(ch == '"'); }).base(), copy.end());
return copy;
}
static std::string TrimQuotes(const char* source)
{
return LeftTrimQuotes(RightTrimQuotes(source).c_str());
}
void Config::PrintHelp()
{
std::cout << "\n";
std::cout << "Usage: cpp-sdk-ptest [-h] [-v] [-c COMMAND] [-f LOCALFILE] \n";
std::cout << " [-k REMOTEKEY] [-p PARALLEL] \n";
std::cout << " [-m MULTITHREAD] [--partSize PARTSIZE] \n";
std::cout << " [-loopTimes TIMES]|[--loopDuration SEC]|[--persistent] \n";
std::cout << " [--differentsource] \n";
std::cout << "Optional arguments: \n";
std::cout << " -h, --help show this help mestd::coutage and exit. \n";
std::cout << " -v show program's version number and exit. \n";
std::cout << " -c COMMAND Command Type : upload(up), upload_resumable(upr), upload_async(upa), download(dn), download_async(dna) . \n";
std::cout << " -b BUCKETNAME bucket name. \n";
std::cout << " -f LOCALFILE local filename to transfer. \n";
std::cout << " -k REMOTEKEY remote object key. \n";
std::cout << " -p PARALLEL parallel threads parameter for resumable breakpoint transfer. \n";
std::cout << " -m MULTITHREAD multithread number for transfer. \n";
std::cout << " --partSize PARTSIZE part size parameter for resume breakpoint transfer. \n";
std::cout << " --loopTimes TIMES how many times to do test. \n";
std::cout << " --loopDuration SEC how many seconds to do test. \n";
std::cout << " --persistent Whether run the command persistantly. \n";
std::cout << " --differentsource Whether transfer from different source files. \n";
std::cout << " --limit SPEED Whether to limit the upload or download speed, in kB/s. \n";
std::cout << " --detail print detail inforamtion for each testcase. \n";
std::cout << " --percentile print the 90th and 95th percentile value. \n";
std::cout << "\nExamples : \n";
std::cout << " cpp-sdk-ptest -c upload -f mylocalfilename -k myobjectkeyname \n";
std::cout << " cpp-sdk-ptest -c up -f mylocalfilename -k myobjectkeyname -b mybucketname\n";
std::cout << " cpp-sdk-ptest -c upload_resumable -f mylocalfilename -k myobjectkeyname -p 5 \n";
std::cout << " cpp-sdk-ptest -c upload_multipart -f mylocalfilename -k myobjectkeyname -p 5 \n";
std::cout << " cpp-sdk-ptest -c upr -f mylocalfilename -k myobjectkeyname -p 10 \n";
std::cout << " cpp-sdk-ptest -c upload_async -f mylocalfilename -k myobjectkeyname \n";
std::cout << " cpp-sdk-ptest -c upa -f mylocalfilename -k myobjectkeyname -m 5 \n";
std::cout << " cpp-sdk-ptest -c up -f mylocalfilename -k myobjectkeyname -m 5 \n";
std::cout << " cpp-sdk-ptest -c download -f mylocalfilename -k myobjectkeyname \n";
std::cout << " cpp-sdk-ptest -c download_resumable -f mylocalfilename -k myobjectkeyname -p 5 \n";
std::cout << " cpp-sdk-ptest -c dnr -f mylocalfilename -k myobjectkeyname \n";
std::cout << " cpp-sdk-ptest -c dnr -f mylocalfilename -k myobjectkeyname -p 5 \n";
std::cout << " cpp-sdk-ptest -c download_async -f mylocalfilename -k myobjectkeyname \n";
std::cout << " cpp-sdk-ptest -c dna -f mylocalfilename -k myobjectkeyname -m 5 \n";
std::cout << " cpp-sdk-ptest -c dn -f mylocalfilename -k myobjectkeyname -m 5 \n";
}
void Config::PrintCfgInfo()
{
std::cout << "\n";
std::cout << "version : " << Config::Version << std::endl;
std::cout << "endpoint : " << Config::Endpoint << std::endl;
std::cout << "accessKeyId : " << Config::AccessKeyId << std::endl;
std::cout << "bucketName : " << Config::BucketName << std::endl;
std::cout << "command : " << Config::Command << std::endl;
std::cout << "localfile : " << Config::BaseLocalFile << std::endl;
std::cout << "remotekey : " << Config::BaseRemoteKey << std::endl;
if (!Config::Command.compare("upload_resumable") || Config::Command.compare("download_resumable"))
{
std::cout << "parallel : " << Config::Parallel << std::endl;
std::cout << "partSize : " << Config::PartSize << std::endl;
}
std::cout << "multithread : " << Config::Multithread << std::endl;
std::cout << "loopTimes : " << Config::LoopTimes << std::endl;
std::cout << "loopDuration : " << Config::LoopDurationS << std::endl;
std::cout << "persistent : " << Config::Persistent << std::endl;
std::cout << "differentsource : " << Config::DifferentSource << std::endl;
std::cout << "limit speed : " << Config::SpeedKBPerSec << std::endl;
}
int Config::ParseArg(int argc, char **argv)
{
if (argc < 2)
{
PrintHelp();
return -1;
}
int i = 1;
while (i < argc)
{
if (argv[i][0] == '-')
{
if (!strcmp("--help", argv[i]) || !strcmp("-h", argv[i])) {
PrintHelp();
return -1;
}
else if (!strcmp("-v", argv[i])) {
std::cout << Config::Version << std::endl;
return -1;
}
else if (!strcmp("-c", argv[i])) {
Config::Command = argv[i + 1];
if (Config::Command == "up")
{
Config::Command = "upload";
}
else if (Config::Command == "upr")
{
Config::Command = "upload_resumable";
}
else if (Config::Command == "upa")
{
Config::Command = "upload_async";
}
else if (Config::Command == "dn")
{
Config::Command = "download";
}
else if (Config::Command == "dnr")
{
Config::Command = "download_resumable";
}
else if (Config::Command == "dna")
{
Config::Command = "download_async";
}
i++;
}
else if (!strcmp("-b", argv[i])) {
Config::BucketName = argv[i + 1];
i++;
}
else if (!strcmp("-f", argv[i])) {
Config::BaseLocalFile = argv[i + 1];
i++;
}
else if (!strcmp("-k", argv[i])) {
Config::BaseRemoteKey = argv[i + 1];
i++;
}
else if (!strcmp("-p", argv[i])) {
Config::Parallel = std::atoi(argv[i + 1]);
i++;
}
else if (!strcmp("-m", argv[i])) {
Config::Multithread = std::atoi(argv[i + 1]);
i++;
}
else if (!strcmp("-d", argv[i])) {
Config::Debug = true;
}
else if (!strcmp("--partSize", argv[i])) {
Config::PartSize = std::atoi(argv[i + 1]);
i++;
}
else if (!strcmp("--loopTimes", argv[i])) {
Config::LoopTimes = std::atoi(argv[i + 1]);
Config::LoopDurationS = -1;
i++;
}
else if (!strcmp("--loopDuration", argv[i])) {
Config::LoopDurationS = std::atoi(argv[i + 1]);
Config::LoopTimes = -1;
i++;
}
else if (!strcmp("--persistent", argv[i])) {
Config::Persistent = true;
i++;
}
else if (!strcmp("--differentsource", argv[i])) {
i++;
}
else if (!strcmp("--limit", argv[i])) {
Config::SpeedKBPerSec = std::atoi(argv[i + 1]);
i++;
}
else if (!strcmp("--detail", argv[i])) {
Config::DumpDetail = true;
}
else if (!strcmp("--percentile", argv[i])) {
Config::PrintPercentile = true;
}
}
i++;
};
return 0;
}
int Config::LoadCfgFile()
{
std::fstream in(Config::OssCfgFile, std::ios::in | std::ios::binary);
if (!in.good()) {
std::cout << "Open oss.ini file fail." << std::endl;
return 1;
}
char buffer[256];
char *ptr;
while (in.getline(buffer, 256)) {
ptr = strchr(buffer, '=');
if (!ptr) {
continue;
}
if (!strncmp(buffer, "AccessKeyId", 11)) {
Config::AccessKeyId = TrimQuotes(Trim(ptr + 1).c_str());
}
else if (!strncmp(buffer, "AccessKeySecret", 15)) {
Config::AccessKeySecret = TrimQuotes(Trim(ptr + 1).c_str());
}
else if (!strncmp(buffer, "Endpoint", 8)) {
Config::Endpoint = TrimQuotes(Trim(ptr + 1).c_str());
}
else if (!strncmp(buffer, "BucketName", 10)) {
Config::BucketName = TrimQuotes(Trim(ptr + 1).c_str());
}
}
if (Config::AccessKeyId.empty() ||
Config::AccessKeySecret.empty() ||
Config::Endpoint.empty() ||
Config::BucketName.empty()) {
std::cout << "one of AK, SK, endpoint and BucketName is not config, please set the oss.ini file." << std::endl;
return 1;
}
return 0;
}
================================================
FILE: ptest/src/Config.h
================================================
#include <string>
namespace AlibabaCloud
{
namespace OSS
{
namespace PTest
{
class Config
{
public:
Config() = default;
static void PrintHelp();
static void PrintCfgInfo();
static int ParseArg(int argc, char **argv);
static int LoadCfgFile();
public:
static std::string Version;
static std::string Endpoint;
static std::string AccessKeyId;
static std::string AccessKeySecret;
static std::string BucketName;
static std::string OssCfgFile;
static std::string Command;
static std::string BaseLocalFile;
static std::string BaseRemoteKey;
static int PartSize;
static int Parallel;
static int Multithread;
static int LoopTimes;
static int LoopDurationS;
static bool Persistent;
static bool DifferentSource;
static bool CrcCheck;
static int SpeedKBPerSec;
static bool Debug;
static bool DumpDetail;
static bool PrintPercentile;
};
}
}
}
================================================
FILE: ptest/src/Program.cc
================================================
#include <alibabacloud/oss/OssClient.h>
#include <alibabacloud/oss/client/RateLimiter.h>
#include <iostream>
#include <memory>
#include "Config.h"
#include <fstream>
#include <future>
#include <thread>
#include <chrono>
#include <iomanip>
#include <atomic>
#include<algorithm>
using namespace AlibabaCloud::OSS;
using namespace AlibabaCloud::OSS::PTest;
static std::chrono::system_clock::time_point totalStartTimePoint;
static std::chrono::system_clock::time_point totalStopTimePoint;
static int64_t totalTransferSize;
static int64_t totalTransferDurationMS;
static int64_t minTransferDurationMS;
static int64_t maxTransferDurationMS;
static int totalSucessCnt;
static int totalFailCnt;
static std::mutex logMtx;
static std::mutex updateMtx;
static uint64_t uploadFileCRC64;
struct taskResult
{
int taskId;
bool success;
int64_t seqNum;
int64_t transferSize;
std::chrono::system_clock::time_point startTimePoint;
std::chrono::system_clock::time_point stopTimePoint;
};
using TaskResultVector = std::vector<taskResult>;
static std::vector<TaskResultVector> totalResults;
class DefaultRateLimiter : public RateLimiter
{
public:
DefaultRateLimiter() :rate_(0) {};
~DefaultRateLimiter() {};
virtual void setRate(int rate) { rate_ = rate; };
virtual int Rate() const { return rate_; };
private:
int rate_;
};
static std::string to_datetime_string(const std::chrono::system_clock::time_point tp)
{
auto tt = std::chrono::system_clock::to_time_t(tp);
struct tm tm;
char date[60] = { 0 };
#ifdef _WIN32
localtime_s(&tm, &tt);
sprintf_s(date, "%d-%02d-%02d %02d:%02d:%02d",
#else
localtime_r(&tt, &tm);
sprintf(date, "%d-%02d-%02d %02d:%02d:%02d",
#endif // _WIN32
(int)tm.tm_year + 1900, (int)tm.tm_mon + 1, (int)tm.tm_mday,
(int)tm.tm_hour, (int)tm.tm_min, (int)tm.tm_sec);
return std::string(date);
}
static int64_t get_file_size(const std::string& file)
{
std::fstream f(file, std::ios::in | std::ios::binary);
f.seekg(0, f.end);
int64_t size = f.tellg();
f.close();
return size;
}
static uint64_t get_file_crc64(const std::string& file)
{
std::fstream f(file, std::ios::in | std::ios::binary);
const int buffer_size = 2048;
char streamBuffer[buffer_size];
uint64_t initcrc = 0;
while (f.good())
{
f.read(streamBuffer, buffer_size);
auto bytesRead = f.gcount();
if (bytesRead > 0)
{
initcrc = ComputeCRC64(initcrc, static_cast<void *>(streamBuffer), static_cast<size_t>(bytesRead));
}
}
f.close();
return initcrc;
}
static int calculate_part_count(int64_t totalSize, int singleSize)
{
auto partCount = totalSize / singleSize;
if (totalSize % singleSize != 0)
{
partCount++;
}
return static_cast<int>(partCount);
}
static bool is_test_done(int loopcnt, std::chrono::system_clock::time_point startTp)
{
if (Config::Persistent)
return false;
if ((Config::LoopTimes > 0) && (loopcnt <= Config::LoopTimes))
return false;
if (Config::LoopDurationS > 0) {
auto currTp = std::chrono::system_clock::now();
int diff = (int)(std::chrono::duration_cast<std::chrono::seconds>(currTp - startTp)).count();
if (diff < Config::LoopDurationS)
return false;
}
return true;
}
static void log_msg(std::ostream & out, const std::string &msg)
{
std::unique_lock<std::mutex> lck(logMtx);
out << msg;
out.flush();
}
static void log_result_detail_msg(std::ostream& out)
{
std::unique_lock<std::mutex> lck(logMtx);
std::stringstream ss;
out << "Dump Detail:" << std::endl;
out << "Result, TaskId, SeqNum, DurationMs, TransferSize, TransferRate MB/s" << std::endl;
for (const auto& results : totalResults) {
for (const auto& result : results) {
ss.str("");
ss << std::setiosflags(std::ios::fixed) << std::setprecision(2);
int64_t durationMs = (std::chrono::duration_cast<std::chrono::milliseconds>(result.stopTimePoint - result.startTimePoint)).count();
ss << (result.success ? "OK" : "NG") <<
"," << result.taskId <<
"," << result.seqNum <<
"," << durationMs;
if (result.success) {
ss << "," << result.transferSize;
ss << "," << ((double)result.transferSize / 1024.0f / 1024.0f) / ((double)durationMs / 1000.0f);
}
else {
ss << ", ,";
}
ss << std::endl;
out << ss.str();
}
}
out.flush();
}
static void get_90th_95th_latency_percentile(int64_t &per90, int64_t &per95)
{
std::vector<int64_t> latentcy;
for (const auto& results : totalResults) {
for (const auto& result : results) {
int64_t durationMs = (std::chrono::duration_cast<std::chrono::milliseconds>(result.stopTimePoint - result.startTimePoint)).count();
latentcy.push_back(durationMs);
}
}
std::sort(latentcy.begin(), latentcy.end());
per90 = latentcy[latentcy.size() * 90 / 100];
per95 = latentcy[latentcy.size() * 95 / 100];
}
static std::string get_task_key(int taskId)
{
std::string key(Config::BaseRemoteKey);
if (Config::Command == "upload") {
key.append("-").append(std::to_string(taskId));
}
else if (Config::Command == "upload_resumable") {
key.append("-resumable").append(std::to_string(taskId));
}
else if (Config::Command == "upload_async") {
key.append("-async").append(std::to_string(taskId));
}
return key;
}
static std::string get_task_fileName(int taskId)
{
std::string fileName(Config::BaseLocalFile);
if (Config::Command == "download") {
fileName.append("-").append(std::to_string(taskId));
}
else if (Config::Command == "download_resumable") {
fileName.append("-resumable").append(std::to_string(taskId));
}
else if (Config::Command == "download_async") {
fileName.append("-async").append(std::to_string(taskId));
}
return fileName;
}
static taskResult upload(const OssClient &client, const std::string &key, const std::string &fileToUpload)
{
taskResult result;
std::stringstream ss;
result.transferSize = get_file_size(fileToUpload);
result.startTimePoint = std::chrono::system_clock::now();
auto outcome = client.PutObject(Config::BucketName, key, fileToUpload);
result.success = outcome.isSuccess();
result.stopTimePoint = std::chrono::system_clock::now();
return result;
}
static taskResult upload_async(const OssClient &client, const std::string &key, const std::string &fileToUpload)
{
taskResult result;
result.transferSize = get_file_size(fileToUpload);
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(fileToUpload, std::ios::in|std::ios::binary);
auto outcomeCallable = client.PutObjectCallable(PutObjectRequest(Config::BucketName, key, content));
auto outcome = outcomeCallable.get();
result.startTimePoint = std::chrono::system_clock::now();
result.success = outcome.isSuccess();
result.stopTimePoint = std::chrono::system_clock::now();
return result;
}
static taskResult upload_resumable(const OssClient &client, const std::string &key, const std::string &fileToUpload)
{
taskResult result;
result.transferSize = get_file_size(fileToUpload);
UploadObjectRequest request(Config::BucketName, key, fileToUpload);
request.setPartSize(Config::PartSize);
request.setThreadNum(Config::Parallel);
result.startTimePoint = std::chrono::system_clock::now();
auto outcome = client.ResumableUploadObject(request);
result.stopTimePoint = std::chrono::system_clock::now();
result.success = outcome.isSuccess();
return result;
}
struct SubTaskInfo {
int partNum;
int64_t offset;
};
static taskResult upload_multipart(const OssClient &client, const std::string &key, const std::string &fileToUpload)
{
taskResult result;
result.transferSize = get_file_size(fileToUpload);
result.startTimePoint = std::chrono::system_clock::now();
// Set the part size
const int partSize = Config::PartSize;
const int64_t fileLength = result.transferSize;
auto partCount = calculate_part_count(fileLength, partSize);
std::vector< SubTaskInfo> SubTaskInfos;
for (auto i = 0; i < partCount; i++) {
SubTaskInfo subinfo;
subinfo.partNum = i + 1;
subinfo.offset = partSize;
subinfo.offset *= i;
SubTaskInfos.push_back(subinfo);
}
std::vector<PutObjectOutcomeCallable> outcomes;
bool failed = false;
std::string code;
std::string message;
InitiateMultipartUploadRequest imuRequest(Config::BucketName, key);
auto initOutcome = client.InitiateMultipartUpload(imuRequest);
if (initOutcome.isSuccess()) {
while (!SubTaskInfos.empty() && !failed) {
if (outcomes.size() < static_cast<size_t>(Config::Parallel)) {
SubTaskInfo subinfo = *SubTaskInfos.begin();
SubTaskInfos.erase(SubTaskInfos.begin());
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(fileToUpload, std::ios::in | std::ios::binary);
content->seekg(subinfo.offset);
UploadPartRequest request(Config::BucketName, key, content);
request.setPartNumber(subinfo.partNum);
request.setUploadId(initOutcome.result().UploadId());
request.setContentLength(Config::PartSize);
auto outcomeCallable = client.UploadPartCallable(request);
outcomes.emplace_back(std::move(outcomeCallable));
}
//check all outcomes
for (auto it = outcomes.begin(); !failed && it != outcomes.end();) {
auto status = it->wait_for(std::chrono::milliseconds(100));
if (status == std::future_status::ready) {
auto outcome = it->get();
if (!outcome.isSuccess()) {
failed = true;
code = outcome.error().Code();
message = outcome.error().Message();
}
it = outcomes.erase(it);
}
else {
it++;
}
}
}
for (auto it = outcomes.begin(); !failed && it != outcomes.end(); it++) {
auto outcome = it->get();
if (!outcome.isSuccess()) {
failed = true;
code = outcome.error().Code();
message = outcome.error().Message();
}
}
if (!failed) {
auto listOutcome = client.ListParts(ListPartsRequest(Config::BucketName, key, initOutcome.result().UploadId()));
if (listOutcome.isSuccess()) {
auto cOutcome = client.CompleteMultipartUpload(
CompleteMultipartUploadRequest(Config::BucketName, key,
listOutcome.result().PartList(),
initOutcome.result().UploadId()));
if (!cOutcome.isSuccess()) {
failed = true;
code = listOutcome.error().Code();
message = listOutcome.error().Message();
}
else {
if (cOutcome.result().CRC64() != uploadFileCRC64) {
failed = true;
code = "CRC64 check fail.";
message = "CRC64 check fail.";
}
}
}
else {
failed = true;
code = listOutcome.error().Code();
message = listOutcome.error().Message();
}
}
}
else {
failed = true;
code = initOutcome.error().Code();
message = initOutcome.error().Message();
}
result.stopTimePoint = std::chrono::system_clock::now();
result.success = !failed;
return result;
}
static taskResult download(const OssClient &client, const std::string &key, const std::string &fileToSave)
{
taskResult result;
result.startTimePoint = std::chrono::system_clock::now();
auto outcome = client.GetObject(Config::BucketName, key, fileToSave);
result.stopTimePoint = std::chrono::system_clock::now();
result.success = outcome.isSuccess();
if (outcome.isSuccess()) {
result.transferSize = outcome.result().Metadata().ContentLength();
}
return result;
}
static taskResult download_async(const OssClient &client, const std::string &key, const std::string &fileToSave)
{
taskResult result;
GetObjectRequest request(Config::BucketName, key);
request.setResponseStreamFactory([=]() {return std::make_shared<std::fstream>(fileToSave, std::ios_base::out | std::ios_base::trunc | std::ios::binary); });
result.startTimePoint = std::chrono::system_clock::now();
auto outcomeCallable = client.GetObjectCallable(request);
auto outcome = outcomeCallable.get();
result.stopTimePoint = std::chrono::system_clock::now();
result.success = outcome.isSuccess();
if (outcome.isSuccess()) {
result.transferSize = outcome.result().Metadata().ContentLength();
}
return result;
}
static taskResult download_resumable(const OssClient &client, const std::string &key, const std::string &fileToSave)
{
taskResult result;
DownloadObjectRequest request(Config::BucketName, key, fileToSave);
request.setPartSize(Config::PartSize);
request.setThreadNum(Config::Parallel);
result.startTimePoint = std::chrono::system_clock::now();
auto outcome = client.ResumableDownloadObject(request);
result.stopTimePoint = std::chrono::system_clock::now();
result.success = outcome.isSuccess();
if (outcome.isSuccess()) {
result.transferSize = outcome.result().Metadata().ContentLength();
}
return result;
}
static void runSingleTask(int taskId)
{
taskResult result;
TaskResultVector &resultVec = totalResults[taskId];
std::string key = get_task_key(taskId);
std::string fileName = get_task_fileName(taskId);
std::stringstream ss;
auto startTime = std::chrono::system_clock::now();
int64_t taskMinTransferDurationMs = 0x7FFFFFFF;
int64_t taskMaxTransferDurationMs = -1;
int64_t taskAvgTrasnferDurationMs = -1;
int64_t taskTransferSize = 0;
int64_t taskTransferDurationMs = 0;
int taskSucessCnt = 0;
int taskFailCnt = 0;
ClientConfiguration conf;
auto rateLimiter = std::make_shared<DefaultRateLimiter>();
if (Config::SpeedKBPerSec > 0) {
rateLimiter->setRate(Config::SpeedKBPerSec);
conf.sendRateLimiter = rateLimiter;
conf.recvRateLimiter = rateLimiter;
}
OssClient client(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
if (Config::LoopTimes == 0)
{
Config::Persistent = true;
}
auto _ = ss.str();
ss << "\n++++ START " << Config::Command <<
" : taskID=" << taskId <<
", LocalFile=" << fileName <<
", RemoteKey=" << key <<
", StartTime=" << to_datetime_string(startTime) << std::endl;
log_msg(std::cout, ss.str());
int runIndex = 1;
//while ((runIndex <= Config::LoopTimes) || Config::Persistent)
while (!is_test_done(runIndex, startTime))
{
if (Config::Command == "upload") {
result = upload(client, key, fileName);
}
else if (Config::Command == "upload_resumable") {
result = upload_resumable(client, key, fileName);
}
else if (Config::Command == "upload_async") {
result = upload_async(client, key, fileName);
}
else if (Config::Command == "upload_multipart") {
result = upload_multipart(client, key, fileName);
}
else if (Config::Command == "download") {
result = download(client, key, fileName);
}
else if (Config::Command == "download_resumable") {
result = download_resumable(client, key, fileName);
}
else if (Config::Command == "download_async") {
result = download_async(client, key, fileName);
}
else {
std::cout << "The Command Type Error " << Config::Command << std::endl;
Config::PrintHelp();
break;
}
if (result.success) {
int64_t trasnferDuration = (std::chrono::duration_cast<std::chrono::milliseconds>(result.stopTimePoint - result.startTimePoint)).count();
taskTransferSize += result.transferSize;
taskTransferDurationMs += trasnferDuration;
taskSucessCnt += 1;
taskMinTransferDurationMs = std::min(trasnferDuration, taskMinTransferDurationMs);
taskMaxTransferDurationMs = std::max(trasnferDuration, taskMaxTransferDurationMs);
}
else {
taskFailCnt += 1;
}
if (Config::DumpDetail || Config::PrintPercentile) {
result.taskId = taskId;
result.seqNum = runIndex;
resultVec.push_back(result);
}
runIndex++;
}
if (taskSucessCnt > 0) {
taskAvgTrasnferDurationMs = taskTransferDurationMs / taskSucessCnt;
}
double taskTransferRateMBPerS = ((double)taskTransferSize / 1024.0f / 1024.0f) / ((double)taskTransferDurationMs / 1000.0f);
ss.str("");
ss << "\n---- STOP " << Config::Command <<
" : taskID=" << taskId <<
", LocalFile=" << fileName <<
", RemoteKey=" << key <<
", StopTime=" << to_datetime_string(result.stopTimePoint) << " " <<
", runTimes=" << runIndex <<
", OK=" << taskSucessCnt <<
", NG=" << taskFailCnt << std::setiosflags(std::ios::fixed) << std::setprecision(2) <<
", AvgTransferRate="<< taskTransferRateMBPerS << " MB / S" <<
", Latency(min,max,avg)=(" << taskMinTransferDurationMs << "," << taskMaxTransferDurationMs << "," << taskAvgTrasnferDurationMs << ") Ms"<< std::endl;
log_msg(std::cout, ss.str());
{
std::unique_lock<std::mutex> lck(updateMtx);
totalTransferSize += taskTransferSize;
totalTransferDurationMS += taskTransferDurationMs;
totalSucessCnt += taskSucessCnt;
totalFailCnt += taskFailCnt;
minTransferDurationMS = std::min(minTransferDurationMS, taskMinTransferDurationMs);
maxTransferDurationMS = std::max(maxTransferDurationMS, taskMaxTransferDurationMs);
}
}
void statistic_report_begin()
{
//calc upload file crc64 for
if (Config::Command.compare(0, 6, "upload") == 0) {
uploadFileCRC64 = get_file_crc64(Config::BaseLocalFile);
}
totalTransferDurationMS = 1;
minTransferDurationMS = 0x7FFFFFFF;
maxTransferDurationMS = -1;
totalTransferSize = 0;
totalStartTimePoint = std::chrono::system_clock::now();
totalSucessCnt = 0;
totalFailCnt = 0;
totalResults.resize(Config::Multithread);
std::stringstream ss;
ss << std::endl <<"The Begin : StartTime =" << to_datetime_string(totalStartTimePoint) << std::endl;
log_msg(std::cout, ss.str());
}
void statistic_report_end()
{
totalStopTimePoint = std::chrono::system_clock::now();
auto tp_diff = std::chrono::duration_cast<std::chrono::milliseconds>(totalStopTimePoint - totalStartTimePoint);
int64_t totalTimeMS = tp_diff.count();
std::stringstream ss;
ss << std::endl << std::setiosflags(std::ios::fixed) << std::setprecision(2);
ss << std::endl << "The End : StopTime =" << to_datetime_string(totalStopTimePoint) << ", TotalTime= " << tp_diff.count()/1000LL << " S" <<
", Command=" << Config::Command <<
", LocalFile=" << Config::BaseLocalFile <<
", RemoteKey=" << Config::BaseRemoteKey <<
", Parallel=" << Config::Parallel <<
", Multithread=" << Config::Multithread << std::endl <<
", LimitSpeed=" << Config::SpeedKBPerSec << " KB/S" << std::endl;
double transferSizeMB = (double)totalTransferSize / 1024.0f / 1024.0f;
double transferDurationS = (double)totalTimeMS / 1000.0f;
double transferRateMBPerS = transferSizeMB / transferDurationS;
int64_t avgTrasnferDurationMs = totalSucessCnt ? (totalTransferDurationMS / totalSucessCnt) : -1;
ss << "#### StatisticReport: AvgTransferRate="<< transferRateMBPerS << " MB/S" <<
", TotalSize=" << transferSizeMB << " MB"
", TotalDuration=" << transferDurationS << " Seconds." <<
", OK=" << totalSucessCnt <<
", NG=" << totalFailCnt <<
", Latency(min,max,avg)=(" << minTransferDurationMS << "," << maxTransferDurationMS << "," << avgTrasnferDurationMs << ") Ms";
if (Config::PrintPercentile) {
int64_t per90, per95;
get_90th_95th_latency_percentile(per90, per95);
ss << ", Latency Percentile(90th, 95th) Ms=(" << per90 << "," << per95 << ")";
}
ss << std::endl;
log_msg(std::cout, ss.str());
if (Config::DumpDetail) {
log_result_detail_msg(std::cout);
}
}
void LogCallbackFunc(LogLevel level, const std::string &stream)
{
if (level == LogLevel::LogOff)
return;
std::cout << stream;
}
int main(int argc, char **argv)
{
std::vector<std::future<void>> taskVec;
if (Config::ParseArg(argc, argv) != 0) {
return 0;
}
if (Config::LoadCfgFile() != 0) {
return 0;
}
AlibabaCloud::OSS::InitializeSdk();
if (Config::Debug) {
AlibabaCloud::OSS::SetLogLevel(AlibabaCloud::OSS::LogLevel::LogAll);
AlibabaCloud::OSS::SetLogCallback(LogCallbackFunc);
}
statistic_report_begin();
for (int i = 0; i < Config::Multithread; i++) {
auto task = std::async(std::launch::async, runSingleTask, i);
taskVec.emplace_back(std::move(task));
}
for (int i = 0; i < Config::Multithread; i++) {
taskVec[i].get();
}
statistic_report_end();
AlibabaCloud::OSS::ShutdownSdk();
return 0;
}
================================================
FILE: sample/CMakeLists.txt
================================================
#
# 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.
#
project(cpp-sdk-sample VERSION ${version})
file(GLOB sample_src "src/*")
if (NOT OSS_DISABLE_BUCKET)
file(GLOB sample_service_src "src/service/*")
file(GLOB sample_bucket_src "src/bucket/*")
endif()
file(GLOB sample_object_src "src/object/*")
file(GLOB sample_presignedurl_src "src/presignedurl/*")
if (NOT OSS_DISABLE_LIVECHANNEL)
file(GLOB sample_livechannel_src "src/LiveChannel/*")
endif()
if (NOT OSS_DISABLE_ENCRYPTION)
file(GLOB sample_encryption_src "src/encryption/*")
endif()
add_executable(${PROJECT_NAME}
${sample_src}
${sample_service_src}
${sample_bucket_src}
${sample_object_src}
${sample_presignedurl_src}
${sample_livechannel_src}
${sample_encryption_src})
target_include_directories(${PROJECT_NAME}
PRIVATE ${CMAKE_SOURCE_DIR}/sdk/include)
target_link_libraries(${PROJECT_NAME} cpp-sdk)
target_link_libraries(${PROJECT_NAME} ${CRYPTO_LIBS})
target_link_libraries(${PROJECT_NAME} ${CLIENT_LIBS})
if (${TARGET_OS} STREQUAL "LINUX")
target_link_libraries(${PROJECT_NAME} pthread)
endif()
target_compile_options(${PROJECT_NAME}
PRIVATE "${SDK_COMPILER_FLAGS}")
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
================================================
FILE: sample/src/Config.cc
================================================
#include <string>
#include "Config.h"
std::string Config::AccessKeyId = "";
std::string Config::AccessKeySecret = "";
std::string Config::Endpoint = "";
std::string Config::DirToDownload = "";
std::string Config::FileToUpload = "";
std::string Config::FileDownloadTo = "";
std::string Config::BigFileToUpload = "";
std::string Config::ImageFileToUpload = "";
std::string Config::CallbackServer = "";
std::string Config::CheckpointDir = "";
std::string Config::PublicKeyPath = "";
std::string Config::PrivateKeyPath = "";
================================================
FILE: sample/src/Config.h
================================================
#include <string>
class Config
{
public:
static std::string AccessKeyId;
static std::string AccessKeySecret;
static std::string Endpoint;
static std::string DirToDownload;
static std::string FileToUpload;
static std::string FileDownloadTo;
static std::string BigFileToUpload;
static std::string ImageFileToUpload;
static std::string CallbackServer;
static std::string CheckpointDir;
static std::string PublicKeyPath;
static std::string PrivateKeyPath;
};
================================================
FILE: sample/src/LiveChannel/LiveChannelSample.cc
================================================
#include <iostream>
#include <time.h>
#include "../Config.h"
#include "LiveChannelSample.h"
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
using namespace AlibabaCloud::OSS;
static void waitTimeinSec(int time)
{
#ifdef _WIN32
Sleep(time * 1000);
#else
sleep(time);
#endif
}
LiveChannelSample::LiveChannelSample(const std::string& bucket, const std::string& channelName):bucket_(bucket),channelName_(channelName),
timeStart_(0),timeEnd_(0),isSuccess_(false)
{
ClientConfiguration conf;
client = new OssClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
//CreateBucketRequest request(bucket_);
//client->CreateBucket(request);
}
LiveChannelSample::~LiveChannelSample()
{
if(nullptr != client)
{
delete client;
client = nullptr;
}
}
int LiveChannelSample::PutLiveChannel()
{
PutLiveChannelRequest request(bucket_, channelName_, "HLS");
auto putOutcome = client->PutLiveChannel(request);
if(putOutcome.isSuccess())
{
isSuccess_ = true;
rtmpUrl_ = putOutcome.result().PublishUrl();
std::cout << "rtmp publish url is "+rtmpUrl_ << std::endl;
std::cout << "rtmp play url is " + putOutcome.result().PlayUrl() << std::endl;
return 0;
}
return -1;
}
int LiveChannelSample::GetLiveChannelInfo()
{
isSuccess_ = false;
GetLiveChannelInfoRequest request(bucket_, channelName_);
auto getOutcome= client->GetLiveChannelInfo(request);
if(getOutcome.isSuccess())
{
isSuccess_ = true;
const GetLiveChannelInfoResult& result = getOutcome.result();
std::cout << "LiveChannel Info :" << std::endl;
std::cout << "Description: " << result.Description() << std::endl;
std::cout << "Status: " << result.Status() << std::endl;
std::cout << "ChannelType: " << result.Type() << std::endl;
std::cout << "FragDuration: " << result.FragDuration() << std::endl;
std::cout << "FragCount: " << result.FragCount() << std::endl;
std::cout << "PlaylistName: " << result.PlaylistName() << std::endl;
return 0;
}
return -1;
}
int LiveChannelSample::GetLiveChannelStat()
{
isSuccess_ = false;
GetLiveChannelStatRequest request(bucket_, channelName_);
auto getOutcome = client->GetLiveChannelStat(request);
if(getOutcome.isSuccess())
{
isSuccess_ = true;
const GetLiveChannelStatResult& result = getOutcome.result();
// before push rtmp stream, the live channel is in Idle status
std::cout << "LiveChannelStatus: " << result.Status() << std::endl;
return 0;
}
return -1;
}
int LiveChannelSample::ListLiveChannel()
{
isSuccess_ = false;
ListLiveChannelRequest request(bucket_);
auto listOutcome = client->ListLiveChannel(request);
if(listOutcome.isSuccess())
{
isSuccess_ = true;
const ListLiveChannelResult& result = listOutcome.result();
std::cout << "ListLiveChannelResult: " << std::endl;
std::cout << "Prefix: " << result.Prefix() << std::endl;
std::cout << "Marker: " << result.Marker() << std::endl;
std::cout << "NextMarker: " << result.NextMarker() << std::endl;
std::cout << "IsTruncated: " << result.IsTruncated() << std::endl;
std::cout << "MaxKeys: " << result.MaxKeys() << std::endl;
std::vector<LiveChannelInfo> vec = result.LiveChannelList();
for(std::size_t i=0; i<vec.size(); i++)
{
std::cout << " LiveChannelInfo: " << std::endl;
std::cout << " Name: " << vec[i].name << std::endl;
std::cout << " description: " << vec[i].description << std::endl;
std::cout << " status: " << vec[i].status << std::endl;
std::cout << " lastModified: " << vec[i].lastModified << std::endl;
std::cout << " publishUrl: " << vec[i].publishUrl << std::endl;
std::cout << " playUrl: " << vec[i].playUrl << std::endl;
}
return 0;
}
return -1;
}
int LiveChannelSample::GetLiveChannelHistory()
{
isSuccess_ = false;
int i = 0;
GetLiveChannelHistoryResult result;
timeStart_ = time(NULL);
timeEnd_ = timeStart_ + 3600;
std::cout << "timeStart: " << timeStart_ << " End: " << timeEnd_ << std::endl;
time_t expireTime = timeEnd_;
GenerateRTMPSignedUrlRequest request(bucket_, channelName_, "test_play_list.m3u8", expireTime);
auto generateOutcome = client->GenerateRTMPSignedUrl(request);
if(!generateOutcome.isSuccess())
{
std::cout << "GenerateRTMPSignedUrl fail" <<std::endl;
return -1;
}else{
signedRTMPUrl_ = generateOutcome.result();
std::cout << "GenerateRTMPSignedUrl success URL: " << signedRTMPUrl_ << std::endl;
}
// use ffmpeg or some other tools to push rtmp stream asynchronizely to signed url
// we will wait 15 minutes at most
while(1)
{
if(i>MAX_LOOP_TIMES)
break;
auto getOutcome = client->GetLiveChannelHistory(GetLiveChannelHistoryRequest(bucket_, channelName_));
if(getOutcome.isSuccess())
{
std::vector<LiveRecord> vec = getOutcome.result().LiveRecordList();
if(vec.size() > 0)
{
isSuccess_ = true;
result = getOutcome.result();
std::cout << "LiveRecordList size " << vec.size() << std::endl;
for(size_t j=0; j <vec.size(); j++)
{
std::cout << " LiveRecord: " << std::endl;
std::cout << " startTime: " << vec[j].startTime << std::endl;
std::cout << " endTime: " << vec[j].endTime << std::endl;
std::cout << " remoteAddr: " << vec[j].remoteAddr << std::endl;
}
waitTimeinSec(30);
break;
}else{
std::cout << "warning: LiveRecordList size is 0" << std::endl;
waitTimeinSec(15);
}
}
i++;
}
return 0;
}
int LiveChannelSample::PostVodPlayList()
{
isSuccess_ = false;
uint64_t startTime = time(NULL) - 3600;
uint64_t endTime = time(NULL) + 3600;
PostVodPlaylistRequest request(bucket_, channelName_, "test_play_list.m3u8", startTime, endTime);
auto postOutcome = client->PostVodPlaylist(request);
if(postOutcome.isSuccess())
{
isSuccess_ = true;
std::cout << "PostVodPlayList Success " << std::endl;
}
return 0;
}
int LiveChannelSample::GetVodPlayList()
{
isSuccess_ = false;
uint64_t startTime = time(NULL) - 3600;
uint64_t endTime = time(NULL) + 3600;
GetVodPlaylistRequest request(bucket_, channelName_, startTime, endTime);
auto getOutcome = client->GetVodPlaylist(request);
if(getOutcome.isSuccess())
{
isSuccess_ = true;
std::cout << "GetVodPlayList Success " << std::endl;
std::cout << "GetVodPlaylist result " << getOutcome.result().PlaylistContent() << std::endl;
}
return 0;
}
int LiveChannelSample::PutLiveChannelStatus()
{
isSuccess_ = false;
PutLiveChannelStatusRequest request(bucket_, channelName_, LiveChannelStatus::DisabledStatus);
auto putOutcome = client->PutLiveChannelStatus(request);
if(putOutcome.isSuccess())
{
isSuccess_ = true;
std::cout << "PutLiveChannelStatus Success " << std::endl;
}
return 0;
}
int LiveChannelSample::DeleteLiveChannel()
{
isSuccess_ = false;
DeleteLiveChannelRequest request(bucket_, channelName_);
auto deleteOutcome = client->DeleteLiveChannel(request);
if(deleteOutcome.isSuccess())
{
isSuccess_ = true;
std::cout << "DeleteLiveChannelSuccess " << std::endl;
}
return 0;
}
================================================
FILE: sample/src/LiveChannel/LiveChannelSample.h
================================================
#include <iostream>
#include <alibabacloud/oss/OssClient.h>
#define MAX_LOOP_TIMES 60
class LiveChannelSample
{
public:
LiveChannelSample(const std::string& bucket, const std::string& channeName);
~LiveChannelSample();
int PutLiveChannel();
int GetLiveChannelInfo();
int GetLiveChannelStat();
int ListLiveChannel();
int GetLiveChannelHistory();
int PostVodPlayList();
int GetVodPlayList();
int PutLiveChannelStatus();
int DeleteLiveChannel();
private:
AlibabaCloud::OSS::OssClient *client;
std::string bucket_;
std::string channelName_;
std::string rtmpUrl_;
std::string signedRTMPUrl_;
time_t timeStart_;
time_t timeEnd_;
bool isSuccess_;
};
================================================
FILE: sample/src/Program.cc
================================================
#include <alibabacloud/oss/OssClient.h>
#include <iostream>
#include "Config.h"
#if !defined(OSS_DISABLE_BUCKET)
#include "service/ServiceSample.h"
#include "bucket/BucketSample.h"
#endif
#include "object/ObjectSample.h"
#include "presignedurl/PresignedUrlSample.h"
#if !defined(OSS_DISABLE_LIVECHANNEL)
#include "LiveChannel/LiveChannelSample.h"
#endif
#if !defined(OSS_DISABLE_ENCRYPTION)
#include "encryption/EncryptionSample.h"
#endif
using namespace AlibabaCloud::OSS;
void LogCallbackFunc(LogLevel level, const std::string &stream)
{
if (level == LogLevel::LogOff)
return;
std::cout << stream;
}
int main(void)
{
std::cout << "oss-cpp-sdk samples" << std::endl;
std::string bucketName = "<YourBucketName>";
InitializeSdk();
SetLogLevel(LogLevel::LogDebug);
SetLogCallback(LogCallbackFunc);
#if !defined(OSS_DISABLE_BUCKET)
ServiceSample serviceSample;
serviceSample.ListBuckets();
serviceSample.ListBucketsWithMarker();
serviceSample.ListBucketsWithPrefix();
BucketSample bucketSample(bucketName);
bucketSample.InvalidBucketName();
bucketSample.CreateAndDeleteBucket();
bucketSample.SetBucketAcl();
bucketSample.SetBucketLogging();
bucketSample.SetBucketWebsite();
bucketSample.SetBucketReferer();
bucketSample.SetBucketLifecycle();
bucketSample.SetBucketCors();
bucketSample.GetBucketCors();
bucketSample.DeleteBucketLogging();
bucketSample.DeleteBucketWebsite();
bucketSample.DeleteBucketLifecycle();
bucketSample.DeleteBucketCors();
bucketSample.GetBucketAcl();
bucketSample.GetBucketLocation();
bucketSample.GetBucketLogging();
bucketSample.GetBucketWebsite();
bucketSample.GetBucketReferer();
bucketSample.GetBucketStat();
bucketSample.GetBucketLifecycle();
//bucketSample.DeleteBucketsByPrefix();
#endif
ObjectSample objectSample(bucketName);
objectSample.PutObjectFromBuffer();
objectSample.PutObjectFromFile();
objectSample.GetObjectToBuffer();
objectSample.GetObjectToFile();
objectSample.DeleteObject();
objectSample.DeleteObjects();
objectSample.HeadObject();
objectSample.GetObjectMeta();
objectSample.AppendObject();
objectSample.PutObjectProgress();
objectSample.GetObjectProgress();
objectSample.PutObjectCallable();
objectSample.GetObjectCallable();
objectSample.CopyObject();
//objectSample.RestoreArchiveObject("your-archive", "oss_archive_object.PNG", 1);
objectSample.ListObjects();
objectSample.ListObjectWithMarker();
objectSample.ListObjectWithEncodeType();
#if !defined(OSS_DISABLE_RESUAMABLE)
objectSample.UploadObjectProgress();
objectSample.MultiCopyObjectProcess();
objectSample.DownloadObjectProcess();
#endif
PresignedUrlSample signedUrlSample(bucketName);
signedUrlSample.GenGetPresignedUrl();
signedUrlSample.PutObjectByUrlFromBuffer();
signedUrlSample.PutObjectByUrlFromFile();
signedUrlSample.GetObjectByUrlToBuffer();
signedUrlSample.GetObjectByUrlToFile();
#if !defined(OSS_DISABLE_LIVECHANNEL)
// LiveChannel
LiveChannelSample liveChannelSample(bucketName, "test_channel");
liveChannelSample.PutLiveChannel();
liveChannelSample.GetLiveChannelInfo();
liveChannelSample.GetLiveChannelStat();
liveChannelSample.ListLiveChannel();
liveChannelSample.GetLiveChannelHistory();
liveChannelSample.PostVodPlayList();
liveChannelSample.GetVodPlayList();
liveChannelSample.PutLiveChannelStatus();
liveChannelSample.DeleteLiveChannel();
#endif
#if !defined(OSS_DISABLE_ENCRYPTION)
// Encryption
EncryptionSample encryptionSample(bucketName);
encryptionSample.PutObjectFromBuffer();
encryptionSample.PutObjectFromFile();
encryptionSample.GetObjectToBuffer();
encryptionSample.GetObjectToFile();
#if !defined(DISABLE_RESUAMABLE)
encryptionSample.UploadObjectProgress();
encryptionSample.DownloadObjectProcess();
encryptionSample.MultipartUploadObject();
#endif
#endif
ShutdownSdk();
return 0;
}
================================================
FILE: sample/src/bucket/BucketSample.cc
================================================
#include <iostream>
#include "../Config.h"
#include "BucketSample.h"
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
using namespace AlibabaCloud::OSS;
static void waitTimeinSec(int time)
{
#ifdef _WIN32
Sleep(time * 1000);
#else
sleep(time);
#endif
}
BucketSample::BucketSample(const std::string &bucket):
bucket_(bucket)
{
ClientConfiguration conf;
client = new OssClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
CreateBucketRequest request(bucket_);
client->CreateBucket(request);
}
BucketSample::~BucketSample() {
delete client;
}
void BucketSample::PrintError(const std::string &funcName, const OssError &error)
{
std::cout << funcName << " fail" <<
",code:" << error.Code() <<
",message:" << error.Message() <<
",request_id:" << error.RequestId() << std::endl;
}
void BucketSample::InvalidBucketName()
{
SetBucketAclRequest request("invalid-BucketName", CannedAccessControlList::Private);
auto outcome = client->SetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " to private success " << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
SetBucketLoggingRequest log_request("invalid-BucketName", bucket_, "LogPrefix");
auto log_outcome = client->SetBucketLogging(log_request);
if (log_outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success " << std::endl;
}
else {
PrintError(__FUNCTION__, log_outcome.error());
}
}
void BucketSample::CreateAndDeleteBucket()
{
std::string bucket = bucket_ + "-createbucketsample";
CreateBucketRequest request(bucket, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
auto outcome = client->CreateBucket(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " create bucket success " << std::endl;
} else {
PrintError(__FUNCTION__, outcome.error());
}
DeleteBucketRequest drequest(bucket);
auto doutcome = client->DeleteBucket(drequest);
if (doutcome.isSuccess()) {
std::cout << __FUNCTION__ << " delete bucket success " << std::endl;
}
else {
PrintError(__FUNCTION__, doutcome.error());
}
}
void BucketSample::SetBucketAcl()
{
SetBucketAclRequest request(bucket_, CannedAccessControlList::Private);
auto outcome = client->SetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " to private success " << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
request.setAcl(CannedAccessControlList::PublicReadWrite);
auto outcome1 = client->SetBucketAcl(request);
if (outcome1.isSuccess()) {
std::cout << __FUNCTION__ << " to public-read-write success " << std::endl;
}
else {
PrintError(__FUNCTION__, outcome1.error());
}
}
void BucketSample::SetBucketLogging()
{
SetBucketLoggingRequest request(bucket_, bucket_, "LogPrefix");
auto outcome = client->SetBucketLogging(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::SetBucketWebsite()
{
SetBucketWebsiteRequest request(bucket_);
request.setIndexDocument("index.html");
request.setIndexDocument("error.html");
auto outcome = client->SetBucketWebsite(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::SetBucketReferer()
{
SetBucketRefererRequest request(bucket_);
request.addReferer("http://www.referersample.com");
request.addReferer("https://www.referersample.com");
request.addReferer("https://www.?.referersample.com");
request.addReferer("https://www.*.cn");
auto outcome = client->SetBucketReferer(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::SetBucketLifecycle()
{
SetBucketLifecycleRequest request(bucket_);
std::string date("2022 - 10 - 12T00:00 : 00.000Z");
auto rule1 = LifecycleRule();
rule1.setID("rule1");
rule1.setPrefix("test/");
rule1.setStatus(RuleStatus::Enabled);
rule1.setExpiration(3);
auto rule2 = LifecycleRule();
rule2.setID("rule2");
rule2.setPrefix("test/");
rule2.setStatus(RuleStatus::Disabled);
rule2.setExpiration(date);
auto rule3 = LifecycleRule();
rule3.setID("rule3");
rule3.setPrefix("test1/");
rule3.setStatus(RuleStatus::Enabled);
rule3.setAbortMultipartUpload(3);
auto rule4 = LifecycleRule();
rule4.setID("rule4");
rule4.setPrefix("test1/");
rule4.setStatus(RuleStatus::Enabled);
rule4.setAbortMultipartUpload(date);
LifecycleRuleList list{rule1, rule2, rule3, rule4};
request.setLifecycleRules(list);
auto outcome = client->SetBucketLifecycle(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::SetBucketCors()
{
SetBucketCorsRequest request(bucket_);
auto rule1 = CORSRule();
// Note: AllowedOrigin & AllowdMethod must not be empty.
rule1.addAllowedOrigin("http://www.a.com");
rule1.addAllowedMethod("POST");
rule1.addAllowedHeader("*");
rule1.addExposeHeader("x-oss-test");
request.addCORSRule(rule1);
auto rule2 = CORSRule();
rule2.addAllowedOrigin("http://www.b.com");
rule2.addAllowedMethod("GET");
rule2.addExposeHeader("x-oss-test2");
rule2.setMaxAgeSeconds(100);
request.addCORSRule(rule2);
auto outcome = client->SetBucketCors(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::DeleteBucketLogging()
{
DeleteBucketLoggingRequest request(bucket_);
auto outcome = client->DeleteBucketLogging(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::DeleteBucketWebsite()
{
DeleteBucketWebsiteRequest request(bucket_);
auto outcome = client->DeleteBucketWebsite(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::DeleteBucketLifecycle()
{
DeleteBucketLifecycleRequest request(bucket_);
auto outcome = client->DeleteBucketLifecycle(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::DeleteBucketCors()
{
auto outcome = client->DeleteBucketCors(bucket_);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, request_id:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketAcl()
{
GetBucketAclRequest request(bucket_);
auto outcome = client->GetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ori acl: " << outcome.result().Acl() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
SetBucketAclRequest request1(bucket_, CannedAccessControlList::PublicRead);
client->SetBucketAcl(request1);
waitTimeinSec(1);
outcome = client->GetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set public-read, acl:" << outcome.result().Acl() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketLocation()
{
GetBucketLocationRequest request(bucket_);
auto outcome = client->GetBucketLocation(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, location: " << outcome.result().Location() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
outcome = client->GetBucketLocation(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, location: " << outcome.result().Location() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketLogging()
{
GetBucketLoggingRequest request(bucket_);
auto outcome = client->GetBucketLogging(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, default TargetBucket: " << outcome.result().TargetBucket() <<
",TargetPrefix: " << outcome.result().TargetPrefix() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
SetBucketLoggingRequest request1(bucket_, bucket_, "LogPrefix-00");
client->SetBucketLogging(request1);
waitTimeinSec(1);
outcome = client->GetBucketLogging(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set itself with LogPrefix-00 , TargetBucket: " << outcome.result().TargetBucket() <<
" ,TargetPrefix: " << outcome.result().TargetPrefix() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
std::string bucket_01 = bucket_ + "01";
CreateBucketRequest request0(bucket_01);
client->CreateBucket(request0);
SetBucketLoggingRequest request2(bucket_, bucket_01, "LogPrefix-01");
client->SetBucketLogging(request2);
waitTimeinSec(1);
outcome = client->GetBucketLogging(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set other with LogPrefix-01 TargetBucket: " << outcome.result().TargetBucket() <<
" ,TargetPrefix: " << outcome.result().TargetPrefix() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketWebsite()
{
GetBucketWebsiteRequest request(bucket_);
auto outcome = client->GetBucketWebsite(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, default, IndexDocument: " << outcome.result().IndexDocument() <<
" ,ErrorDocument: " << outcome.result().ErrorDocument() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
SetBucketWebsiteRequest request0(bucket_);
request0.setIndexDocument("index.html");
client->SetBucketWebsite(request0);
waitTimeinSec(15);
outcome = client->GetBucketWebsite(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set index.html, IndexDocument: " << outcome.result().IndexDocument() <<
" ,ErrorDocument: " << outcome.result().ErrorDocument() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
request0.setIndexDocument("index1.html");
request0.setErrorDocument("error1.html");
client->SetBucketWebsite(request0);
waitTimeinSec(15);
outcome = client->GetBucketWebsite(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set index1.html, error1.html,IndexDocument: " << outcome.result().IndexDocument() <<
" ,ErrorDocument: " << outcome.result().ErrorDocument() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketReferer()
{
GetBucketRefererRequest request(bucket_);
auto outcome = client->GetBucketReferer(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, deffault AllowEmptyReferer: " << outcome.result().AllowEmptyReferer() <<
" ,Referer size: " << outcome.result().RefererList().size() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
SetBucketRefererRequest request0(bucket_);
request0.addReferer("http://www.referersample.com");
request0.addReferer("https://www.referersample.com");
request0.addReferer("https://www.?.referersample.com");
request0.addReferer("https://www.*.cn");
client->SetBucketReferer(request0);
waitTimeinSec(15);
outcome = client->GetBucketReferer(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set 4 refer, AllowEmptyReferer: " << outcome.result().AllowEmptyReferer() <<
" ,Referer size: " << outcome.result().RefererList().size() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
request0.clearRefererList();
request0.addReferer("https://www.?.referersample.com");
request0.addReferer("https://www.*.cn");
client->SetBucketReferer(request0);
waitTimeinSec(15);
outcome = client->GetBucketReferer(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, after set 2 refer, AllowEmptyReferer: " << outcome.result().AllowEmptyReferer() <<
" ,Referer size: " << outcome.result().RefererList().size() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketLifecycle()
{
auto outcome = client->GetBucketLifecycle(bucket_);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, rule size:%d, rules:" << std::endl;
for (auto const& rule : outcome.result().LifecycleRules()) {
std::cout << "rule:" << rule.ID() << "," << rule.Prefix() << "," << rule.Status() << ","
"hasExpiration:" << rule.hasExpiration() << "," <<
"hasTransitionList:" << rule.hasTransitionList() << "," <<
"hasAbortMultipartUpload:" << rule.hasAbortMultipartUpload() << std::endl;
}
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketStat()
{
GetBucketStatRequest request(bucket_);
auto outcome = client->GetBucketStat(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, storage: " << outcome.result().Storage() <<
" ,ObjectCount: " << outcome.result().ObjectCount() <<
" ,MultipartUploadCount:" << outcome.result().MultipartUploadCount() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::GetBucketCors()
{
auto outcome = client->GetBucketCors(bucket_);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success" << std::endl;
for (auto const& rule : outcome.result().CORSRules()) {
std::cout << "Get Bucket Cors List:" << std::endl;
for (auto const& origin : rule.AllowedOrigins()) {
std::cout << "Allowed origin:" << origin << std::endl;
}
}
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void BucketSample::CleanAndDeleteBucket(const std::string &bucket)
{
if (!client->DoesBucketExist(bucket))
return;
//versioning
auto infoOutcome = client->GetBucketInfo(bucket);
if (infoOutcome.isSuccess() && infoOutcome.result().VersioningStatus() != VersioningStatus::NotSet) {
//list objects by ListObjectVersions and delete object with versionId
ListObjectVersionsRequest request(bucket);
bool IsTruncated = false;
do {
auto outcome = client->ListObjectVersions(request);
if (outcome.isSuccess()) {
for (auto const &marker : outcome.result().DeleteMarkerSummarys()) {
client->DeleteObject(DeleteObjectRequest(bucket, marker.Key(), marker.VersionId()));
}
for (auto const &obj : outcome.result().ObjectVersionSummarys()) {
client->DeleteObject(DeleteObjectRequest(bucket, obj.Key(), obj.VersionId()));
}
}
else {
break;
}
request.setKeyMarker(outcome.result().NextKeyMarker());
request.setVersionIdMarker(outcome.result().NextVersionIdMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
}
//abort in progress multipart uploading
auto listOutcome = client->ListMultipartUploads(ListMultipartUploadsRequest(bucket));
if (listOutcome.isSuccess()) {
for (auto const &upload : listOutcome.result().MultipartUploadList())
{
client->AbortMultipartUpload(AbortMultipartUploadRequest(bucket, upload.Key, upload.UploadId));
}
}
//List And Delete Object
ListObjectsRequest request(bucket);
bool IsTruncated = false;
do {
auto outcome = client->ListObjects(request);
if (outcome.isSuccess()) {
for (auto const &obj : outcome.result().ObjectSummarys()) {
auto dOutcome = client->DeleteObject(DeleteObjectRequest(bucket, obj.Key()));
std::cout << __FUNCTION__ << "Delete Object:" << obj.Key() <<
", result:" << dOutcome.isSuccess() << std::endl;
}
}
else {
PrintError(__FUNCTION__, outcome.error());
break;
}
request.setMarker(outcome.result().NextMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
// Delete the bucket.
client->DeleteBucket(DeleteBucketRequest(bucket));
std::cout << __FUNCTION__ << " done" << std::endl;
}
void BucketSample::DeleteBucketsByPrefix()
{
std::string prefix = "cpp-sdk-";
ListBucketsRequest request;
request.setPrefix(prefix);
auto outcome = client->ListBuckets(request);
if (!outcome.isSuccess()) {
PrintError(__FUNCTION__, outcome.error());
return;
}
for (auto const &bucket : outcome.result().Buckets())
{
CleanAndDeleteBucket(bucket.Name());
}
std::cout << __FUNCTION__ << " done, and total is " << outcome.result().Buckets().size() << std::endl;
}
void BucketSample::DoesBucketExist()
{
auto outcome = client->DoesBucketExist(bucket_);
std::cout << __FUNCTION__ << " success, Bucket exist ? " << outcome << std::endl;
}
================================================
FILE: sample/src/bucket/BucketSample.h
================================================
#include <alibabacloud/oss/OssClient.h>
class BucketSample
{
public:
BucketSample(const std::string &bucket);
~BucketSample();
void DoesBucketExist();
void InvalidBucketName();
void CreateAndDeleteBucket();
void SetBucketAcl();
void SetBucketLogging();
void SetBucketWebsite();
void SetBucketReferer();
void SetBucketLifecycle();
void SetBucketCors();
void DeleteBucketLogging();
void DeleteBucketWebsite();
void DeleteBucketLifecycle();
void DeleteBucketCors();
void GetBucketAcl();
void GetBucketLocation();
void GetBucketLogging();
void GetBucketWebsite();
void GetBucketReferer();
void GetBucketLifecycle();
void GetBucketStat();
void GetBucketCors();
void CleanAndDeleteBucket(const std::string &bucket);
void DeleteBucketsByPrefix();
private:
void PrintError(const std::string &funcName, const AlibabaCloud::OSS::OssError &error);
AlibabaCloud::OSS::OssClient *client;
std::string bucket_;
};
================================================
FILE: sample/src/encryption/EncryptionSample.cc
================================================
#include <iostream>
#include "../Config.h"
#include "EncryptionSample.h"
#include <alibabacloud/oss/Const.h>
#include <memory>
#include <sstream>
#include <fstream>
#include <algorithm>
using namespace AlibabaCloud::OSS;
static int64_t getFileSize(const std::string& file)
{
std::fstream f(file, std::ios::in | std::ios::binary);
f.seekg(0, f.end);
int64_t size = f.tellg();
f.close();
return size;
}
static std::string readFromFile(const std::string& file)
{
std::fstream f(file, std::ios::in | std::ios::binary);
std::stringstream ss;
ss << f.rdbuf();
return ss.str();
}
EncryptionSample::EncryptionSample(const std::string &bucket) :
bucket_(bucket)
{
std::string publicKey = readFromFile(Config::PublicKeyPath);
std::string privateKey = readFromFile(Config::PrivateKeyPath);
ClientConfiguration conf;
CryptoConfiguration cryptoConf;
auto materials = std::make_shared<SimpleRSAEncryptionMaterials>(publicKey, privateKey);
client = new OssEncryptionClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret,
conf, materials, cryptoConf);
//CreateBucketRequest request(bucket_);
}
EncryptionSample::~EncryptionSample() {
delete client;
}
void EncryptionSample::PrintError(const std::string &funcName, const OssError &error)
{
std::cout << funcName << " fail" <<
",code:" << error.Code() <<
",message:" << error.Message() <<
",request_id:" << error.RequestId() << std::endl;
}
void EncryptionSample::PutObjectFromBuffer()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__;
PutObjectRequest request(bucket_, "PutObjectFromBuffer", content);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void EncryptionSample::PutObjectFromFile()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(Config::FileToUpload, std::ios::in | std::ios::binary);
PutObjectRequest request(bucket_, "PutObjectFromFile", content);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void EncryptionSample::GetObjectToBuffer()
{
GetObjectRequest request(bucket_, "PutObjectFromBuffer");
auto outcome = client->GetObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Content-Length:" << outcome.result().Metadata().ContentLength() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void EncryptionSample::GetObjectToFile()
{
GetObjectRequest request(bucket_, "PutObjectFromFile");
request.setResponseStreamFactory([=]() {return std::make_shared<std::fstream>("GetObjectToFile", std::ios_base::out | std::ios_base::in | std::ios_base::trunc| std::ios_base::binary); });
auto outcome = client->GetObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success" << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
static void ProgressCallback(size_t increment, int64_t transfered, int64_t total, void* userData)
{
std::cout << "ProgressCallback[" << userData << "] => " <<
increment <<" ," << transfered << "," << total << std::endl;
}
#if !defined(DISABLE_RESUAMABLE)
void EncryptionSample::UploadObjectProgress()
{
//case 1: checkpoint dir is not enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 2: checkpoint dir is enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload, Config::CheckpointDir);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 3: checkpoint dir, multi threads is enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload, Config::CheckpointDir, DefaultPartSize, 4);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
void EncryptionSample::DownloadObjectProcess()
{
//case 1: no checkpoint dir is coinfig
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 2: checkpoint dir is config
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo, Config::CheckpointDir);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 3: checkpoint dir is config, multi threads is config
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo, Config::CheckpointDir, DefaultPartSize, 4);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
#endif
void EncryptionSample::MultipartUploadObject()
{
std::string fileToUpload = Config::BigFileToUpload;
std::string key = "MultipartUploadObject";
auto fileSize = getFileSize(fileToUpload);
//must be 16 bytes alignment
int64_t partSize = 100 * 1024;
MultipartUploadCryptoContext cryptoCtx;
cryptoCtx.setPartSize(partSize);
cryptoCtx.setDataSize(fileSize);
InitiateMultipartUploadRequest initUploadRequest(bucket_, key);
auto uploadIdResult = client->InitiateMultipartUpload(initUploadRequest, cryptoCtx);
auto uploadId = uploadIdResult.result().UploadId();
PartList partETagList;
int partCount = static_cast<int>(fileSize / partSize);
// Calculate how many parts to be divided
if (fileSize % partSize != 0) {
partCount++;
}
// Upload multiparts to bucket
for (int i = 1; i <= partCount; i++) {
auto skipBytes = partSize * (i - 1);
auto size = (partSize < fileSize - skipBytes) ? partSize : (fileSize - skipBytes);
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(fileToUpload, std::ios::in|std::ios::binary);
content->seekg(skipBytes, std::ios::beg);
UploadPartRequest uploadPartRequest(bucket_, key, content);
uploadPartRequest.setContentLength(size);
uploadPartRequest.setUploadId(uploadId);
uploadPartRequest.setPartNumber(i);
auto uploadPartOutcome = client->UploadPart(uploadPartRequest, cryptoCtx);
if (uploadPartOutcome.isSuccess()) {
Part part(i, uploadPartOutcome.result().ETag());
partETagList.push_back(part);
}
else {
PrintError(__FUNCTION__, uploadPartOutcome.error());
}
}
// Complete to upload multiparts
CompleteMultipartUploadRequest request(bucket_, key);
request.setUploadId(uploadId);
request.setPartList(partETagList);
auto outcome = client->CompleteMultipartUpload(request, cryptoCtx);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, UploadID : " << uploadId << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
================================================
FILE: sample/src/encryption/EncryptionSample.h
================================================
#include <alibabacloud/oss/OssEncryptionClient.h>
class EncryptionSample
{
public:
EncryptionSample(const std::string &bucket);
~EncryptionSample();
void PutObjectFromBuffer();
void PutObjectFromFile();
void GetObjectToBuffer();
void GetObjectToFile();
void MultipartUploadObject();
#if !defined(OSS_DISABLE_RESUAMABLE)
void UploadObjectProgress();
void DownloadObjectProcess();
#endif
private:
void PrintError(const std::string &funcName, const AlibabaCloud::OSS::OssError &error);
AlibabaCloud::OSS::OssEncryptionClient *client;
std::string bucket_;
};
================================================
FILE: sample/src/object/ObjectSample.cc
================================================
#include <iostream>
#include "../Config.h"
#include "ObjectSample.h"
#include <alibabacloud/oss/Const.h>
#include <memory>
#include <sstream>
#include <fstream>
#include <algorithm>
static void waitTimeinSec(int time)
{
std::this_thread::sleep_for(std::chrono::seconds(time));
}
static int64_t getFileSize(const std::string& file)
{
std::fstream f(file, std::ios::in | std::ios::binary);
f.seekg(0, f.end);
int64_t size = f.tellg();
f.close();
return size;
}
using namespace AlibabaCloud::OSS;
ObjectSample::ObjectSample(const std::string &bucket) :
bucket_(bucket)
{
ClientConfiguration conf;
client = new OssClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
//CreateBucketRequest request(bucket_);
//client->CreateBucket(request);
}
ObjectSample::~ObjectSample() {
delete client;
}
void ObjectSample::PrintError(const std::string &funcName, const OssError &error)
{
std::cout << funcName << " fail" <<
",code:" << error.Code() <<
",message:" << error.Message() <<
",request_id:" << error.RequestId() << std::endl;
}
void ObjectSample::DoesObjectExist()
{
auto outcome = client->DoesObjectExist(bucket_, "DoesObjectExist");
std::cout << __FUNCTION__ << " success, Object exist ? " << outcome << std::endl;
}
void ObjectSample::PutFolder()
{
const std::string key("yourfolder/");
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
auto outcome = client->PutObject(bucket_, key, content);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, dir : " << key << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::PutObjectFromBuffer()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__;
PutObjectRequest request(bucket_, "PutObjectFromBuffer", content);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::PutObjectFromFile()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(__FILE__, std::ios::in | std::ios::binary);
PutObjectRequest request(bucket_, "PutObjectFromFile", content);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::GetObjectToBuffer()
{
GetObjectRequest request(bucket_, "PutObjectFromBuffer");
auto outcome = client->GetObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Content-Length:" << outcome.result().Metadata().ContentLength() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::GetObjectToFile()
{
GetObjectRequest request(bucket_, "PutObjectFromFile");
request.setResponseStreamFactory([=]() {return std::make_shared<std::fstream>("GetObjectToFile.txt", std::ios_base::out | std::ios_base::in | std::ios_base::trunc| std::ios_base::binary); });
auto outcome = client->GetObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success" << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::DeleteObject()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
PutObjectRequest request(bucket_, "DeleteObject", content);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Put Object ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
GetObjectRequest getRequest(bucket_, "DeleteObject");
auto getOutcome = client->GetObject(getRequest);
if (getOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Get Object ETag:" << getOutcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, getOutcome.error());
}
DeleteObjectRequest delRequest(bucket_, "DeleteObject");
auto delOutcome = client->DeleteObject(delRequest);
if (delOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Del Object" << std::endl;
}
else {
PrintError(__FUNCTION__, delOutcome.error());
}
getOutcome = client->GetObject(getRequest);
if (getOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ReGet Object ETag:" << getOutcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, getOutcome.error());
}
}
void ObjectSample::DeleteObjects()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__;
PutObjectRequest request(bucket_, "", content);
for (int i = 0; i < 10; i++) {
std::string key("DeleteObjects-");
key.append(std::to_string(i)).append(".txt");
request.setKey(key);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Gen Object:" << key << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
DeleteObjectsRequest delRequest(bucket_);
for (int i = 0; i < 5; i++) {
std::string key("DeleteObjects-");
key.append(std::to_string(i)).append(".txt");
delRequest.addKey(key);
}
auto outcome = client->DeleteObjects(delRequest);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, no quiet mode, Deleted Object count:" << outcome.result().keyList().size() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
delRequest.clearKeyList();
delRequest.setQuiet(true);
for (int i = 5; i < 10; i++) {
std::string key("DeleteObjects-");
key.append(std::to_string(i)).append(".txt");
delRequest.addKey(key);
}
outcome = client->DeleteObjects(delRequest);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, quiet mode" << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::HeadObject()
{
// uploads the file
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << "Thank you for using Aliyun Object Storage Service!";
client->PutObject(bucket_, "HeadObject", content);
auto outcome = client->HeadObject(bucket_, "HeadObject");
if (outcome.isSuccess()) {
auto headMeta = outcome.result();
std::cout << __FUNCTION__ << " success, ContentType:"
<< headMeta.ContentType() << "; ContentLength:" << headMeta.ContentLength()
<< "; CacheControl:" << headMeta.CacheControl() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
// delete the object
client->DeleteObject(bucket_, "HeadObject");
}
void ObjectSample::GetObjectMeta()
{
auto meta = ObjectMetaData();
// sets the content type.
meta.setContentType("text/plain");
// sets the cache control
meta.setCacheControl("max-age=3");
// sets the custom metadata.
meta.UserMetaData()["meta"] = "meta-value";
// uploads the file
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << "Thank you for using Aliyun Object Storage Service!";
client->PutObject(bucket_, "GetObjectMeta", content);
// get the object meta information
auto outcome = client->GetObjectMeta(bucket_, "GetObjectMeta");
if (outcome.isSuccess()) {
auto metadata = outcome.result();
std::cout << __FUNCTION__ << " success, ETag:" << metadata.ETag() << "; LastModified:"
<< metadata.LastModified() << "; Size:" << metadata.ContentLength() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
// delete the object
client->DeleteObject(bucket_, "GetObjectMeta");
}
void ObjectSample::AppendObject()
{
auto meta = ObjectMetaData();
meta.setContentType("text/plain");
std::string key("AppendObject");
// Append an object from buffer, keep in mind that position should be set to zero at first time.
std::shared_ptr<std::iostream> content1 = std::make_shared<std::stringstream>();
*content1 << __FUNCTION__;
AppendObjectRequest request(bucket_, key, content1, meta);
request.setPosition(0L);
auto result = client->AppendObject(request);
// Continue to append the object from file descriptor at last position
std::shared_ptr<std::iostream> content2 = std::make_shared<std::stringstream>();
*content2 << __FUNCTION__;
auto position = result.result().Length();
AppendObjectRequest appendObjectRequest(bucket_, key, content2);
appendObjectRequest.setPosition(position);
auto outcome = client->AppendObject(appendObjectRequest);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, CRC64:" << outcome.result().CRC64() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
// View object content
auto object = client->GetObject(bucket_, key);
if (object.isSuccess()) {
char ch[100];
*(object.result().Content()) >> ch;
std::string str = ch;
std::cout << "AppendObject Content:" << str << std::endl;
}
// Delete the appendable object
client->DeleteObject(bucket_, key);
}
static void ProgressCallback(size_t increment, int64_t transfered, int64_t total, void* userData)
{
std::cout << "ProgressCallback[" << userData << "] => " <<
increment <<" ," << transfered << "," << total << std::endl;
}
void ObjectSample::PutObjectProgress()
{
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(__FILE__, std::ios::in|std::ios::binary);
PutObjectRequest request(bucket_, "PutObjectProgress", content);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ <<"[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
#if !defined(OSS_DISABLE_RESUAMABLE)
void ObjectSample::UploadObjectProgress()
{
//case 1: checkpoint dir is not enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 2: checkpoint dir is enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload, Config::CheckpointDir);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 3: checkpoint dir, multi threads is enabled
{
UploadObjectRequest request(bucket_, "UploadObjectProgress", Config::FileToUpload, Config::CheckpointDir, DefaultPartSize, 4);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableUploadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
void ObjectSample::MultiCopyObjectProcess()
{
//case 1: checkpoint dir is not enabled
{
MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src");
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableCopyObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 2: checkpoint dir is config
{
MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src", Config::CheckpointDir);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableCopyObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 3: checkpoint dir is config, multi threads is config
{
MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src", Config::CheckpointDir, DefaultPartSize, 4);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableCopyObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
void ObjectSample::DownloadObjectProcess()
{
//case 1: no checkpoint dir is coinfig
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 2: checkpoint dir is config
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo, Config::CheckpointDir);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
//case 3: checkpoint dir is config, multi threads is config
{
DownloadObjectRequest request(bucket_, "DownloadObjectProgress", Config::FileDownloadTo, Config::CheckpointDir, DefaultPartSize, 4);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcome = client->ResumableDownloadObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
#endif
void ObjectSample::GetObjectProgress()
{
GetObjectRequest request(bucket_, "PutObjectProgress");
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
request.setRange(0, 99);
auto outcome = client->GetObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().RequestId() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::PutObjectCallable()
{
std::vector<PutObjectOutcomeCallable> outcomes;
for (int i = 0; i < 5; i++) {
std::string key = "PutObjectCallable_";
key.append(std::to_string(i));
//std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(__FILE__, std::ios::in | std::ios::binary);
std::shared_ptr<std::stringstream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__ << __FILE__ << std::endl;
PutObjectRequest request(bucket_, key, content);
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
auto outcomeCallable = client->PutObjectCallable(request);
outcomes.emplace_back(std::move(outcomeCallable));
}
std::cout << __FUNCTION__ << "[" << this << "]" << " start put object" << std::endl;
waitTimeinSec(10);
for (size_t i = 0; i < outcomes.size(); i++) {
auto outcome = outcomes[i].get();
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
void ObjectSample::GetObjectCallable()
{
std::vector<GetObjectOutcomeCallable> outcomes;
std::shared_ptr<std::stringstream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__ << __FILE__ << __FILE__ << __FILE__ << __FILE__ << __FILE__ << std::endl;
client->PutObject(PutObjectRequest(bucket_, "GetObjectCallable", content));
GetObjectRequest request(bucket_, "GetObjectCallable");
TransferProgress progressCallback = { ProgressCallback , this };
request.setTransferProgress(progressCallback);
//request.setRange(0, 29);
for (int i = 0; i < 5; i++) {
auto outcomeCallable = client->GetObjectCallable(request);
outcomes.emplace_back(std::move(outcomeCallable));
}
std::cout << __FUNCTION__ << "[" << this << "]" << " start get object" << std::endl;
waitTimeinSec(5);
for (size_t i = 0; i < outcomes.size(); i++) {
auto outcome = outcomes[i].get();
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << "[" << this << "]" << " success, RequestId:" << outcome.result().RequestId().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
}
void ObjectSample::MultipartUploadObject()
{
std::string key = "MultipartUploadObject";
InitiateMultipartUploadRequest initUploadRequest(bucket_, key);
auto uploadIdResult = client->InitiateMultipartUpload(initUploadRequest);
auto uploadId = uploadIdResult.result().UploadId();
std::string fileToUpload = Config::BigFileToUpload;
int64_t partSize = 100 * 1024;
PartList partETagList;
auto fileSize = getFileSize(fileToUpload);
int partCount = static_cast<int>(fileSize / partSize);
// Calculate how many parts to be divided
if (fileSize % partSize != 0) {
partCount++;
}
// Upload multiparts to bucket
for (int i = 1; i <= partCount; i++) {
auto skipBytes = partSize * (i - 1);
auto size = (partSize < fileSize - skipBytes) ? partSize : (fileSize - skipBytes);
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(fileToUpload, std::ios::in|std::ios::binary);
content->seekg(skipBytes, std::ios::beg);
UploadPartRequest uploadPartRequest(bucket_, key, content);
uploadPartRequest.setContentLength(size);
uploadPartRequest.setUploadId(uploadId);
uploadPartRequest.setPartNumber(i);
auto uploadPartOutcome = client->UploadPart(uploadPartRequest);
if (uploadPartOutcome.isSuccess()) {
Part part(i, uploadPartOutcome.result().ETag());
partETagList.push_back(part);
}
else {
PrintError(__FUNCTION__, uploadPartOutcome.error());
}
}
// Complete to upload multiparts
CompleteMultipartUploadRequest request(bucket_, key);
request.setUploadId(uploadId);
request.setPartList(partETagList);
auto outcome = client->CompleteMultipartUpload(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, UploadID : " << uploadId << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::ResumableObject()
{
}
void ObjectSample::RestoreArchiveObject(const std::string bucket, const std::string key, int maxWaitTimeInSeconds = 600)
{
auto result = client->RestoreObject(bucket, key);
if (!result.isSuccess()) {
// not the archive object
PrintError(__FUNCTION__, result.error());
return ;
}
std::string onGoingRestore("ongoing-request=\"false\"");
while (maxWaitTimeInSeconds > 0) {
auto meta = client->HeadObject(bucket, key);
std::string restoreStatus = meta.result().HttpMetaData()["x-oss-restore"];
std::transform(restoreStatus.begin(), restoreStatus.end(), restoreStatus.begin(), ::tolower);
if (!restoreStatus.empty() &&
restoreStatus.compare(0, onGoingRestore.size(), onGoingRestore)==0) {
std::cout << __FUNCTION__ << " success, restore status:" << restoreStatus << std::endl;
// success to restore archive object
break;
}
std::cout << __FUNCTION__ << " info, WaitTime:" << maxWaitTimeInSeconds
<< "; restore status:" << restoreStatus << std::endl;
waitTimeinSec(10);
maxWaitTimeInSeconds--;
}
if (maxWaitTimeInSeconds == 0) {
std::cout << __FUNCTION__ << " fail, TimeoutException" << std::endl;
}
}
void ObjectSample::CopyObject()
{
// put a object as source object key
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__;
PutObjectRequest putObjectRequest(bucket_, "CopyObjectSourceKey", content);
client->PutObject(putObjectRequest);
CopyObjectRequest request(bucket_, "CopyObjectTargetKey");
request.setCopySource(bucket_, "CopyObjectSourceKey");
auto outcome = client->CopyObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::PutObjectCallback()
{
std::string callbackUrl = Config::CallbackServer;
std::string callbackBody = "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var1=${x:var1}";
ObjectCallbackBuilder builder(callbackUrl, callbackBody, "", ObjectCallbackBuilder::Type::URL);
std::string value = builder.build();
ObjectCallbackVariableBuilder varBuilder;
varBuilder.addCallbackVariable("x:var1", "value1");
varBuilder.addCallbackVariable("x:var2", "value2");
std::string varValue = varBuilder.build();
std::shared_ptr<std::iostream> content = std::make_shared<std::stringstream>();
*content << __FUNCTION__;
PutObjectRequest request(bucket_, "PutObjectCallback", content);
request.MetaData().addHeader("x-oss-callback", value);
request.MetaData().addHeader("x-oss-callback-var", varValue);
auto outcome = client->PutObject(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, ETag:" << outcome.result().ETag();
if (outcome.result().Content() != nullptr) {
std::istreambuf_iterator<char> isb(*outcome.result().Content().get()), end;
std::cout << ", callback data:" << std::string(isb, end);
}
std::cout << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::ListObjects()
{
ListObjectsRequest request(bucket_);
auto outcome = client->ListObjects(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success " <<
"and object count is " << outcome.result().ObjectSummarys().size() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ObjectSample::ListObjectWithMarker()
{
ListObjectsRequest request(bucket_);
request.setMaxKeys(1);
bool IsTruncated = false;
size_t total = 0;
do {
auto outcome = client->ListObjects(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, " <<
"and object count is " << outcome.result().ObjectSummarys().size() <<
"next marker is " << outcome.result().NextMarker() << std::endl;
total += outcome.result().ObjectSummarys().size();
}
else {
PrintError(__FUNCTION__, outcome.error());
break;
}
request.setMarker(outcome.result().NextMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
std::cout << __FUNCTION__ << " done, and total is " << total << std::endl;
}
void ObjectSample::ListObjectWithEncodeType()
{
ListObjectsRequest request(bucket_);
request.setEncodingType("url");
bool IsTruncated = false;
size_t total = 0;
request.setMaxKeys(1);
ListObjectOutcome outcome;
do {
outcome = client->ListObjects(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, " <<
"and object count is " << outcome.result().ObjectSummarys().size() <<
"next marker is " << outcome.result().NextMarker() << std::endl;
total += outcome.result().ObjectSummarys().size();
}
else {
PrintError(__FUNCTION__, outcome.error());
break;
}
request.setMarker(outcome.result().NextMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
std::cout << __FUNCTION__ << " done, and total is " << total << std::endl;
}
================================================
FILE: sample/src/object/ObjectSample.h
================================================
#include <alibabacloud/oss/OssClient.h>
class ObjectSample
{
public:
ObjectSample(const std::string &bucket);
~ObjectSample();
void DoesObjectExist();
void PutFolder();
void PutObjectFromBuffer();
void PutObjectFromFile();
void GetObjectToBuffer();
void GetObjectToFile();
void DeleteObject();
void DeleteObjects();
void HeadObject();
void GetObjectMeta();
void AppendObject();
void MultipartUploadObject();
void ResumableObject();
void PutObjectProgress();
void GetObjectProgress();
void PutObjectCallable();
void GetObjectCallable();
#if !defined(OSS_DISABLE_RESUAMABLE)
void UploadObjectProgress();
void MultiCopyObjectProcess();
void DownloadObjectProcess();
#endif
void CopyObject();
void RestoreArchiveObject(const std::string bucket, const std::string key, int maxWaitTimeInSeconds);
void PutObjectCallback();
void ListObjects();
void ListObjectWithMarker();
void ListObjectWithEncodeType();
private:
void PrintError(const std::string &funcName, const AlibabaCloud::OSS::OssError &error);
AlibabaCloud::OSS::OssClient *client;
std::string bucket_;
};
================================================
FILE: sample/src/presignedurl/PresignedUrlSample.cc
================================================
#include <iostream>
#include "../Config.h"
#include "PresignedUrlSample.h"
#include <memory>
#include <sstream>
#include <fstream>
#include <ctime>
using namespace AlibabaCloud::OSS;
PresignedUrlSample::PresignedUrlSample(const std::string &bucket) :
bucket_(bucket)
{
ClientConfiguration conf;
client = new OssClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
//CreateBucketRequest request(bucket_);
//client->CreateBucket(request);
key_ = "PresignedUrlSample";
auto content = std::make_shared<std::stringstream>("PresignedUrlSample For Test");
client->PutObject(PutObjectRequest(bucket_, key_, content));
}
PresignedUrlSample::~PresignedUrlSample() {
delete client;
}
void PresignedUrlSample::PrintError(const std::string &funcName, const OssError &error)
{
std::cout << funcName << " fail" <<
",code:" << error.Code() <<
",message:" << error.Message() <<
",request_id:" << error.RequestId() << std::endl;
}
void PresignedUrlSample::GenPutPresignedUrl()
{
std::string key = "GenPutPresignedUrl";
GeneratePresignedUrlRequest request(bucket_, key, Http::Put);
std::time_t t = std::time(nullptr) + 1200;
request.setExpires(t);
auto outcome = client->GeneratePresignedUrl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, url:" << outcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void PresignedUrlSample::GenGetPresignedUrl()
{
GeneratePresignedUrlRequest request(bucket_, key_, Http::Get);
std::time_t t = std::time(nullptr) + 1200;
request.setExpires(t);
auto outcome = client->GeneratePresignedUrl(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, url:" << outcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, outcome.error());
}
}
void PresignedUrlSample::PutObjectByUrlFromBuffer()
{
std::time_t t = std::time(nullptr) + 1200;
auto genOutcome = client->GeneratePresignedUrl(bucket_, "PutObjectByUrlFromBuffer", t, Http::Put);
if (genOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Gen url:" << genOutcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, genOutcome.error());
}
auto content = std::make_shared<std::stringstream>();
*content << __FILE__ << __FUNCTION__ << std::endl;
auto outome = client->PutObjectByUrl(genOutcome.result(), content);
if (outome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << outome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
}
void PresignedUrlSample::PutObjectByUrlFromFile()
{
std::time_t t = std::time(nullptr) + 1200;
auto genOutcome = client->GeneratePresignedUrl(bucket_, "PutObjectByUrlFromFile", t, Http::Put);
if (genOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Gen url:" << genOutcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, genOutcome.error());
}
auto outome = client->PutObjectByUrl(genOutcome.result(), __FILE__);
if (outome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << outome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
}
void PresignedUrlSample::GetObjectByUrlToBuffer()
{
std::time_t t = std::time(nullptr) + 1200;
auto genOutcome = client->GeneratePresignedUrl(bucket_, "GetObjectByUrlToBuffer", t, Http::Put);
if (genOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Gen url:" << genOutcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, genOutcome.error());
}
auto content = std::make_shared<std::stringstream>();
*content << __FILE__ << __FUNCTION__ << std::endl;
auto outome = client->PutObjectByUrl(genOutcome.result(), content);
if (outome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << outome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
genOutcome = client->GeneratePresignedUrl(bucket_, "GetObjectByUrlToBuffer", t, Http::Get);
auto getOutome = client->GetObjectByUrl(genOutcome.result());
if (getOutome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << getOutome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
}
void PresignedUrlSample::GetObjectByUrlToFile()
{
std::time_t t = std::time(nullptr) + 1200;
auto genOutcome = client->GeneratePresignedUrl(bucket_, "GetObjectByUrlToFile", t, Http::Put);
if (genOutcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, Gen url:" << genOutcome.result().c_str() << std::endl;
}
else {
PrintError(__FUNCTION__, genOutcome.error());
}
auto outome = client->PutObjectByUrl(genOutcome.result(), __FILE__);
if (outome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << outome.result().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
genOutcome = client->GeneratePresignedUrl(bucket_, "GetObjectByUrlToFile", t, Http::Get);
auto getOutome = client->GetObjectByUrl(genOutcome.result(), "GetObjectByUrlToFile_Donwload");
if (getOutome.isSuccess()) {
std::cout << __FUNCTION__ << " success, eTag:" << getOutome.result().Metadata().ETag() << std::endl;
}
else {
PrintError(__FUNCTION__, outome.error());
}
}
================================================
FILE: sample/src/presignedurl/PresignedUrlSample.h
================================================
#include <alibabacloud/oss/OssClient.h>
class PresignedUrlSample
{
public:
PresignedUrlSample(const std::string &bucket);
~PresignedUrlSample();
void GenPutPresignedUrl();
void GenGetPresignedUrl();
void PutObjectByUrlFromBuffer();
void PutObjectByUrlFromFile();
void GetObjectByUrlToBuffer();
void GetObjectByUrlToFile();
private:
void PrintError(const std::string &funcName, const AlibabaCloud::OSS::OssError &error);
AlibabaCloud::OSS::OssClient *client;
std::string bucket_;
std::string key_;
};
================================================
FILE: sample/src/service/ServiceSample.cc
================================================
#include <iostream>
#include "../Config.h"
#include "ServiceSample.h"
using namespace AlibabaCloud::OSS;
ServiceSample::ServiceSample() {
ClientConfiguration conf;
client = new OssClient(Config::Endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
}
ServiceSample::~ServiceSample() {
delete client;
}
void ServiceSample::PrintError(const std::string &funcName, const OssError &error)
{
std::cout << funcName << " fail" <<
",code:" << error.Code() <<
",message:" << error.Message() <<
",request_id:" << error.RequestId() << std::endl;
}
void ServiceSample::ListBuckets()
{
ListBucketsRequest request;
auto outcome = client->ListBuckets(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ <<" success, and bucket count is" << outcome.result().Buckets().size() << std::endl;
} else {
PrintError(__FUNCTION__, outcome.error());
}
}
void ServiceSample::ListBucketsWithMarker()
{
ListBucketsRequest request;
request.setMaxKeys(100);
bool IsTruncated = false;
size_t total = 0;
do {
auto outcome = client->ListBuckets(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, " <<
"and bucket count is " << outcome.result().Buckets().size() <<
"next marker is " << outcome.result().NextMarker() << std::endl;
total += outcome.result().Buckets().size();
} else {
PrintError(__FUNCTION__, outcome.error());
break;
}
request.setMarker(outcome.result().NextMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
std::cout << __FUNCTION__ <<" done, and total is " << total << std::endl;
}
void ServiceSample::ListBucketsWithPrefix()
{
ListBucketsRequest request;
request.setMaxKeys(1);
request.setPrefix("cpp-sdk");
bool IsTruncated = false;
size_t total = 0;
do {
auto outcome = client->ListBuckets(request);
if (outcome.isSuccess()) {
std::cout << __FUNCTION__ << " success, " <<
"and bucket count is " << outcome.result().Buckets().size() <<
"next marker is " << outcome.result().NextMarker() << std::endl;
total += outcome.result().Buckets().size();
}
else {
PrintError(__FUNCTION__, outcome.error());
break;
}
request.setMarker(outcome.result().NextMarker());
IsTruncated = outcome.result().IsTruncated();
} while (IsTruncated);
std::cout << __FUNCTION__ << " done, and total is " << total << std::endl;
}
================================================
FILE: sample/src/service/ServiceSample.h
================================================
#include <alibabacloud/oss/OssClient.h>
class ServiceSample
{
public:
ServiceSample();
~ServiceSample();
void ListBuckets();
void ListBucketsWithMarker();
void ListBucketsWithPrefix();
private:
void PrintError(const std::string &funcName, const AlibabaCloud::OSS::OssError &error);
AlibabaCloud::OSS::OssClient *client;
};
================================================
FILE: sdk/CMakeLists.txt
================================================
#
# 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.
#
project(cpp-sdk VERSION ${version})
configure_file(src/Config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/alibabacloud/oss/Config.h @ONLY)
#common header
file(GLOB sdk_auth_header "include/alibabacloud/oss/auth/*.h")
file(GLOB sdk_client_header "include/alibabacloud/oss/client/*.h")
file(GLOB sdk_http_header "include/alibabacloud/oss/http/*.h")
file(GLOB sdk_utils_header "include/alibabacloud/oss/utils/*.h")
file(GLOB sdk_model_header "include/alibabacloud/oss/model/*.h")
file(GLOB sdk_encryption_header "include/alibabacloud/oss/encryption/*.h")
file(GLOB sdk_public_header "include/alibabacloud/oss/*.h")
#all header
file(GLOB sdk_header
${sdk_auth_header}
${sdk_client_header}
${sdk_http_header}
${sdk_utils_header}
${sdk_model_header}
${sdk_encryption_header}
${sdk_public_header}
)
#common source
file(GLOB sdk_auth_src "src/auth/*.cc")
file(GLOB sdk_client_src "src/client/*.cc")
file(GLOB sdk_http_src "src/http/*.cc")
file(GLOB sdk_utils_src "src/utils/*.cc")
file(GLOB sdk_signer_src "src/signer/*.cc")
file(GLOB sdk_public_src "src/*.cc")
#add source by DISABLE_XX option
file(GLOB sdk_model_common_src
"src/model/ModelError.cc"
)
if (NOT OSS_DISABLE_BUCKET)
file(GLOB sdk_model_bucket_src
"src/model/*Bucket*.cc"
"src/model/GetUserQos*.cc"
"src/model/LifecycleRule.cc"
"src/model/InventoryConfiguration.cc"
"src/model/Tagging.cc"
)
endif()
file(GLOB sdk_model_object_src
"src/model/*Object*.cc"
"src/model/*Symlink*.cc"
"src/model/InputFormat.cc"
"src/model/OutputFormat.cc"
"src/model/Tagging.cc"
"src/model/GeneratePresignedUrlRequest.cc"
)
file(GLOB sdk_model_multipart_src
"src/model/*MultipartUpload*.cc"
"src/model/UploadPart*.cc"
"src/model/ListPart*.cc"
)
if (NOT OSS_DISABLE_LIVECHANNEL)
file(GLOB sdk_model_livechannel_src
"src/model/*LiveChannel*.cc"
"src/model/GetVod*.cc"
"src/model/PostVod*.cc"
"src/model/GenerateRTMPSignedUrlRequest.cc"
)
endif()
file(GLOB sdk_model_src
${sdk_model_common_src}
${sdk_model_bucket_src}
${sdk_model_object_src}
${sdk_model_multipart_src}
${sdk_model_livechannel_src}
)
if (NOT OSS_DISABLE_RESUAMABLE)
file(GLOB sdk_resumable_src "src/resumable/*.cc")
endif()
if (NOT OSS_DISABLE_ENCRYPTION)
file(GLOB sdk_encryption_src "src/encryption/*.cc")
endif()
#external source
file(GLOB sdk_external_tinnyxml2_src "src/external/tinyxml2/*.cpp")
if (NOT OSS_DISABLE_ENCRYPTION OR NOT OSS_DISABLE_RESUAMABLE)
file(GLOB sdk_external_json_src "src/external/json/*.cpp")
endif()
#all source
file(GLOB sdk_src
${sdk_auth_src}
${sdk_client_src}
${sdk_http_src}
${sdk_utils_src}
${sdk_signer_src}
${sdk_model_src}
${sdk_public_src}
${sdk_resumable_src}
${sdk_encryption_src}
${sdk_external_json_src}
${sdk_external_tinnyxml2_src}
)
#extra define pass to source code
if (BUILD_TESTS)
set(EXTRA_DEFINE "-DENABLE_OSS_TEST")
else()
set(EXTRA_DEFINE "")
endif()
#static lib
add_library(${PROJECT_NAME}${STATIC_LIB_SUFFIX} STATIC
${sdk_header}
${sdk_src})
set_target_properties(${PROJECT_NAME}${STATIC_LIB_SUFFIX}
PROPERTIES
LINKER_LANGUAGE CXX
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}${PROJECT_NAME}${STATIC_LIB_SUFFIX}
)
target_include_directories(${PROJECT_NAME}${STATIC_LIB_SUFFIX}
PRIVATE include
PRIVATE include/alibabacloud/oss
PRIVATE src/external/)
target_include_directories(${PROJECT_NAME}${STATIC_LIB_SUFFIX}
PRIVATE ${CRYPTO_INCLUDE_DIRS}
PRIVATE ${CLIENT_INCLUDE_DIRS})
target_compile_options(${PROJECT_NAME}${STATIC_LIB_SUFFIX}
PRIVATE "${SDK_COMPILER_FLAGS}" "${EXTRA_DEFINE}")
#shared lib
if (BUILD_SHARED_LIBS)
add_library(${PROJECT_NAME} SHARED
${sdk_header}
${sdk_src})
set_target_properties(${PROJECT_NAME}
PROPERTIES
LINKER_LANGUAGE CXX
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}${PROJECT_NAME}
)
target_include_directories(${PROJECT_NAME}
PRIVATE include
PRIVATE include/alibabacloud/oss
PRIVATE src/external/)
target_include_directories(${PROJECT_NAME}
PRIVATE ${CRYPTO_INCLUDE_DIRS}
PRIVATE ${CLIENT_INCLUDE_DIRS})
target_compile_options(${PROJECT_NAME}
PRIVATE "${SDK_COMPILER_FLAGS}" -DALIBABACLOUD_SHARED -DALIBABACLOUD_OSS_LIBRARY)
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(${PROJECT_NAME}
PRIVATE "-fvisibility=hidden")
endif()
target_link_libraries(${PROJECT_NAME} ${CRYPTO_LIBS})
target_link_libraries(${PROJECT_NAME} ${CLIENT_LIBS})
endif()
#install
install(FILES ${sdk_auth_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/auth)
install(FILES ${sdk_client_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/client)
install(FILES ${sdk_http_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/http)
install(FILES ${sdk_utils_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/utils)
install(FILES ${sdk_model_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/model)
install(FILES ${sdk_encryption_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss/encryption)
install(FILES ${sdk_public_header}
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss)
install(TARGETS ${PROJECT_NAME}${STATIC_LIB_SUFFIX}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if (BUILD_SHARED_LIBS)
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endif()
================================================
FILE: sdk/include/alibabacloud/oss/Config.h
================================================
/*
* 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.
*/
#pragma once
// version = (major << 16) + (minor << 8) + patch
#define ALIBABACLOUD_OSS_VERSION ((1 << 16) + (10 << 8) + 1)
#define ALIBABACLOUD_OSS_VERSION_STR "1.10.1"
// auto generated by cmake option
/* #undef OSS_DISABLE_BUCKET */
/* #undef OSS_DISABLE_LIVECHANNEL */
/* #undef OSS_DISABLE_RESUAMABLE */
/* #undef OSS_DISABLE_ENCRYPTION */
================================================
FILE: sdk/include/alibabacloud/oss/Const.h
================================================
/*
* 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.
*/
#pragma once
#include <cstdint>
namespace AlibabaCloud
{
namespace OSS
{
const int64_t MaxFileSize = 5LL * 1024LL * 1024LL * 1024LL;
const int32_t MaxPrefixStringSize = 1024;
const int32_t MaxMarkerStringSize = 1024;
const int32_t MaxDelimiterStringSize = 1024;
const int32_t MaxReturnedKeys = 1000;
const int32_t MaxUploads = 1000;
const int32_t DeleteObjectsUpperLimit = 1000;
const int32_t BucketCorsRuleLimit = 10;
const int32_t LifecycleRuleLimit = 1000;
const int32_t ObjectNameLengthLimit = 1023;
const int32_t PartNumberUpperLimit = 10000;
const int32_t DefaultPartSize = 8 * 1024 * 1024;
const int32_t PartSizeLowerLimit = 100 * 1024;
const int32_t MaxPathLength = 124;
const int32_t MinPathLength = 4;
const int32_t DefaultResumableThreadNum = 3;
const uint32_t MaxLiveChannelNameLength = 1023;
const uint32_t MaxLiveChannelDescriptionLength = 128;
const uint32_t MinLiveChannelFragCount = 1;
const uint32_t MaxLiveChannelFragCount = 100;
const uint32_t MinLiveChannelFragDuration = 1;
const uint32_t MaxLiveChannelFragDuration = 100;
const uint32_t MinLiveChannelPlayListLength = 6;
const uint32_t MaxLiveChannelPlayListLength = 128;
const uint32_t MinLiveChannelInterval = 1;
const uint32_t MaxLiveChannelInterval = 100;
const uint64_t SecondsOfDay = 24*60*60;
const uint32_t MaxListLiveChannelKeys = 1000;
const uint32_t TagKeyLengthLimit = 128;
const uint32_t TagValueLengthLimit = 256;
const uint32_t MaxTagSize = 10;
#ifdef _WIN32
const char PATH_DELIMITER = '\\';
const wchar_t WPATH_DELIMITER = L'\\';
#else
const char PATH_DELIMITER = '/';
const wchar_t WPATH_DELIMITER = L'/';
#endif
}
}
================================================
FILE: sdk/include/alibabacloud/oss/Export.h
================================================
/*
* 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.
*/
#pragma once
#include "Global.h"
#if defined(ALIBABACLOUD_SHARED)
# if defined(ALIBABACLOUD_OSS_LIBRARY)
# define ALIBABACLOUD_OSS_EXPORT ALIBABACLOUD_DECL_EXPORT
# else
# define ALIBABACLOUD_OSS_EXPORT ALIBABACLOUD_DECL_IMPORT
# endif
#else
# define ALIBABACLOUD_OSS_EXPORT
#endif
================================================
FILE: sdk/include/alibabacloud/oss/Global.h
================================================
/*
* 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.
*/
#pragma once
#include "Config.h"
#if defined(_WIN32)
# ifdef _MSC_VER
# pragma warning(disable : 4251)
# endif // _MSC_VER
# define ALIBABACLOUD_DECL_EXPORT __declspec(dllexport)
# define ALIBABACLOUD_DECL_IMPORT __declspec(dllimport)
#elif __GNUC__ >= 4
# define ALIBABACLOUD_DECL_EXPORT __attribute__((visibility("default")))
# define ALIBABACLOUD_DECL_IMPORT __attribute__((visibility("default")))
#endif
#if !defined(ALIBABACLOUD_DECL_EXPORT)
# define ALIBABACLOUD_DECL_EXPORT
#endif
#if !defined(ALIBABACLOUD_DECL_IMPORT)
# define ALIBABACLOUD_DECL_IMPORT
#endif
================================================
FILE: sdk/include/alibabacloud/oss/OssClient.h
================================================
/*
* 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.
*/
#pragma once
#include <alibabacloud/oss/Export.h>
#include <alibabacloud/oss/client/ClientConfiguration.h>
#include <alibabacloud/oss/auth/CredentialsProvider.h>
#include <alibabacloud/oss/OssFwd.h>
#include <alibabacloud/oss/client/AsyncCallerContext.h>
#include <future>
#include <ctime>
namespace AlibabaCloud
{
namespace OSS
{
/*Global Init/Deinit*/
void ALIBABACLOUD_OSS_EXPORT InitializeSdk();
bool ALIBABACLOUD_OSS_EXPORT IsSdkInitialized();
void ALIBABACLOUD_OSS_EXPORT ShutdownSdk();
/*Log*/
void ALIBABACLOUD_OSS_EXPORT SetLogLevel(LogLevel level);
void ALIBABACLOUD_OSS_EXPORT SetLogCallback(LogCallback callback);
/*Utils*/
std::string ALIBABACLOUD_OSS_EXPORT ComputeContentMD5(const char *data, size_t size);
std::string ALIBABACLOUD_OSS_EXPORT ComputeContentMD5(std::istream& stream);
std::string ALIBABACLOUD_OSS_EXPORT ComputeContentETag(const char* data, size_t size);
std::string ALIBABACLOUD_OSS_EXPORT ComputeContentETag(std::istream& stream);
std::string ALIBABACLOUD_OSS_EXPORT UrlEncode(const std::string& src);
std::string ALIBABACLOUD_OSS_EXPORT UrlDecode(const std::string& src);
std::string ALIBABACLOUD_OSS_EXPORT Base64Encode(const std::string& src);
std::string ALIBABACLOUD_OSS_EXPORT Base64Encode(const char* src, int len);
std::string ALIBABACLOUD_OSS_EXPORT Base64EncodeUrlSafe(const std::string& src);
std::string ALIBABACLOUD_OSS_EXPORT Base64EncodeUrlSafe(const char* src, int len);
std::string ALIBABACLOUD_OSS_EXPORT ToGmtTime(std::time_t& t);
std::string ALIBABACLOUD_OSS_EXPORT ToUtcTime(std::time_t& t);
std::time_t ALIBABACLOUD_OSS_EXPORT UtcToUnixTime(const std::string& t);
uint64_t ALIBABACLOUD_OSS_EXPORT ComputeCRC64(uint64_t crc, void* buf, size_t len);
uint64_t ALIBABACLOUD_OSS_EXPORT CombineCRC64(uint64_t crc1, uint64_t crc2, uintmax_t len2);
/*Aysnc APIs*/
class OssClient;
using ListObjectAsyncHandler = std::function<void(const AlibabaCloud::OSS::OssClient*, const ListObjectsRequest&, const ListObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)>;
using GetObjectAsyncHandler = std::function<void(const AlibabaCloud::OSS::OssClient*, const GetObjectRequest&, const GetObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)>;
using PutObjectAsyncHandler = std::function<void(const AlibabaCloud::OSS::OssClient*, const PutObjectRequest&, const PutObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)>;
using UploadPartAsyncHandler = std::function<void(const AlibabaCloud::OSS::OssClient*, const UploadPartRequest&, const PutObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)>;
using UploadPartCopyAsyncHandler = std::function<void(const AlibabaCloud::OSS::OssClient*, const UploadPartCopyRequest&, const UploadPartCopyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)>;
/*Callable*/
using ListObjectOutcomeCallable = std::future<ListObjectOutcome>;
using GetObjectOutcomeCallable = std::future<GetObjectOutcome>;
using PutObjectOutcomeCallable = std::future<PutObjectOutcome>;
using UploadPartCopyOutcomeCallable = std::future<UploadPartCopyOutcome>;
class OssClientImpl;
class ALIBABACLOUD_OSS_EXPORT OssClient
{
public:
OssClient(const std::string& endpoint, const std::string& accessKeyId, const std::string& accessKeySecret,
const ClientConfiguration& configuration);
OssClient(const std::string& endpoint, const std::string& accessKeyId, const std::string& accessKeySecret, const std::string& securityToken,
const ClientConfiguration& configuration);
OssClient(const std::string& endpoint, const Credentials& credentials, const ClientConfiguration& configuration);
OssClient(const std::string& endpoint, const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration& configuration);
virtual ~OssClient();
#if !defined(OSS_DISABLE_BUCKET)
/*Service*/
ListBucketsOutcome ListBuckets() const;
ListBucketsOutcome ListBuckets(const ListBucketsRequest& request) const;
/*Bucket*/
CreateBucketOutcome CreateBucket(const std::string& bucket, StorageClass storageClass = StorageClass::Standard) const;
CreateBucketOutcome CreateBucket(const std::string& bucket, StorageClass storageClass, CannedAccessControlList acl) const;
CreateBucketOutcome CreateBucket(const CreateBucketRequest& request) const;
ListBucketInventoryConfigurationsOutcome ListBucketInventoryConfigurations(const ListBucketInventoryConfigurationsRequest& request) const;
VoidOutcome SetBucketAcl(const std::string& bucket, CannedAccessControlList acl) const;
VoidOutcome SetBucketAcl(const SetBucketAclRequest& request) const;
VoidOutcome SetBucketLogging(const std::string& bucket, const std::string& targetBucket, const std::string& targetPrefix) const;
VoidOutcome SetBucketLogging(const SetBucketLoggingRequest& request) const;
VoidOutcome SetBucketWebsite(const std::string& bucket, const std::string& indexDocument) const;
VoidOutcome SetBucketWebsite(const std::string& bucket, const std::string& indexDocument, const std::string& errorDocument) const;
VoidOutcome SetBucketWebsite(const SetBucketWebsiteRequest& request) const;
VoidOutcome SetBucketReferer(const std::string& bucket, const RefererList& refererList, bool allowEmptyReferer) const;
VoidOutcome SetBucketReferer(const SetBucketRefererRequest& request) const;
VoidOutcome SetBucketLifecycle(const SetBucketLifecycleRequest& request) const;
VoidOutcome SetBucketCors(const std::string& bucket, const CORSRuleList& rules) const;
VoidOutcome SetBucketCors(const SetBucketCorsRequest& request) const;
VoidOutcome SetBucketStorageCapacity(const std::string& bucket, int64_t storageCapacity) const;
VoidOutcome SetBucketStorageCapacity(const SetBucketStorageCapacityRequest& request) const;
VoidOutcome SetBucketPolicy(const SetBucketPolicyRequest& request) const;
VoidOutcome SetBucketRequestPayment(const SetBucketRequestPaymentRequest& request) const;
VoidOutcome SetBucketEncryption(const SetBucketEncryptionRequest& request) const;
VoidOutcome SetBucketTagging(const SetBucketTaggingRequest& request) const;
VoidOutcome SetBucketQosInfo(const SetBucketQosInfoRequest& request) const;
VoidOutcome SetBucketVersioning(const SetBucketVersioningRequest& request) const;
VoidOutcome SetBucketInventoryConfiguration(const SetBucketInventoryConfigurationRequest& request) const;
VoidOutcome DeleteBucket(const std::string& bucket) const;
VoidOutcome DeleteBucket(const DeleteBucketRequest& request) const;
VoidOutcome DeleteBucketLogging(const std::string& bucket) const;
VoidOutcome DeleteBucketLogging(const DeleteBucketLoggingRequest& request) const;
VoidOutcome DeleteBucketPolicy(const DeleteBucketPolicyRequest& request) const;
VoidOutcome DeleteBucketWebsite(const std::string& bucket) const;
VoidOutcome DeleteBucketWebsite(const DeleteBucketWebsiteRequest& request) const;
VoidOutcome DeleteBucketLifecycle(const std::string& bucket) const;
VoidOutcome DeleteBucketLifecycle(const DeleteBucketLifecycleRequest& request) const;
VoidOutcome DeleteBucketCors(const std::string& bucket) const;
VoidOutcome DeleteBucketCors(const DeleteBucketCorsRequest& request) const;
VoidOutcome DeleteBucketEncryption(const DeleteBucketEncryptionRequest& request) const;
VoidOutcome DeleteBucketTagging(const DeleteBucketTaggingRequest& request) const;
VoidOutcome DeleteBucketQosInfo(const DeleteBucketQosInfoRequest& request) const;
VoidOutcome DeleteBucketInventoryConfiguration(const DeleteBucketInventoryConfigurationRequest& request) const;
GetBucketAclOutcome GetBucketAcl(const std::string& bucket) const;
GetBucketAclOutcome GetBucketAcl(const GetBucketAclRequest& request) const;
GetBucketLocationOutcome GetBucketLocation(const std::string& bucket) const;
GetBucketLocationOutcome GetBucketLocation(const GetBucketLocationRequest& request) const;
GetBucketInfoOutcome GetBucketInfo(const std::string& bucket) const;
GetBucketInfoOutcome GetBucketInfo(const GetBucketInfoRequest& request) const;
GetBucketLoggingOutcome GetBucketLogging(const std::string& bucket) const;
GetBucketLoggingOutcome GetBucketLogging(const GetBucketLoggingRequest& request) const;
GetBucketWebsiteOutcome GetBucketWebsite(const std::string& bucket) const;
GetBucketWebsiteOutcome GetBucketWebsite(const GetBucketWebsiteRequest& request) const;
GetBucketRefererOutcome GetBucketReferer(const std::string& bucket) const;
GetBucketRefererOutcome GetBucketReferer(const GetBucketRefererRequest& request) const;
GetBucketLifecycleOutcome GetBucketLifecycle(const std::string& bucket) const;
GetBucketLifecycleOutcome GetBucketLifecycle(const GetBucketLifecycleRequest& request) const;
GetBucketStatOutcome GetBucketStat(const std::string& bucket) const;
GetBucketStatOutcome GetBucketStat(const GetBucketStatRequest& request) const;
GetBucketCorsOutcome GetBucketCors(const std::string& bucket) const;
GetBucketCorsOutcome GetBucketCors(const GetBucketCorsRequest& request) const;
GetBucketStorageCapacityOutcome GetBucketStorageCapacity(const std::string& bucket) const;
GetBucketStorageCapacityOutcome GetBucketStorageCapacity(const GetBucketStorageCapacityRequest& request) const;
GetBucketPolicyOutcome GetBucketPolicy(const GetBucketPolicyRequest& request) const;
GetBucketPaymentOutcome GetBucketRequestPayment(const GetBucketRequestPaymentRequest& request) const;
GetBucketEncryptionOutcome GetBucketEncryption(const GetBucketEncryptionRequest& request) const;
GetBucketTaggingOutcome GetBucketTagging(const GetBucketTaggingRequest& request) const;
GetBucketQosInfoOutcome GetBucketQosInfo(const GetBucketQosInfoRequest& request) const;
GetUserQosInfoOutcome GetUserQosInfo(const GetUserQosInfoRequest& request) const;
GetBucketVersioningOutcome GetBucketVersioning(const GetBucketVersioningRequest& request) const;
GetBucketInventoryConfigurationOutcome GetBucketInventoryConfiguration(const GetBucketInventoryConfigurationRequest& request) const;
InitiateBucketWormOutcome InitiateBucketWorm(const InitiateBucketWormRequest& request) const;
VoidOutcome AbortBucketWorm(const AbortBucketWormRequest& request) const;
VoidOutcome CompleteBucketWorm(const CompleteBucketWormRequest& request) const;
VoidOutcome ExtendBucketWormWorm(const ExtendBucketWormRequest& request) const;
GetBucketWormOutcome GetBucketWorm(const GetBucketWormRequest& request) const;
#endif
/*Object*/
ListObjectOutcome ListObjects(const std::string& bucket) const;
ListObjectOutcome ListObjects(const std::string& bucket, const std::string& prefix) const;
ListObjectOutcome ListObjects(const ListObjectsRequest& request) const;
ListObjectsV2Outcome ListObjectsV2(const ListObjectsV2Request& request) const;
ListObjectVersionsOutcome ListObjectVersions(const std::string& bucket) const;
ListObjectVersionsOutcome ListObjectVersions(const std::string& bucket, const std::string& prefix) const;
ListObjectVersionsOutcome ListObjectVersions(const ListObjectVersionsRequest& request) const;
GetObjectOutcome GetObject(const std::string& bucket, const std::string& key) const;
GetObjectOutcome GetObject(const std::string& bucket, const std::string& key, const std::shared_ptr<std::iostream>& content) const;
GetObjectOutcome GetObject(const std::string& bucket, const std::string& key, const std::string& fileToSave) const;
GetObjectOutcome GetObject(const GetObjectRequest& request) const;
PutObjectOutcome PutObject(const std::string& bucket, const std::string& key, const std::shared_ptr<std::iostream>& content) const;
PutObjectOutcome PutObject(const std::string& bucket, const std::string& key, const std::string& fileToUpload) const;
PutObjectOutcome PutObject(const std::string& bucket, const std::string& key, const std::shared_ptr<std::iostream>& content, const ObjectMetaData& meta) const;
PutObjectOutcome PutObject(const std::string& bucket, const std::string& key, const std::string& fileToUpload, const ObjectMetaData& meta) const;
PutObjectOutcome PutObject(const PutObjectRequest& request) const;
DeleteObjectOutcome DeleteObject(const std::string& bucket, const std::string& key) const;
DeleteObjectOutcome DeleteObject(const DeleteObjectRequest& request) const;
DeleteObjecstOutcome DeleteObjects(const std::string bucket, const DeletedKeyList &keyList) const;
DeleteObjecstOutcome DeleteObjects(const DeleteObjectsRequest& request) const;
DeleteObjecVersionstOutcome DeleteObjectVersions(const std::string bucket, const ObjectIdentifierList &objectList) const;
DeleteObjecVersionstOutcome DeleteObjectVersions(const DeleteObjectVersionsRequest& request) const;
ObjectMetaDataOutcome HeadObject(const std::string& bucket, const std::string& key) const;
ObjectMetaDataOutcome HeadObject(const HeadObjectRequest& request) const;
ObjectMetaDataOutcome GetObjectMeta(const std::string& bucket, const std::string& key) const;
ObjectMetaDataOutcome GetObjectMeta(const GetObjectMetaRequest& request) const;
AppendObjectOutcome AppendObject(const AppendObjectRequest& request) const;
CopyObjectOutcome CopyObject(const CopyObjectRequest& request) const;
RestoreObjectOutcome RestoreObject(const std::string& bucket, const std::string& key) const;
RestoreObjectOutcome RestoreObject(const RestoreObjectRequest& request) const;
SetObjectAclOutcome SetObjectAcl(const SetObjectAclRequest& request) const;
GetObjectAclOutcome GetObjectAcl(const GetObjectAclRequest& request) const;
CreateSymlinkOutcome CreateSymlink(const CreateSymlinkRequest& request) const;
GetSymlinkOutcome GetSymlink(const GetSymlinkRequest& request) const;
GetObjectOutcome ProcessObject(const ProcessObjectRequest& request) const;
GetObjectOutcome SelectObject(const SelectObjectRequest& request) const;
CreateSelectObjectMetaOutcome CreateSelectObjectMeta(const CreateSelectObjectMetaRequest& request) const;
SetObjectTaggingOutcome SetObjectTagging(const SetObjectTaggingRequest& request) const;
DeleteObjectTaggingOutcome DeleteObjectTagging(const DeleteObjectTaggingRequest& request) const;
GetObjectTaggingOutcome GetObjectTagging(const GetObjectTaggingRequest& request) const;
/*MultipartUpload*/
InitiateMultipartUploadOutcome InitiateMultipartUpload(const InitiateMultipartUploadRequest& request) const;
PutObjectOutcome UploadPart(const UploadPartRequest& request) const;
UploadPartCopyOutcome UploadPartCopy(const UploadPartCopyRequest& request) const;
CompleteMultipartUploadOutcome CompleteMultipartUpload(const CompleteMultipartUploadRequest& request) const;
VoidOutcome AbortMultipartUpload(const AbortMultipartUploadRequest& request) const;
ListMultipartUploadsOutcome ListMultipartUploads(const ListMultipartUploadsRequest& request) const;
ListPartsOutcome ListParts(const ListPartsRequest& request) const;
/*Generate URL*/
StringOutcome GeneratePresignedUrl(const GeneratePresignedUrlRequest& request) const;
StringOutcome GeneratePresignedUrl(const std::string& bucket, const std::string& key) const;
StringOutcome GeneratePresignedUrl(const std::string& bucket, const std::string& key, int64_t expires) const;
StringOutcome GeneratePresignedUrl(const std::string& bucket, const std::string& key, int64_t expires, Http::Method method) const;
GetObjectOutcome GetObjectByUrl(const GetObjectByUrlRequest& request) const;
GetObjectOutcome GetObjectByUrl(const std::string& url) const;
GetObjectOutcome GetObjectByUrl(const std::string& url, const std::string& file) const;
PutObjectOutcome PutObjectByUrl(const PutObjectByUrlRequest& request) const;
PutObjectOutcome PutObjectByUrl(const std::string& url, const std::string& file) const;
PutObjectOutcome PutObjectByUrl(const std::string& url, const std::string& file, const ObjectMetaData& metaData) const;
PutObjectOutcome PutObjectByUrl(const std::string& url, const std::shared_ptr<std::iostream>& content) const;
PutObjectOutcome PutObjectByUrl(const std::string& url, const std::shared_ptr<std::iostream>& content, const ObjectMetaData& metaData) const;
/*Generate Post Policy*/
/*Resumable Operation*/
#if !defined(OSS_DISABLE_RESUAMABLE)
PutObjectOutcome ResumableUploadObject(const UploadObjectRequest& request) const;
CopyObjectOutcome ResumableCopyObject(const MultiCopyObjectRequest& request) const;
GetObjectOutcome ResumableDownloadObject(const DownloadObjectRequest& request) const;
#endif
#if !defined(OSS_DISABLE_LIVECHANNEL)
/*Live Channel*/
VoidOutcome PutLiveChannelStatus(const PutLiveChannelStatusRequest& request) const;
PutLiveChannelOutcome PutLiveChannel(const PutLiveChannelRequest& request) const;
VoidOutcome PostVodPlaylist(const PostVodPlaylistRequest& request) const;
GetVodPlaylistOutcome GetVodPlaylist(const GetVodPlaylistRequest& request) const;
GetLiveChannelStatOutcome GetLiveChannelStat(const GetLiveChannelStatRequest& request) const;
GetLiveChannelInfoOutcome GetLiveChannelInfo(const GetLiveChannelInfoRequest& request) const;
GetLiveChannelHistoryOutcome GetLiveChannelHistory(const GetLiveChannelHistoryRequest& request) const;
ListLiveChannelOutcome ListLiveChannel(const ListLiveChannelRequest& request) const;
VoidOutcome DeleteLiveChannel(const DeleteLiveChannelRequest& request) const;
StringOutcome GenerateRTMPSignedUrl(const GenerateRTMPSignedUrlRequest& request) const;
#endif
/*Aysnc APIs*/
void ListObjectsAsync(const ListObjectsRequest& request, const ListObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void GetObjectAsync(const GetObjectRequest& request, const GetObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void PutObjectAsync(const PutObjectRequest& request, const PutObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void UploadPartAsync(const UploadPartRequest& request, const UploadPartAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void UploadPartCopyAsync(const UploadPartCopyRequest& request, const UploadPartCopyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
/*Callable APIs*/
ListObjectOutcomeCallable ListObjectsCallable(const ListObjectsRequest& request) const;
GetObjectOutcomeCallable GetObjectCallable(const GetObjectRequest& request) const;
PutObjectOutcomeCallable PutObjectCallable(const PutObjectRequest& request) const;
PutObjectOutcomeCallable UploadPartCallable(const UploadPartRequest& request) const;
UploadPartCopyOutcomeCallable UploadPartCopyCallable(const UploadPartCopyRequest& request) const;
/*Extended APIs*/
#if !defined(OSS_DISABLE_BUCKET)
bool DoesBucketExist(const std::string& bucket) const;
#endif
bool DoesObjectExist(const std::string& bucket, const std::string& key) const;
CopyObjectOutcome ModifyObjectMeta(const std::string& bucket, const std::string& key, const ObjectMetaData& meta);
/*Requests control*/
void DisableRequest();
void EnableRequest();
/*Others*/
void SetRegion(const std::string& region);
void SetCloudBoxId(const std::string& cloudboxId);
protected:
std::shared_ptr<OssClientImpl> client_;
};
}
}
================================================
FILE: sdk/include/alibabacloud/oss/OssEncryptionClient.h
================================================
/*
* 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.
*/
#pragma once
#include <alibabacloud/oss/OssClient.h>
#include <alibabacloud/oss/encryption/EncryptionMaterials.h>
#include <alibabacloud/oss/encryption/CryptoConfiguration.h>
#include <alibabacloud/oss/model/MultipartUploadCryptoContext.h>
namespace AlibabaCloud
{
namespace OSS
{
class EncryptionResumableDownloader;
class EncryptionResumableUploader;
class ALIBABACLOUD_OSS_EXPORT OssEncryptionClient : public OssClient
{
public:
OssEncryptionClient(const std::string& endpoint, const std::string& accessKeyId, const std::string& accessKeySecret,
const ClientConfiguration& configuration,
const std::shared_ptr<EncryptionMaterials>& encryptionMaterials, const CryptoConfiguration& cryptoConfig);
OssEncryptionClient(const std::string& endpoint, const std::string& accessKeyId, const std::string& accessKeySecret, const std::string& securityToken,
const ClientConfiguration& configuration,
const std::shared_ptr<EncryptionMaterials>& encryptionMaterials, const CryptoConfiguration& cryptoConfig);
OssEncryptionClient(const std::string& endpoint,
const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration& configuration,
const std::shared_ptr<EncryptionMaterials>& encryptionMaterials, const CryptoConfiguration& cryptoConfig);
virtual ~OssEncryptionClient();
/*Object*/
GetObjectOutcome GetObject(const GetObjectRequest& request) const;
GetObjectOutcome GetObject(const std::string &bucket, const std::string &key, const std::shared_ptr<std::iostream> &content) const;
GetObjectOutcome GetObject(const std::string &bucket, const std::string &key, const std::string &fileToSave) const;
PutObjectOutcome PutObject(const PutObjectRequest& request) const;
PutObjectOutcome PutObject(const std::string &bucket, const std::string &key, const std::shared_ptr<std::iostream> &content) const;
PutObjectOutcome PutObject(const std::string &bucket, const std::string &key, const std::string &fileToUpload) const;
/*MultipartUpload*/
InitiateMultipartUploadOutcome InitiateMultipartUpload(const InitiateMultipartUploadRequest& request, MultipartUploadCryptoContext& ctx) const;
PutObjectOutcome UploadPart(const UploadPartRequest& request, const MultipartUploadCryptoContext& ctx) const;
CompleteMultipartUploadOutcome CompleteMultipartUpload(const CompleteMultipartUploadRequest& request, const MultipartUploadCryptoContext& ctx) const;
#if !defined(OSS_DISABLE_RESUAMABLE)
/*Resumable Operation*/
PutObjectOutcome ResumableUploadObject(const UploadObjectRequest& request) const;
GetObjectOutcome ResumableDownloadObject(const DownloadObjectRequest& request) const;
#endif
/*Aysnc APIs*/
void GetObjectAsync(const GetObjectRequest& request, const GetObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void PutObjectAsync(const PutObjectRequest& request, const PutObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
void UploadPartAsync(const UploadPartRequest& request, const UploadPartAsyncHandler& handler, const MultipartUploadCryptoContext& cryptoCtx, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
/*Callable APIs*/
GetObjectOutcomeCallable GetObjectCallable(const GetObjectRequest& request) const;
PutObjectOutcomeCallable PutObjectCallable(const PutObjectRequest& request) const;
PutObjectOutcomeCallable UploadPartCallable(const UploadPartRequest& request, const MultipartUploadCryptoContext& cryptoCtx) const;
protected:
AppendObjectOutcome AppendObject(const AppendObjectRequest& request) const;
UploadPartCopyOutcome UploadPartCopy(const UploadPartCopyRequest& request, const MultipartUploadCryptoContext& ctx) const;
void UploadPartCopyAsync(const UploadPartCopyRequest& request, const UploadPartCopyAsyncHandler& handler, const MultipartUploadCryptoContext& cryptoCtx, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
UploadPartCopyOutcomeCallable UploadPartCopyCallable(const UploadPartCopyRequest& request, const MultipartUploadCryptoContext& cryptoCtx) const;
CopyObjectOutcome ResumableCopyObject(const MultiCopyObjectRequest& request) const;
GetObjectOutcome GetObjectByUrl(const GetObjectByUrlRequest& request) const;
PutObjectOutcome PutObjectByUrl(const PutObjectByUrlRequest& request) const;
private:
friend class EncryptionResumableDownloader;
friend class EncryptionResumableUploader;
GetObjectOutcome GetObjectInternal(const GetObjectRequest& request, const ObjectMetaData& meta) const;
private:
std::shared_ptr<EncryptionMaterials> encryptionMaterials_;
CryptoConfiguration cryptoConfig_;
};
}
}
================================================
FILE: sdk/include/alibabacloud/oss/OssError.h
================================================
/*
* 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.
*/
#pragma once
#include <string>
#include <alibabacloud/oss/Export.h>
namespace AlibabaCloud
{
namespace OSS
{
class ALIBABACLOUD_OSS_EXPORT OssError
{
public:
OssError() = default;
OssError(const std::string& code, const std::string& message) :
code_(code),
message_(message)
{
}
OssError(const OssError& rhs) :
code_(rhs.code_),
message_(rhs.message_),
requestId_(rhs.requestId_),
host_(rhs.host_)
{
}
OssError(OssError&& lhs) :
code_(std::move(lhs.code_)),
message_(std::move(lhs.message_)),
requestId_(std::move(lhs.requestId_)),
host_(std::move(lhs.host_))
{
}
OssError& operator=(OssError&& lhs)
{
code_ = std::move(lhs.code_);
message_ = std::move(lhs.message_);
requestId_ = std::move(lhs.requestId_);
host_ = std::move(lhs.host_);
return *this;
}
OssError& operator=(const OssError& rhs)
{
code_ = rhs.code_;
message_ = rhs.message_;
requestId_ = rhs.requestId_;
host_ = rhs.host_;
return *this;
}
~OssError() = default;
const std::string& Code()const { return code_; }
const std::string& Message() const { return message_; }
const std::string& RequestId() const { return requestId_; }
const std::string& Host() const { return host_; }
void setCode(const std::string& value) { code_ = value; }
void setCode(const char *value) { code_ = value; }
void setMessage(const std::string& value) { message_ = value; }
void setMessage(const char *value) { message_ = value; }
void setRequestId(const std::string& value) { requestId_ = value; }
void setRequestId(const char *value) { requestId_ = value; }
void setHost(const std::string& value) { host_ = value; }
void setHost(const char *value) { host_ = value; }
private:
std::string code_;
std::string message_;
std::string requestId_;
std::string host_;
};
}
}
================================================
FILE: sdk/include/alibabacloud/oss/OssFwd.h
================================================
/*
* 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.
*/
#pragma once
#include <memory>
#include <iostream>
#include <alibabacloud/oss/Global.h>
#include <alibabacloud/oss/Types.h>
#include <alibabacloud/oss/OssError.h>
#include <alibabacloud/oss/ServiceResult.h>
#include <alibabacloud/oss/utils/Outcome.h>
#include <alibabacloud/oss/model/VoidResult.h>
#if !defined(OSS_DISABLE_BUCKET)
#include <alibabacloud/oss/model/ListBucketsRequest.h>
#include <alibabacloud/oss/model/ListBucketsResult.h>
#include <alibabacloud/oss/model/CreateBucketRequest.h>
#include <alibabacloud/oss/model/SetBucketAclRequest.h>
#include <alibabacloud/oss/model/SetBucketLoggingRequest.h>
#include <alibabacloud/oss/model/SetBucketWebsiteRequest.h>
#include <alibabacloud/oss/model/SetBucketRefererRequest.h>
#include <alibabacloud/oss/model/SetBucketLifecycleRequest.h>
#include <alibabacloud/oss/model/SetBucketCorsRequest.h>
#include <alibabacloud/oss/model/SetBucketStorageCapacityRequest.h>
#include <alibabacloud/oss/model/DeleteBucketRequest.h>
#include <alibabacloud/oss/model/DeleteBucketLoggingRequest.h>
#include <alibabacloud/oss/model/DeleteBucketWebsiteRequest.h>
#include <alibabacloud/oss/model/DeleteBucketLifecycleRequest.h>
#include <alibabacloud/oss/model/DeleteBucketCorsRequest.h>
#include <alibabacloud/oss/model/GetBucketAclRequest.h>
#include <alibabacloud/oss/model/GetBucketAclResult.h>
#include <alibabacloud/oss/model/GetBucketLocationRequest.h>
#include <alibabacloud/oss/model/GetBucketLocationResult.h>
#include <alibabacloud/oss/model/GetBucketInfoRequest.h>
#include <alibabacloud/oss/model/GetBucketInfoResult.h>
#include <alibabacloud/oss/model/GetBucketLoggingRequest.h>
#include <alibabacloud/oss/model/GetBucketLoggingResult.h>
#include <alibabacloud/oss/model/GetBucketWebsiteRequest.h>
#include <alibabacloud/oss/model/GetBucketWebsiteResult.h>
#include <alibabacloud/oss/model/GetBucketRefererRequest.h>
#include <alibabacloud/oss/model/GetBucketRefererResult.h>
#include <alibabacloud/oss/model/GetBucketLifecycleRequest.h>
#include <alibabacloud/oss/model/GetBucketLifecycleResult.h>
#include <alibabacloud/oss/model/GetBucketStatRequest.h>
#include <alibabacloud/oss/model/GetBucketStatResult.h>
#include <alibabacloud/oss/model/GetBucketCorsRequest.h>
#include <alibabacloud/oss/model/GetBucketCorsResult.h>
#include <alibabacloud/oss/model/GetBucketStorageCapacityRequest.h>
#include <alibabacloud/oss/model/GetBucketStorageCapacityResult.h>
#include <alibabacloud/oss/model/SetBucketPolicyRequest.h>
#include <alibabacloud/oss/model/GetBucketPolicyRequest.h>
#include <alibabacloud/oss/model/GetBucketPolicyResult.h>
#include <alibabacloud/oss/model/DeleteBucketPolicyRequest.h>
#include <alibabacloud/oss/model/SetBucketPaymentRequest.h>
#include <alibabacloud/oss/model/GetBucketPaymentRequest.h>
#include <alibabacloud/oss/model/GetBucketPaymentResult.h>
#include <alibabacloud/oss/model/SetBucketEncryptionRequest.h>
#include <alibabacloud/oss/model/DeleteBucketEncryptionRequest.h>
#include <alibabacloud/oss/model/GetBucketEncryptionRequest.h>
#include <alibabacloud/oss/model/GetBucketEncryptionResult.h>
#include <alibabacloud/oss/model/SetBucketTaggingRequest.h>
#include <alibabacloud/oss/model/GetBucketTaggingRequest.h>
#include <alibabacloud/oss/model/GetBucketTaggingResult.h>
#include <alibabacloud/oss/model/DeleteBucketTaggingRequest.h>
#include <alibabacloud/oss/model/SetBucketQosInfoRequest.h>
#include <alibabacloud/oss/model/DeleteBucketQosInfoRequest.h>
#include <alibabacloud/oss/model/GetBucketQosInfoRequest.h>
#include <alibabacloud/oss/model/GetBucketQosInfoResult.h>
#include <alibabacloud/oss/model/GetUserQosInfoRequest.h>
#include <alibabacloud/oss/model/GetUserQosInfoResult.h>
#include <alibabacloud/oss/model/SetBucketVersioningRequest.h>
#include <alibabacloud/oss/model/GetBucketVersioningRequest.h>
#include <alibabacloud/oss/model/GetBucketVersioningResult.h>
#include <alibabacloud/oss/model/SetBucketInventoryConfigurationRequest.h>
#include <alibabacloud/oss/model/DeleteBucketInventoryConfigurationRequest.h>
#include <alibabacloud/oss/model/GetBucketInventoryConfigurationResult.h>
#include <alibabacloud/oss/model/GetBucketInventoryConfigurationRequest.h>
#include <alibabacloud/oss/model/ListBucketInventoryConfigurationsRequest.h>
#include <alibabacloud/oss/model/ListBucketInventoryConfigurationsResult.h>
#include <alibabacloud/oss/model/InitiateBucketWormRequest.h>
#include <alibabacloud/oss/model/InitiateBucketWormResult.h>
#include <alibabacloud/oss/model/AbortBucketWormRequest.h>
#include <alibabacloud/oss/model/CompleteBucketWormRequest.h>
#include <alibabacloud/oss/model/ExtendBucketWormRequest.h>
#include <alibabacloud/oss/model/GetBucketWormRequest.h>
#include <alibabacloud/oss/model/GetBucketWormResult.h>
#endif
#include <alibabacloud/oss/model/ListObjectsRequest.h>
#include <alibabacloud/oss/model/ListObjectsResult.h>
#include <alibabacloud/oss/model/ListObjectsV2Request.h>
#include <alibabacloud/oss/model/ListObjectsV2Result.h>
#include <alibabacloud/oss/model/ListObjectVersionsRequest.h>
#include <alibabacloud/oss/model/ListObjectVersionsResult.h>
#include <alibabacloud/oss/model/GetObjectRequest.h>
#include <alibabacloud/oss/model/GetObjectResult.h>
#include <alibabacloud/oss/model/PutObjectRequest.h>
#include <alibabacloud/oss/model/PutObjectResult.h>
#include <alibabacloud/oss/model/DeleteObjectRequest.h>
#include <alibabacloud/oss/model/DeleteObjectResult.h>
#include <alibabacloud/oss/model/DeleteObjectsRequest.h>
#include <alibabacloud/oss/model/DeleteObjectsResult.h>
#include <alibabacloud/oss/model/DeleteObjectVersionsRequest.h>
#include <alibabacloud/oss/model/DeleteObjectVersionsResult.h>
#include <alibabacloud/oss/model/HeadObjectRequest.h>
#include <alibabacloud/oss/model/GetObjectMetaRequest.h>
#include <alibabacloud/oss/model/GeneratePresignedUrlRequest.h>
#include <alibabacloud/oss/model/GetObjectByUrlRequest.h>
#include <alibabacloud/oss/model/PutObjectByUrlRequest.h>
#include <alibabacloud/oss/model/GetObjectAclRequest.h>
#include <alibabacloud/oss/model/GetObjectAclResult.h>
#include <alibabacloud/oss/model/AppendObjectRequest.h>
#include <alibabacloud/oss/model/AppendObjectResult.h>
#include <alibabacloud/oss/model/CopyObjectRequest.h>
#include <alibabacloud/oss/model/CopyObjectResult.h>
#include <alibabacloud/oss/model/GetSymlinkRequest.h>
#include <alibabacloud/oss/model/GetSymlinkResult.h>
#include <alibabacloud/oss/model/RestoreObjectRequest.h>
#include <alibabacloud/oss/model/RestoreObjectResult.h>
#include <alibabacloud/oss/model/CreateSymlinkRequest.h>
#include <alibabacloud/oss/model/CreateSymlinkResult.h>
#include <alibabacloud/oss/model/SetObjectAclRequest.h>
#include <alibabacloud/oss/model/SetObjectAclResult.h>
#include <alibabacloud/oss/model/ProcessObjectRequest.h>
#include <alibabacloud/oss/model/ObjectCallbackBuilder.h>
#include <alibabacloud/oss/model/SelectObjectRequest.h>
#include <alibabacloud/oss/model/CreateSelectObjectMetaRequest.h>
#include <alibabacloud/oss/model/CreateSelectObjectMetaResult.h>
#include <alibabacloud/oss/model/SetObjectTaggingRequest.h>
#include <alibabacloud/oss/model/SetObjectTaggingResult.h>
#include <alibabacloud/oss/model/GetObjectTaggingRequest.h>
#include <alibabacloud/oss/model/GetObjectTaggingResult.h>
#include <alibabacloud/oss/model/DeleteObjectTaggingRequest.h>
#include <alibabacloud/oss/model/DeleteObjectTaggingResult.h>
#include <alibabacloud/oss/model/InitiateMultipartUploadRequest.h>
#include <alibabacloud/oss/model/InitiateMultipartUploadResult.h>
#include <alibabacloud/oss/model/UploadPartRequest.h>
#include <alibabacloud/oss/model/UploadPartCopyRequest.h>
#include <alibabacloud/oss/model/UploadPartCopyResult.h>
#include <alibabacloud/oss/model/CompleteMultipartUploadRequest.h>
#include <alibabacloud/oss/model/CompleteMultipartUploadResult.h>
#include <alibabacloud/oss/model/AbortMultipartUploadRequest.h>
#include <alibabacloud/oss/model/ListMultipartUploadsRequest.h>
#include <alibabacloud/oss/model/ListMultipartUploadsResult.h>
#include <alibabacloud/oss/model/ListPartsRequest.h>
#include <alibabacloud/oss/model/ListPartsResult.h>
#if !defined(OSS_DISABLE_RESUAMABLE)
#include <alibabacloud/oss/model/UploadObjectRequest.h>
#include <alibabacloud/oss/model/MultiCopyObjectRequest.h>
#include <alibabacloud/oss/model/DownloadObjectRequest.h>
#endif
#if !defined(OSS_DISABLE_LIVECHANNEL)
#include <alibabacloud/oss/model/PutLiveChannelStatusRequest.h>
#include <alibabacloud/oss/model/PutLiveChannelRequest.h>
#include <alibabacloud/oss/model/PutLiveChannelResult.h>
#include <alibabacloud/oss/model/PostVodPlaylistRequest.h>
#include <alibabacloud/oss/model/GetVodPlaylistRequest.h>
#include <alibabacloud/oss/model/GetVodPlaylistResult.h>
#include <alibabacloud/oss/model/GetLiveChannelStatRequest.h>
#include <alibabacloud/oss/model/GetLiveChannelStatResult.h>
#include <alibabacloud/oss/model/GetLiveChannelInfoRequest.h>
#include <alibabacloud/oss/model/GetLiveChannelInfoResult.h>
#include <alibabacloud/oss/model/GetLiveChannelHistoryRequest.h>
#include <alibabacloud/oss/model/GetLiveChannelHistoryResult.h>
#include <alibabacloud/oss/model/ListLiveChannelRequest.h>
#include <alibabacloud/oss/model/ListLiveChannelResult.h>
#include <alibabacloud/oss/model/DeleteLiveChannelRequest.h>
#include <alibabacloud/oss/model/GenerateRTMPSignedUrlRequest.h>
#endif
namespace AlibabaCloud
{
namespace OSS
{
using OssOutcome = Outcome<OssError, ServiceResult>;
using VoidOutcome = Outcome<OssError, VoidResult>;
using StringOutcome = Outcome<OssError, std::string>;
#if !defined(OSS_DISABLE_BUCKET)
using ListBucketsOutcome = Outcome<OssError, ListBucketsResult>;
using CreateBucketOutcome = Outcome<OssError, Bucket>;
using ListBucketInventoryConfigurationsOutcome = Outcome<OssError, ListBucketInventoryConfigurationsResult>;
using GetBucketAclOutcome = Outcome<OssError, GetBucketAclResult>;
using GetBucketLocationOutcome = Outcome<OssError, GetBucketLocationResult>;
using GetBucketInfoOutcome = Outcome<OssError, GetBucketInfoResult>;
using GetBucketLoggingOutcome = Outcome<OssError, GetBucketLoggingResult>;
using GetBucketWebsiteOutcome = Outcome<OssError, GetBucketWebsiteResult>;
using GetBucketRefererOutcome = Outcome<OssError, GetBucketRefererResult>;
using GetBucketLifecycleOutcome = Outcome<OssError, GetBucketLifecycleResult>;
using GetBucketStatOutcome = Outcome<OssError, GetBucketStatResult>;
using GetBucketCorsOutcome = Outcome<OssError, GetBucketCorsResult>;
using GetBucketStorageCapacityOutcome = Outcome<OssError, GetBucketStorageCapacityResult>;
using GetBucketPolicyOutcome = Outcome<OssError, GetBucketPolicyResult>;
using GetBucketPaymentOutcome = Outcome<OssError, GetBucketPaymentResult>;
using GetBucketEncryptionOutcome = Outcome<OssError, GetBucketEncryptionResult>;
using GetBucketTaggingOutcome = Outcome<OssError, GetBucketTaggingResult>;
using GetBucketQosInfoOutcome = Outcome<OssError, GetBucketQosInfoResult>;
using GetUserQosInfoOutcome = Outcome<OssError, GetUserQosInfoResult>;
using GetBucketVersioningOutcome = Outcome<OssError, GetBucketVersion
gitextract_dz4dljta/
├── .github/
│ └── workflows/
│ ├── linux-clang.yml
│ ├── linux-gcc.yml
│ ├── mac.yml
│ └── windows.yml
├── .gitignore
├── CHANGELOG
├── CMakeLists.txt
├── LICENSE
├── README.md
├── README_zh.md
├── VERSION
├── ptest/
│ ├── CMakeLists.txt
│ └── src/
│ ├── Config.cc
│ ├── Config.h
│ └── Program.cc
├── sample/
│ ├── CMakeLists.txt
│ └── src/
│ ├── Config.cc
│ ├── Config.h
│ ├── LiveChannel/
│ │ ├── LiveChannelSample.cc
│ │ └── LiveChannelSample.h
│ ├── Program.cc
│ ├── bucket/
│ │ ├── BucketSample.cc
│ │ └── BucketSample.h
│ ├── encryption/
│ │ ├── EncryptionSample.cc
│ │ └── EncryptionSample.h
│ ├── object/
│ │ ├── ObjectSample.cc
│ │ └── ObjectSample.h
│ ├── presignedurl/
│ │ ├── PresignedUrlSample.cc
│ │ └── PresignedUrlSample.h
│ └── service/
│ ├── ServiceSample.cc
│ └── ServiceSample.h
├── sdk/
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── alibabacloud/
│ │ └── oss/
│ │ ├── Config.h
│ │ ├── Const.h
│ │ ├── Export.h
│ │ ├── Global.h
│ │ ├── OssClient.h
│ │ ├── OssEncryptionClient.h
│ │ ├── OssError.h
│ │ ├── OssFwd.h
│ │ ├── OssRequest.h
│ │ ├── OssResponse.h
│ │ ├── OssResult.h
│ │ ├── ServiceRequest.h
│ │ ├── ServiceResult.h
│ │ ├── Types.h
│ │ ├── auth/
│ │ │ ├── Credentials.h
│ │ │ └── CredentialsProvider.h
│ │ ├── client/
│ │ │ ├── AsyncCallerContext.h
│ │ │ ├── ClientConfiguration.h
│ │ │ ├── Error.h
│ │ │ ├── RateLimiter.h
│ │ │ └── RetryStrategy.h
│ │ ├── encryption/
│ │ │ ├── Cipher.h
│ │ │ ├── ContentCryptoMaterial.h
│ │ │ ├── CryptoConfiguration.h
│ │ │ └── EncryptionMaterials.h
│ │ ├── http/
│ │ │ ├── HttpClient.h
│ │ │ ├── HttpInterceptor.h
│ │ │ ├── HttpMessage.h
│ │ │ ├── HttpRequest.h
│ │ │ ├── HttpResponse.h
│ │ │ ├── HttpType.h
│ │ │ └── Url.h
│ │ ├── model/
│ │ │ ├── AbortBucketWormRequest.h
│ │ │ ├── AbortMultipartUploadRequest.h
│ │ │ ├── AppendObjectRequest.h
│ │ │ ├── AppendObjectResult.h
│ │ │ ├── Bucket.h
│ │ │ ├── CORSRule.h
│ │ │ ├── CompleteBucketWormRequest.h
│ │ │ ├── CompleteMultipartUploadRequest.h
│ │ │ ├── CompleteMultipartUploadResult.h
│ │ │ ├── CopyObjectRequest.h
│ │ │ ├── CopyObjectResult.h
│ │ │ ├── CreateBucketRequest.h
│ │ │ ├── CreateSelectObjectMetaRequest.h
│ │ │ ├── CreateSelectObjectMetaResult.h
│ │ │ ├── CreateSymlinkRequest.h
│ │ │ ├── CreateSymlinkResult.h
│ │ │ ├── DeleteBucketCorsRequest.h
│ │ │ ├── DeleteBucketEncryptionRequest.h
│ │ │ ├── DeleteBucketInventoryConfigurationRequest.h
│ │ │ ├── DeleteBucketLifecycleRequest.h
│ │ │ ├── DeleteBucketLoggingRequest.h
│ │ │ ├── DeleteBucketPolicyRequest.h
│ │ │ ├── DeleteBucketQosInfoRequest.h
│ │ │ ├── DeleteBucketRequest.h
│ │ │ ├── DeleteBucketTaggingRequest.h
│ │ │ ├── DeleteBucketWebsiteRequest.h
│ │ │ ├── DeleteLiveChannelRequest.h
│ │ │ ├── DeleteObjectRequest.h
│ │ │ ├── DeleteObjectResult.h
│ │ │ ├── DeleteObjectTaggingRequest.h
│ │ │ ├── DeleteObjectTaggingResult.h
│ │ │ ├── DeleteObjectVersionsRequest.h
│ │ │ ├── DeleteObjectVersionsResult.h
│ │ │ ├── DeleteObjectsRequest.h
│ │ │ ├── DeleteObjectsResult.h
│ │ │ ├── DownloadObjectRequest.h
│ │ │ ├── ExtendBucketWormRequest.h
│ │ │ ├── GeneratePresignedUrlRequest.h
│ │ │ ├── GenerateRTMPSignedUrlRequest.h
│ │ │ ├── GetBucketAclRequest.h
│ │ │ ├── GetBucketAclResult.h
│ │ │ ├── GetBucketCorsRequest.h
│ │ │ ├── GetBucketCorsResult.h
│ │ │ ├── GetBucketEncryptionRequest.h
│ │ │ ├── GetBucketEncryptionResult.h
│ │ │ ├── GetBucketInfoRequest.h
│ │ │ ├── GetBucketInfoResult.h
│ │ │ ├── GetBucketInventoryConfigurationRequest.h
│ │ │ ├── GetBucketInventoryConfigurationResult.h
│ │ │ ├── GetBucketLifecycleRequest.h
│ │ │ ├── GetBucketLifecycleResult.h
│ │ │ ├── GetBucketLocationRequest.h
│ │ │ ├── GetBucketLocationResult.h
│ │ │ ├── GetBucketLoggingRequest.h
│ │ │ ├── GetBucketLoggingResult.h
│ │ │ ├── GetBucketPaymentRequest.h
│ │ │ ├── GetBucketPaymentResult.h
│ │ │ ├── GetBucketPolicyRequest.h
│ │ │ ├── GetBucketPolicyResult.h
│ │ │ ├── GetBucketQosInfoRequest.h
│ │ │ ├── GetBucketQosInfoResult.h
│ │ │ ├── GetBucketRefererRequest.h
│ │ │ ├── GetBucketRefererResult.h
│ │ │ ├── GetBucketStatRequest.h
│ │ │ ├── GetBucketStatResult.h
│ │ │ ├── GetBucketStorageCapacityRequest.h
│ │ │ ├── GetBucketStorageCapacityResult.h
│ │ │ ├── GetBucketTaggingRequest.h
│ │ │ ├── GetBucketTaggingResult.h
│ │ │ ├── GetBucketVersioningRequest.h
│ │ │ ├── GetBucketVersioningResult.h
│ │ │ ├── GetBucketWebsiteRequest.h
│ │ │ ├── GetBucketWebsiteResult.h
│ │ │ ├── GetBucketWormRequest.h
│ │ │ ├── GetBucketWormResult.h
│ │ │ ├── GetLiveChannelHistoryRequest.h
│ │ │ ├── GetLiveChannelHistoryResult.h
│ │ │ ├── GetLiveChannelInfoRequest.h
│ │ │ ├── GetLiveChannelInfoResult.h
│ │ │ ├── GetLiveChannelStatRequest.h
│ │ │ ├── GetLiveChannelStatResult.h
│ │ │ ├── GetObjectAclRequest.h
│ │ │ ├── GetObjectAclResult.h
│ │ │ ├── GetObjectByUrlRequest.h
│ │ │ ├── GetObjectMetaRequest.h
│ │ │ ├── GetObjectRequest.h
│ │ │ ├── GetObjectResult.h
│ │ │ ├── GetObjectTaggingRequest.h
│ │ │ ├── GetObjectTaggingResult.h
│ │ │ ├── GetSymlinkRequest.h
│ │ │ ├── GetSymlinkResult.h
│ │ │ ├── GetUserQosInfoRequest.h
│ │ │ ├── GetUserQosInfoResult.h
│ │ │ ├── GetVodPlaylistRequest.h
│ │ │ ├── GetVodPlaylistResult.h
│ │ │ ├── HeadObjectRequest.h
│ │ │ ├── InitiateBucketWormRequest.h
│ │ │ ├── InitiateBucketWormResult.h
│ │ │ ├── InitiateMultipartUploadRequest.h
│ │ │ ├── InitiateMultipartUploadResult.h
│ │ │ ├── InputFormat.h
│ │ │ ├── InventoryConfiguration.h
│ │ │ ├── LifecycleRule.h
│ │ │ ├── ListBucketInventoryConfigurationsRequest.h
│ │ │ ├── ListBucketInventoryConfigurationsResult.h
│ │ │ ├── ListBucketsRequest.h
│ │ │ ├── ListBucketsResult.h
│ │ │ ├── ListLiveChannelRequest.h
│ │ │ ├── ListLiveChannelResult.h
│ │ │ ├── ListMultipartUploadsRequest.h
│ │ │ ├── ListMultipartUploadsResult.h
│ │ │ ├── ListObjectVersionsRequest.h
│ │ │ ├── ListObjectVersionsResult.h
│ │ │ ├── ListObjectsRequest.h
│ │ │ ├── ListObjectsResult.h
│ │ │ ├── ListObjectsV2Request.h
│ │ │ ├── ListObjectsV2Result.h
│ │ │ ├── ListPartsRequest.h
│ │ │ ├── ListPartsResult.h
│ │ │ ├── MultiCopyObjectRequest.h
│ │ │ ├── MultipartUploadCryptoContext.h
│ │ │ ├── ObjectCallbackBuilder.h
│ │ │ ├── ObjectMetaData.h
│ │ │ ├── OutputFormat.h
│ │ │ ├── Owner.h
│ │ │ ├── Part.h
│ │ │ ├── PostVodPlaylistRequest.h
│ │ │ ├── ProcessObjectRequest.h
│ │ │ ├── PutLiveChannelRequest.h
│ │ │ ├── PutLiveChannelResult.h
│ │ │ ├── PutLiveChannelStatusRequest.h
│ │ │ ├── PutObjectByUrlRequest.h
│ │ │ ├── PutObjectRequest.h
│ │ │ ├── PutObjectResult.h
│ │ │ ├── QosConfiguration.h
│ │ │ ├── RestoreObjectRequest.h
│ │ │ ├── RestoreObjectResult.h
│ │ │ ├── SelectObjectRequest.h
│ │ │ ├── SetBucketAclRequest.h
│ │ │ ├── SetBucketCorsRequest.h
│ │ │ ├── SetBucketEncryptionRequest.h
│ │ │ ├── SetBucketInventoryConfigurationRequest.h
│ │ │ ├── SetBucketLifecycleRequest.h
│ │ │ ├── SetBucketLoggingRequest.h
│ │ │ ├── SetBucketPaymentRequest.h
│ │ │ ├── SetBucketPolicyRequest.h
│ │ │ ├── SetBucketQosInfoRequest.h
│ │ │ ├── SetBucketRefererRequest.h
│ │ │ ├── SetBucketStorageCapacityRequest.h
│ │ │ ├── SetBucketTaggingRequest.h
│ │ │ ├── SetBucketVersioningRequest.h
│ │ │ ├── SetBucketWebsiteRequest.h
│ │ │ ├── SetObjectAclRequest.h
│ │ │ ├── SetObjectAclResult.h
│ │ │ ├── SetObjectTaggingRequest.h
│ │ │ ├── SetObjectTaggingResult.h
│ │ │ ├── Tagging.h
│ │ │ ├── UploadObjectRequest.h
│ │ │ ├── UploadPartCopyRequest.h
│ │ │ ├── UploadPartCopyResult.h
│ │ │ ├── UploadPartRequest.h
│ │ │ └── VoidResult.h
│ │ └── utils/
│ │ ├── Executor.h
│ │ ├── Outcome.h
│ │ └── Runnable.h
│ └── src/
│ ├── Config.h.in
│ ├── OssClient.cc
│ ├── OssClientImpl.cc
│ ├── OssClientImpl.h
│ ├── OssRequest.cc
│ ├── OssResponse.cc
│ ├── OssResult.cc
│ ├── ServiceRequest.cc
│ ├── auth/
│ │ ├── Credentials.cc
│ │ ├── CredentialsProvider.cc
│ │ └── SimpleCredentialsProvider.cc
│ ├── client/
│ │ ├── AsyncCallerContext.cc
│ │ ├── Client.cc
│ │ ├── Client.h
│ │ └── ClientConfiguration.cc
│ ├── encryption/
│ │ ├── Cipher.cc
│ │ ├── CipherOpenssl.cc
│ │ ├── CipherOpenssl.h
│ │ ├── ContentCryptoMaterial.cc
│ │ ├── CryptoConfiguration.cc
│ │ ├── CryptoModule.cc
│ │ ├── CryptoModule.h
│ │ ├── CryptoStreamBuf.cc
│ │ ├── CryptoStreamBuf.h
│ │ ├── EncryptionMaterials.cc
│ │ └── OssEncryptionClient.cc
│ ├── external/
│ │ ├── json/
│ │ │ ├── json-forwards.h
│ │ │ ├── json.h
│ │ │ └── jsoncpp.cpp
│ │ └── tinyxml2/
│ │ ├── tinyxml2.cpp
│ │ └── tinyxml2.h
│ ├── http/
│ │ ├── CurlHttpClient.cc
│ │ ├── CurlHttpClient.h
│ │ ├── HttpClient.cc
│ │ ├── HttpMessage.cc
│ │ ├── HttpRequest.cc
│ │ ├── HttpResponse.cc
│ │ └── Url.cc
│ ├── model/
│ │ ├── AbortBucketWormRequest.cc
│ │ ├── AbortMultipartUploadRequest.cc
│ │ ├── AppendObjectRequest.cc
│ │ ├── AppendObjectResult.cc
│ │ ├── Bucket.cc
│ │ ├── CompleteBucketWormRequest.cc
│ │ ├── CompleteMultipartUploadRequest.cc
│ │ ├── CompleteMultipartUploadResult.cc
│ │ ├── CopyObjectRequest.cc
│ │ ├── CopyObjectResult.cc
│ │ ├── CreateBucketRequest.cc
│ │ ├── CreateSelectObjectMetaRequest.cc
│ │ ├── CreateSelectObjectMetaResult.cc
│ │ ├── CreateSymlinkRequest.cc
│ │ ├── CreateSymlinkResult.cc
│ │ ├── DeleteBucketCorsRequest.cc
│ │ ├── DeleteBucketEncryptionRequest.cc
│ │ ├── DeleteBucketInventoryConfigurationRequest.cc
│ │ ├── DeleteBucketLifecycleRequest.cc
│ │ ├── DeleteBucketLoggingRequest.cc
│ │ ├── DeleteBucketPolicyRequest.cc
│ │ ├── DeleteBucketQosInfoRequest.cc
│ │ ├── DeleteBucketTaggingRequest.cc
│ │ ├── DeleteBucketWebsiteRequest.cc
│ │ ├── DeleteLiveChannelRequest.cc
│ │ ├── DeleteObjectResult.cc
│ │ ├── DeleteObjectTaggingRequest.cc
│ │ ├── DeleteObjectVersionsRequest.cc
│ │ ├── DeleteObjectVersionsResult.cc
│ │ ├── DeleteObjectsRequest.cc
│ │ ├── DeleteObjectsResult.cc
│ │ ├── ExtendBucketWormRequest.cc
│ │ ├── GeneratePresignedUrlRequest.cc
│ │ ├── GenerateRTMPSignedUrlRequest.cc
│ │ ├── GetBucketAclRequest.cc
│ │ ├── GetBucketAclResult.cc
│ │ ├── GetBucketCorsRequest.cc
│ │ ├── GetBucketCorsResult.cc
│ │ ├── GetBucketEncryptionRequest.cc
│ │ ├── GetBucketEncryptionResult.cc
│ │ ├── GetBucketInfoRequest.cc
│ │ ├── GetBucketInfoResult.cc
│ │ ├── GetBucketInventoryConfigurationRequest.cc
│ │ ├── GetBucketInventoryConfigurationResult.cc
│ │ ├── GetBucketLifecycleRequest.cc
│ │ ├── GetBucketLifecycleResult.cc
│ │ ├── GetBucketLocationRequest.cc
│ │ ├── GetBucketLocationResult.cc
│ │ ├── GetBucketLoggingRequest.cc
│ │ ├── GetBucketLoggingResult.cc
│ │ ├── GetBucketPaymentRequest.cc
│ │ ├── GetBucketPaymentResult.cc
│ │ ├── GetBucketPolicyRequest.cc
│ │ ├── GetBucketPolicyResult.cc
│ │ ├── GetBucketQosInfoRequest.cc
│ │ ├── GetBucketQosInfoResult.cc
│ │ ├── GetBucketRefererRequest.cc
│ │ ├── GetBucketRefererResult.cc
│ │ ├── GetBucketStatRequest.cc
│ │ ├── GetBucketStatResult.cc
│ │ ├── GetBucketStorageCapacityRequest.cc
│ │ ├── GetBucketStorageCapacityResult.cc
│ │ ├── GetBucketTaggingRequest.cc
│ │ ├── GetBucketTaggingResult.cc
│ │ ├── GetBucketVersioningRequest.cc
│ │ ├── GetBucketVersioningResult.cc
│ │ ├── GetBucketWebsiteRequest.cc
│ │ ├── GetBucketWebsiteResult.cc
│ │ ├── GetBucketWormRequest.cc
│ │ ├── GetBucketWormResult.cc
│ │ ├── GetLiveChannelHistoryRequest.cc
│ │ ├── GetLiveChannelHistoryResult.cc
│ │ ├── GetLiveChannelInfoRequest.cc
│ │ ├── GetLiveChannelInfoResult.cc
│ │ ├── GetLiveChannelStatRequest.cc
│ │ ├── GetLiveChannelStatResult.cc
│ │ ├── GetObjectAclRequest.cc
│ │ ├── GetObjectAclResult.cc
│ │ ├── GetObjectByUrlRequest.cc
│ │ ├── GetObjectMetaRequest.cc
│ │ ├── GetObjectRequest.cc
│ │ ├── GetObjectResult.cc
│ │ ├── GetObjectTaggingRequest.cc
│ │ ├── GetObjectTaggingResult.cc
│ │ ├── GetSymlinkRequest.cc
│ │ ├── GetSymlinkResult.cc
│ │ ├── GetUserQosInfoRequest.cc
│ │ ├── GetUserQosInfoResult.cc
│ │ ├── GetVodPlaylistRequest.cc
│ │ ├── GetVodPlaylistResult.cc
│ │ ├── InitiateBucketWormRequest.cc
│ │ ├── InitiateBucketWormResult.cc
│ │ ├── InitiateMultipartUploadRequest.cc
│ │ ├── InitiateMultipartUploadResult.cc
│ │ ├── InputFormat.cc
│ │ ├── InventoryConfiguration.cc
│ │ ├── LifecycleRule.cc
│ │ ├── ListBucketInventoryConfigurationsRequest.cc
│ │ ├── ListBucketInventoryConfigurationsResult.cc
│ │ ├── ListBucketsRequest.cc
│ │ ├── ListBucketsResult.cc
│ │ ├── ListLiveChannelRequest.cc
│ │ ├── ListLiveChannelResult.cc
│ │ ├── ListMultipartUploadsRequest.cc
│ │ ├── ListMultipartUploadsResult.cc
│ │ ├── ListObjectVersionsResult.cc
│ │ ├── ListObjectsRequest.cc
│ │ ├── ListObjectsResult.cc
│ │ ├── ListObjectsV2Request.cc
│ │ ├── ListObjectsV2Result.cc
│ │ ├── ListPartsRequest.cc
│ │ ├── ListPartsResult.cc
│ │ ├── ModelError.cc
│ │ ├── ModelError.h
│ │ ├── ObjectCallbackBuilder.cc
│ │ ├── ObjectMetaData.cc
│ │ ├── OutputFormat.cc
│ │ ├── PostVodPlaylistRequest.cc
│ │ ├── ProcessObjectRequest.cc
│ │ ├── PutLiveChannelRequest.cc
│ │ ├── PutLiveChannelResult.cc
│ │ ├── PutLiveChannelStatusRequest.cc
│ │ ├── PutObjectByUrlRequest.cc
│ │ ├── PutObjectRequest.cc
│ │ ├── PutObjectResult.cc
│ │ ├── RestoreObjectRequest.cc
│ │ ├── RestoreObjectResult.cc
│ │ ├── SelectObjectRequest.cc
│ │ ├── SetBucketAclRequest.cc
│ │ ├── SetBucketCorsRequest.cc
│ │ ├── SetBucketEncryptionRequest.cc
│ │ ├── SetBucketInventoryConfigurationRequest.cc
│ │ ├── SetBucketLifecycleRequest.cc
│ │ ├── SetBucketLoggingRequest.cc
│ │ ├── SetBucketPaymentRequest.cc
│ │ ├── SetBucketPolicyRequest.cc
│ │ ├── SetBucketQosInfoRequest.cc
│ │ ├── SetBucketRefererRequest.cc
│ │ ├── SetBucketStorageCapacityRequest.cc
│ │ ├── SetBucketTaggingRequest.cc
│ │ ├── SetBucketVersioningRequest.cc
│ │ ├── SetBucketWebsiteRequest.cc
│ │ ├── SetObjectAclRequest.cc
│ │ ├── SetObjectAclResult.cc
│ │ ├── SetObjectTaggingRequest.cc
│ │ ├── Tagging.cc
│ │ ├── UploadPartCopyRequest.cc
│ │ ├── UploadPartCopyResult.cc
│ │ └── UploadPartRequest.cc
│ ├── resumable/
│ │ ├── DownloadObjectRequest.cc
│ │ ├── MultiCopyObjectRequest.cc
│ │ ├── ResumableBaseWorker.cc
│ │ ├── ResumableBaseWorker.h
│ │ ├── ResumableCopier.cc
│ │ ├── ResumableCopier.h
│ │ ├── ResumableDownloader.cc
│ │ ├── ResumableDownloader.h
│ │ ├── ResumableUploader.cc
│ │ ├── ResumableUploader.h
│ │ └── UploadObjectRequest.cc
│ ├── signer/
│ │ ├── HmacSha1Signer.cc
│ │ ├── HmacSha1Signer.h
│ │ ├── Signer.cc
│ │ ├── Signer.h
│ │ ├── SignerV1.cc
│ │ └── SignerV4.cc
│ └── utils/
│ ├── Crc32.cc
│ ├── Crc32.h
│ ├── Crc64.cc
│ ├── Crc64.h
│ ├── Executor.cc
│ ├── FileSystemUtils.cc
│ ├── FileSystemUtils.h
│ ├── LogUtils.cc
│ ├── LogUtils.h
│ ├── Runnable.cc
│ ├── SignUtils.cc
│ ├── SignUtils.h
│ ├── StreamBuf.h
│ ├── ThreadExecutor.cc
│ ├── ThreadExecutor.h
│ ├── Utils.cc
│ └── Utils.h
├── test/
│ ├── CMakeLists.txt
│ ├── data/
│ │ ├── ca-certificates.crt
│ │ └── sample_data.csv
│ ├── external/
│ │ └── gtest/
│ │ ├── gtest-all.cc
│ │ └── gtest.h
│ └── src/
│ ├── AccessKey/
│ │ └── AccessKeyTest.cc
│ ├── Bucket/
│ │ ├── BucketAclSettingsTest.cc
│ │ ├── BucketBasicOperationTest.cc
│ │ ├── BucketCorsSettingsTest.cc
│ │ ├── BucketEncryptionTest.cc
│ │ ├── BucketInventoryConfigurationTest.cc
│ │ ├── BucketLifecycleSettingsTest.cc
│ │ ├── BucketLoggingSettingsTest.cc
│ │ ├── BucketPolicySettingsTest.cc
│ │ ├── BucketQosInfoTest.cc
│ │ ├── BucketRefersSettingsTest.cc
│ │ ├── BucketRequestPaymentTest.cc
│ │ ├── BucketStorageCapacityTest.cc
│ │ ├── BucketTaggingtTest.cc
│ │ ├── BucketVersioningTest.cc
│ │ ├── BucketWebsiteSettingsTest.cc
│ │ └── BucketWormSettings.cc
│ ├── Config.cc
│ ├── Config.h
│ ├── Encryption/
│ │ ├── CipherTest.cc
│ │ ├── CryptoObjectTest.cc
│ │ ├── CryptoObjectVersioningTest.cc
│ │ ├── CryptoResumableObjectTest.cc
│ │ └── CryptoStreamBufTest.cc
│ ├── LiveChannel/
│ │ ├── DeleteLiveChannelTest.cc
│ │ ├── GenerateRTMPSignatrueUrlTest.cc
│ │ ├── GetLiveChannelHistoryTest.cc
│ │ ├── ListLiveChannelTest.cc
│ │ ├── PostAndGetVodPlayListTest.cc
│ │ ├── PutAndGetLiveChannelStatusTest.cc
│ │ └── PutAndGetLiveChannelTest.cc
│ ├── MultipartUpload/
│ │ ├── CallableTest.cc
│ │ ├── MultipartUploadTest.cc
│ │ ├── ObjectAsyncTest.cc
│ │ └── ResumableObjectTest.cc
│ ├── Object/
│ │ ├── ObjectAclTest.cc
│ │ ├── ObjectAppendTest.cc
│ │ ├── ObjectBasicOperationTest.cc
│ │ ├── ObjectCallbackTest.cc
│ │ ├── ObjectCopyTest.cc
│ │ ├── ObjectEncodingTypeTest.cc
│ │ ├── ObjectHashCheckTest.cc
│ │ ├── ObjectProcessTest.cc
│ │ ├── ObjectProgressTest .cc
│ │ ├── ObjectRequestPaymentTest.cc
│ │ ├── ObjectRestoreTest.cc
│ │ ├── ObjectSignedUrlTest.cc
│ │ ├── ObjectSymlinkTest.cc
│ │ ├── ObjectTaggingTest.cc
│ │ ├── ObjectTrafficLimitTest.cc
│ │ ├── ObjectVersioningTest.cc
│ │ └── SelectObjectTest.cc
│ ├── Other/
│ │ ├── Crc64Test.cc
│ │ ├── EndpointTest.cc
│ │ ├── FileSystemUtilsFunctionTest.cc
│ │ ├── HttpClientTest.cc
│ │ ├── HttpsTest.cc
│ │ ├── IpEndpointTest.cc
│ │ ├── LogTest.cc
│ │ ├── RateLimiterTest.cc
│ │ ├── SignerTest.cc
│ │ └── UtilsFunctionTest.cc
│ ├── Program.cc
│ ├── Utils.cc
│ └── Utils.h
└── third_party/
├── include/
│ ├── curl/
│ │ ├── config-win32.h
│ │ ├── curl.h
│ │ ├── curlbuild.h
│ │ ├── curlrules.h
│ │ ├── curlver.h
│ │ ├── easy.h
│ │ ├── mprintf.h
│ │ ├── multi.h
│ │ ├── stdcheaders.h
│ │ └── typecheck-gcc.h
│ └── openssl/
│ ├── aes.h
│ ├── applink.c
│ ├── asn1.h
│ ├── asn1_mac.h
│ ├── asn1t.h
│ ├── bio.h
│ ├── blowfish.h
│ ├── bn.h
│ ├── buffer.h
│ ├── camellia.h
│ ├── cast.h
│ ├── cmac.h
│ ├── cms.h
│ ├── comp.h
│ ├── conf.h
│ ├── conf_api.h
│ ├── crypto.h
│ ├── des.h
│ ├── des_old.h
│ ├── dh.h
│ ├── dsa.h
│ ├── dso.h
│ ├── dtls1.h
│ ├── e_os2.h
│ ├── ebcdic.h
│ ├── ec.h
│ ├── ecdh.h
│ ├── ecdsa.h
│ ├── engine.h
│ ├── err.h
│ ├── evp.h
│ ├── hmac.h
│ ├── idea.h
│ ├── krb5_asn.h
│ ├── kssl.h
│ ├── lhash.h
│ ├── md4.h
│ ├── md5.h
│ ├── mdc2.h
│ ├── modes.h
│ ├── obj_mac.h
│ ├── objects.h
│ ├── ocsp.h
│ ├── opensslconf.h
│ ├── opensslv.h
│ ├── ossl_typ.h
│ ├── pem.h
│ ├── pem2.h
│ ├── pkcs12.h
│ ├── pkcs7.h
│ ├── pqueue.h
│ ├── rand.h
│ ├── rc2.h
│ ├── rc4.h
│ ├── ripemd.h
│ ├── rsa.h
│ ├── safestack.h
│ ├── seed.h
│ ├── sha.h
│ ├── srp.h
│ ├── srtp.h
│ ├── ssl.h
│ ├── ssl2.h
│ ├── ssl23.h
│ ├── ssl3.h
│ ├── stack.h
│ ├── symhacks.h
│ ├── tls1.h
│ ├── ts.h
│ ├── txt_db.h
│ ├── ui.h
│ ├── ui_compat.h
│ ├── whrlpool.h
│ ├── x509.h
│ ├── x509_vfy.h
│ └── x509v3.h
└── lib/
├── Win32/
│ ├── libcurl.lib
│ ├── libeay32.lib
│ └── ssleay32.lib
└── x64/
├── libcurl.lib
├── libeay32.lib
└── ssleay32.lib
Showing preview only (3,365K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3814 symbols across 527 files)
FILE: ptest/src/Config.cc
function LeftTrim (line 37) | static std::string LeftTrim(const char* source)
function RightTrim (line 44) | static std::string RightTrim(const char* source)
function Trim (line 51) | static std::string Trim(const char* source)
function LeftTrimQuotes (line 56) | static std::string LeftTrimQuotes(const char* source)
function RightTrimQuotes (line 63) | static std::string RightTrimQuotes(const char* source)
function TrimQuotes (line 70) | static std::string TrimQuotes(const char* source)
FILE: ptest/src/Config.h
function namespace (line 3) | namespace AlibabaCloud
FILE: ptest/src/Program.cc
type taskResult (line 30) | struct taskResult
class DefaultRateLimiter (line 44) | class DefaultRateLimiter : public RateLimiter
method DefaultRateLimiter (line 47) | DefaultRateLimiter() :rate_(0) {}
method setRate (line 49) | virtual void setRate(int rate) { rate_ = rate; }
method Rate (line 50) | virtual int Rate() const { return rate_; }
type tm (line 58) | struct tm
function get_file_size (line 72) | static int64_t get_file_size(const std::string& file)
function get_file_crc64 (line 81) | static uint64_t get_file_crc64(const std::string& file)
function calculate_part_count (line 100) | static int calculate_part_count(int64_t totalSize, int singleSize)
function is_test_done (line 110) | static bool is_test_done(int loopcnt, std::chrono::system_clock::time_po...
function log_msg (line 129) | static void log_msg(std::ostream & out, const std::string &msg)
function log_result_detail_msg (line 136) | static void log_result_detail_msg(std::ostream& out)
function get_90th_95th_latency_percentile (line 165) | static void get_90th_95th_latency_percentile(int64_t &per90, int64_t &pe...
function get_task_key (line 180) | static std::string get_task_key(int taskId)
function get_task_fileName (line 195) | static std::string get_task_fileName(int taskId)
function taskResult (line 210) | static taskResult upload(const OssClient &client, const std::string &key...
function taskResult (line 224) | static taskResult upload_async(const OssClient &client, const std::strin...
function taskResult (line 240) | static taskResult upload_resumable(const OssClient &client, const std::s...
type SubTaskInfo (line 259) | struct SubTaskInfo {
function taskResult (line 264) | static taskResult upload_multipart(const OssClient &client, const std::s...
function taskResult (line 370) | static taskResult download(const OssClient &client, const std::string &k...
function taskResult (line 385) | static taskResult download_async(const OssClient &client, const std::str...
function taskResult (line 404) | static taskResult download_resumable(const OssClient &client, const std:...
function runSingleTask (line 422) | static void runSingleTask(int taskId)
function statistic_report_begin (line 545) | void statistic_report_begin()
function statistic_report_end (line 565) | void statistic_report_end()
function LogCallbackFunc (line 604) | void LogCallbackFunc(LogLevel level, const std::string &stream)
function main (line 612) | int main(int argc, char **argv)
FILE: sample/src/Config.h
function class (line 2) | class Config
FILE: sample/src/LiveChannel/LiveChannelSample.cc
function waitTimeinSec (line 14) | static void waitTimeinSec(int time)
FILE: sample/src/LiveChannel/LiveChannelSample.h
function class (line 6) | class LiveChannelSample
FILE: sample/src/Program.cc
function LogCallbackFunc (line 23) | void LogCallbackFunc(LogLevel level, const std::string &stream)
function main (line 31) | int main(void)
FILE: sample/src/bucket/BucketSample.cc
function waitTimeinSec (line 12) | static void waitTimeinSec(int time)
FILE: sample/src/bucket/BucketSample.h
function class (line 3) | class BucketSample
FILE: sample/src/encryption/EncryptionSample.cc
function getFileSize (line 12) | static int64_t getFileSize(const std::string& file)
function readFromFile (line 21) | static std::string readFromFile(const std::string& file)
function ProgressCallback (line 106) | static void ProgressCallback(size_t increment, int64_t transfered, int64...
FILE: sample/src/encryption/EncryptionSample.h
function class (line 3) | class EncryptionSample
FILE: sample/src/object/ObjectSample.cc
function waitTimeinSec (line 11) | static void waitTimeinSec(int time)
function getFileSize (line 16) | static int64_t getFileSize(const std::string& file)
function ProgressCallback (line 297) | static void ProgressCallback(size_t increment, int64_t transfered, int64...
FILE: sample/src/object/ObjectSample.h
function class (line 3) | class ObjectSample
FILE: sample/src/presignedurl/PresignedUrlSample.h
function class (line 3) | class PresignedUrlSample
FILE: sample/src/service/ServiceSample.h
function class (line 3) | class ServiceSample
FILE: sdk/include/alibabacloud/oss/Const.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssClient.h
function namespace (line 27) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssEncryptionClient.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssError.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssFwd.h
function namespace (line 188) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssResponse.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/OssResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/ServiceRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/ServiceResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/Types.h
type StorageClass (line 32) | enum StorageClass
type CannedAccessControlList (line 40) | enum CannedAccessControlList
type CopyActionList (line 48) | enum CopyActionList
type EncodingType (line 54) | enum EncodingType {
type RequestResponseHeader (line 59) | enum RequestResponseHeader {
type RuleStatus (line 68) | enum RuleStatus
type LogLevel (line 74) | enum LogLevel
type LiveChannelStatus (line 86) | enum LiveChannelStatus
type class (line 96) | enum class
type class (line 103) | enum class
type class (line 110) | enum class
type class (line 117) | enum class
type class (line 124) | enum class
type class (line 130) | enum class
type class (line 137) | enum class
type class (line 148) | enum class
function TierType (line 155) | enum class TierType
FILE: sdk/include/alibabacloud/oss/auth/Credentials.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/auth/CredentialsProvider.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/client/AsyncCallerContext.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/client/ClientConfiguration.h
function namespace (line 26) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/client/Error.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/client/RateLimiter.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/client/RetryStrategy.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/encryption/Cipher.h
type class (line 26) | enum class
function CipherMode (line 31) | enum class CipherMode {
FILE: sdk/include/alibabacloud/oss/encryption/ContentCryptoMaterial.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/encryption/CryptoConfiguration.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/encryption/EncryptionMaterials.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpClient.h
function namespace (line 26) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpInterceptor.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpMessage.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpRequest.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpResponse.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/HttpType.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/http/Url.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/AbortBucketWormRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/AbortMultipartUploadRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/AppendObjectRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/AppendObjectResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/Bucket.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CORSRule.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CompleteBucketWormRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CompleteMultipartUploadRequest.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CompleteMultipartUploadResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CopyObjectRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CopyObjectResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CreateBucketRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CreateSelectObjectMetaRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CreateSelectObjectMetaResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CreateSymlinkRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/CreateSymlinkResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketCorsRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketEncryptionRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketInventoryConfigurationRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketLifecycleRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketLoggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketPolicyRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketQosInfoRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketTaggingRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteBucketWebsiteRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteLiveChannelRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectTaggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectTaggingResult.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectVersionsRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectVersionsResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectsRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DeleteObjectsResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/DownloadObjectRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ExtendBucketWormRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GeneratePresignedUrlRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GenerateRTMPSignedUrlRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketAclRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketAclResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketCorsRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketCorsResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketEncryptionRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketEncryptionResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketInfoRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketInfoResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketInventoryConfigurationRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketInventoryConfigurationResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLifecycleRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLifecycleResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLocationRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLocationResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLoggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketLoggingResult.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketPaymentRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketPaymentResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketPolicyRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketPolicyResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketQosInfoRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketQosInfoResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketRefererRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketRefererResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketStatRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketStatResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketStorageCapacityRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketStorageCapacityResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketTaggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketTaggingResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketVersioningRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketVersioningResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketWebsiteRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketWebsiteResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketWormRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetBucketWormResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelHistoryRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelHistoryResult.h
function namespace (line 27) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelInfoRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelInfoResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelStatRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetLiveChannelStatResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectAclRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectAclResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectByUrlRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectMetaRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectTaggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetObjectTaggingResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetSymlinkRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetSymlinkResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetUserQosInfoRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetUserQosInfoResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetVodPlaylistRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/GetVodPlaylistResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/HeadObjectRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/InitiateBucketWormRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/InitiateBucketWormResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/InitiateMultipartUploadRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/InitiateMultipartUploadResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/InputFormat.h
type CompressionType (line 26) | enum CompressionType
type CSVHeader (line 32) | enum CSVHeader
type JsonType (line 39) | enum JsonType
function class (line 48) | class ALIBABACLOUD_OSS_EXPORT InputFormat
FILE: sdk/include/alibabacloud/oss/model/InventoryConfiguration.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/LifecycleRule.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListBucketInventoryConfigurationsRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListBucketInventoryConfigurationsResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListBucketsRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListBucketsResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListLiveChannelRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListLiveChannelResult.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListMultipartUploadsRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListMultipartUploadsResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectVersionsRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectVersionsResult.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectsRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectsResult.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectsV2Request.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListObjectsV2Result.h
function namespace (line 26) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListPartsRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ListPartsResult.h
function namespace (line 27) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/MultiCopyObjectRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/MultipartUploadCryptoContext.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ObjectCallbackBuilder.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ObjectMetaData.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/OutputFormat.h
function class (line 27) | class ALIBABACLOUD_OSS_EXPORT OutputFormat
FILE: sdk/include/alibabacloud/oss/model/Owner.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/Part.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PostVodPlaylistRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/ProcessObjectRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutLiveChannelRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutLiveChannelResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutLiveChannelStatusRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutObjectByUrlRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutObjectRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/PutObjectResult.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/QosConfiguration.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/RestoreObjectRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/RestoreObjectResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SelectObjectRequest.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketAclRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketCorsRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketEncryptionRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketInventoryConfigurationRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketLifecycleRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketLoggingRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketPaymentRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketPolicyRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketQosInfoRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketRefererRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketStorageCapacityRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketTaggingRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketVersioningRequest.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetBucketWebsiteRequest.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetObjectAclRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetObjectAclResult.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetObjectTaggingRequest.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/SetObjectTaggingResult.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/Tagging.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/UploadObjectRequest.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/UploadPartCopyRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/UploadPartCopyResult.h
function namespace (line 24) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/UploadPartRequest.h
function namespace (line 23) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/model/VoidResult.h
function namespace (line 20) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/utils/Executor.h
function namespace (line 29) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/utils/Outcome.h
function namespace (line 19) | namespace AlibabaCloud
FILE: sdk/include/alibabacloud/oss/utils/Runnable.h
function namespace (line 22) | namespace AlibabaCloud
FILE: sdk/src/OssClient.cc
function ListBucketsOutcome (line 102) | ListBucketsOutcome OssClient::ListBuckets() const
function ListBucketsOutcome (line 107) | ListBucketsOutcome OssClient::ListBuckets(const ListBucketsRequest &requ...
function ListBucketInventoryConfigurationsOutcome (line 112) | ListBucketInventoryConfigurationsOutcome OssClient::ListBucketInventoryC...
function CreateBucketOutcome (line 117) | CreateBucketOutcome OssClient::CreateBucket(const std::string &bucket, S...
function CreateBucketOutcome (line 122) | CreateBucketOutcome OssClient::CreateBucket(const std::string &bucket, S...
function CreateBucketOutcome (line 127) | CreateBucketOutcome OssClient::CreateBucket(const CreateBucketRequest &r...
function VoidOutcome (line 132) | VoidOutcome OssClient::SetBucketAcl(const std::string &bucket, CannedAcc...
function VoidOutcome (line 137) | VoidOutcome OssClient::SetBucketAcl(const SetBucketAclRequest& request) ...
function VoidOutcome (line 142) | VoidOutcome OssClient::SetBucketLogging(const std::string &bucket, const...
function VoidOutcome (line 147) | VoidOutcome OssClient::SetBucketLogging(const SetBucketLoggingRequest& r...
function VoidOutcome (line 152) | VoidOutcome OssClient::SetBucketWebsite(const std::string &bucket, const...
function VoidOutcome (line 159) | VoidOutcome OssClient::SetBucketWebsite(const std::string &bucket, const...
function VoidOutcome (line 167) | VoidOutcome OssClient::SetBucketWebsite(const SetBucketWebsiteRequest& r...
function VoidOutcome (line 172) | VoidOutcome OssClient::SetBucketReferer(const std::string &bucket, const...
function VoidOutcome (line 177) | VoidOutcome OssClient::SetBucketReferer(const SetBucketRefererRequest& r...
function VoidOutcome (line 182) | VoidOutcome OssClient::SetBucketLifecycle(const SetBucketLifecycleReques...
function VoidOutcome (line 187) | VoidOutcome OssClient::SetBucketCors(const std::string &bucket, const CO...
function VoidOutcome (line 194) | VoidOutcome OssClient::SetBucketCors(const SetBucketCorsRequest& request...
function VoidOutcome (line 199) | VoidOutcome OssClient::SetBucketStorageCapacity(const std::string &bucke...
function VoidOutcome (line 204) | VoidOutcome OssClient::SetBucketStorageCapacity(const SetBucketStorageCa...
function VoidOutcome (line 209) | VoidOutcome OssClient::SetBucketPolicy(const SetBucketPolicyRequest& req...
function VoidOutcome (line 213) | VoidOutcome OssClient::SetBucketRequestPayment(const SetBucketRequestPay...
function VoidOutcome (line 218) | VoidOutcome OssClient::SetBucketEncryption(const SetBucketEncryptionRequ...
function VoidOutcome (line 223) | VoidOutcome OssClient::SetBucketTagging(const SetBucketTaggingRequest& r...
function VoidOutcome (line 228) | VoidOutcome OssClient::SetBucketQosInfo(const SetBucketQosInfoRequest& r...
function VoidOutcome (line 233) | VoidOutcome OssClient::DeleteBucketPolicy(const DeleteBucketPolicyReques...
function VoidOutcome (line 238) | VoidOutcome OssClient::SetBucketVersioning(const SetBucketVersioningRequ...
function VoidOutcome (line 243) | VoidOutcome OssClient::SetBucketInventoryConfiguration(const SetBucketIn...
function VoidOutcome (line 248) | VoidOutcome OssClient::DeleteBucket(const std::string &bucket) const
function VoidOutcome (line 253) | VoidOutcome OssClient::DeleteBucket(const DeleteBucketRequest &request) ...
function VoidOutcome (line 258) | VoidOutcome OssClient::DeleteBucketLogging(const std::string &bucket) const
function VoidOutcome (line 263) | VoidOutcome OssClient::DeleteBucketLogging(const DeleteBucketLoggingRequ...
function VoidOutcome (line 268) | VoidOutcome OssClient::DeleteBucketWebsite(const std::string &bucket) const
function VoidOutcome (line 273) | VoidOutcome OssClient::DeleteBucketWebsite(const DeleteBucketWebsiteRequ...
function VoidOutcome (line 278) | VoidOutcome OssClient::DeleteBucketLifecycle(const std::string &bucket) ...
function VoidOutcome (line 283) | VoidOutcome OssClient::DeleteBucketLifecycle(const DeleteBucketLifecycle...
function VoidOutcome (line 288) | VoidOutcome OssClient::DeleteBucketCors(const std::string &bucket) const
function VoidOutcome (line 293) | VoidOutcome OssClient::DeleteBucketCors(const DeleteBucketCorsRequest& r...
function VoidOutcome (line 298) | VoidOutcome OssClient::DeleteBucketEncryption(const DeleteBucketEncrypti...
function VoidOutcome (line 303) | VoidOutcome OssClient::DeleteBucketTagging(const DeleteBucketTaggingRequ...
function VoidOutcome (line 308) | VoidOutcome OssClient::DeleteBucketQosInfo(const DeleteBucketQosInfoRequ...
function VoidOutcome (line 313) | VoidOutcome OssClient::DeleteBucketInventoryConfiguration(const DeleteBu...
function GetBucketAclOutcome (line 318) | GetBucketAclOutcome OssClient::GetBucketAcl(const std::string &bucket) c...
function GetBucketAclOutcome (line 323) | GetBucketAclOutcome OssClient::GetBucketAcl(const GetBucketAclRequest &r...
function GetBucketLocationOutcome (line 328) | GetBucketLocationOutcome OssClient::GetBucketLocation(const std::string ...
function GetBucketLocationOutcome (line 333) | GetBucketLocationOutcome OssClient::GetBucketLocation(const GetBucketLoc...
function GetBucketInfoOutcome (line 338) | GetBucketInfoOutcome OssClient::GetBucketInfo(const std::string &bucket)...
function GetBucketInfoOutcome (line 343) | GetBucketInfoOutcome OssClient::GetBucketInfo(const GetBucketInfoReque...
function GetBucketLoggingOutcome (line 348) | GetBucketLoggingOutcome OssClient::GetBucketLogging(const std::string &b...
function GetBucketLoggingOutcome (line 353) | GetBucketLoggingOutcome OssClient::GetBucketLogging(const GetBucketLoggi...
function GetBucketWebsiteOutcome (line 358) | GetBucketWebsiteOutcome OssClient::GetBucketWebsite(const std::string &b...
function GetBucketWebsiteOutcome (line 363) | GetBucketWebsiteOutcome OssClient::GetBucketWebsite(const GetBucketWebsi...
function GetBucketRefererOutcome (line 368) | GetBucketRefererOutcome OssClient::GetBucketReferer(const std::string &b...
function GetBucketRefererOutcome (line 373) | GetBucketRefererOutcome OssClient::GetBucketReferer(const GetBucketRefer...
function GetBucketLifecycleOutcome (line 378) | GetBucketLifecycleOutcome OssClient::GetBucketLifecycle(const std::strin...
function GetBucketLifecycleOutcome (line 383) | GetBucketLifecycleOutcome OssClient::GetBucketLifecycle(const GetBucketL...
function GetBucketStatOutcome (line 388) | GetBucketStatOutcome OssClient::GetBucketStat(const std::string &bucket)...
function GetBucketStatOutcome (line 393) | GetBucketStatOutcome OssClient::GetBucketStat(const GetBucketStatRequest...
function GetBucketCorsOutcome (line 398) | GetBucketCorsOutcome OssClient::GetBucketCors(const std::string &bucket)...
function GetBucketCorsOutcome (line 403) | GetBucketCorsOutcome OssClient::GetBucketCors(const GetBucketCorsRequest...
function GetBucketStorageCapacityOutcome (line 408) | GetBucketStorageCapacityOutcome OssClient::GetBucketStorageCapacity(cons...
function GetBucketStorageCapacityOutcome (line 413) | GetBucketStorageCapacityOutcome OssClient::GetBucketStorageCapacity(cons...
function GetBucketPolicyOutcome (line 418) | GetBucketPolicyOutcome OssClient::GetBucketPolicy(const GetBucketPolicyR...
function GetBucketPaymentOutcome (line 422) | GetBucketPaymentOutcome OssClient::GetBucketRequestPayment(const GetBuck...
function GetBucketEncryptionOutcome (line 427) | GetBucketEncryptionOutcome OssClient::GetBucketEncryption(const GetBucke...
function GetBucketTaggingOutcome (line 432) | GetBucketTaggingOutcome OssClient::GetBucketTagging(const GetBucketTaggi...
function GetBucketQosInfoOutcome (line 437) | GetBucketQosInfoOutcome OssClient::GetBucketQosInfo(const GetBucketQosIn...
function GetUserQosInfoOutcome (line 442) | GetUserQosInfoOutcome OssClient::GetUserQosInfo(const GetUserQosInfoRequ...
function GetBucketVersioningOutcome (line 447) | GetBucketVersioningOutcome OssClient::GetBucketVersioning(const GetBucke...
function GetBucketInventoryConfigurationOutcome (line 452) | GetBucketInventoryConfigurationOutcome OssClient::GetBucketInventoryConf...
function InitiateBucketWormOutcome (line 457) | InitiateBucketWormOutcome OssClient::InitiateBucketWorm(const InitiateBu...
function VoidOutcome (line 462) | VoidOutcome OssClient::AbortBucketWorm(const AbortBucketWormRequest& req...
function VoidOutcome (line 467) | VoidOutcome OssClient::CompleteBucketWorm(const CompleteBucketWormReques...
function VoidOutcome (line 472) | VoidOutcome OssClient::ExtendBucketWormWorm(const ExtendBucketWormReques...
function GetBucketWormOutcome (line 477) | GetBucketWormOutcome OssClient::GetBucketWorm(const GetBucketWormRequest...
function ListObjectOutcome (line 484) | ListObjectOutcome OssClient::ListObjects(const std::string &bucket) const
function ListObjectOutcome (line 489) | ListObjectOutcome OssClient::ListObjects(const std::string &bucket, cons...
function ListObjectOutcome (line 496) | ListObjectOutcome OssClient::ListObjects(const ListObjectsRequest &reque...
function ListObjectsV2Outcome (line 501) | ListObjectsV2Outcome OssClient::ListObjectsV2(const ListObjectsV2Request...
function ListObjectVersionsOutcome (line 506) | ListObjectVersionsOutcome OssClient::ListObjectVersions(const std::strin...
function ListObjectVersionsOutcome (line 511) | ListObjectVersionsOutcome OssClient::ListObjectVersions(const std::strin...
function ListObjectVersionsOutcome (line 518) | ListObjectVersionsOutcome OssClient::ListObjectVersions(const ListObject...
function GetObjectOutcome (line 523) | GetObjectOutcome OssClient::GetObject(const std::string &bucket, const s...
function GetObjectOutcome (line 528) | GetObjectOutcome OssClient::GetObject(const std::string &bucket, const s...
function GetObjectOutcome (line 535) | GetObjectOutcome OssClient::GetObject(const std::string &bucket, const s...
function GetObjectOutcome (line 542) | GetObjectOutcome OssClient::GetObject(const GetObjectRequest &request) c...
function PutObjectOutcome (line 547) | PutObjectOutcome OssClient::PutObject(const std::string &bucket, const s...
function PutObjectOutcome (line 552) | PutObjectOutcome OssClient::PutObject(const std::string &bucket, const s...
function PutObjectOutcome (line 558) | PutObjectOutcome OssClient::PutObject(const std::string &bucket, const s...
function PutObjectOutcome (line 563) | PutObjectOutcome OssClient::PutObject(const std::string &bucket, const s...
function PutObjectOutcome (line 569) | PutObjectOutcome OssClient::PutObject(const PutObjectRequest &request) c...
function DeleteObjectOutcome (line 574) | DeleteObjectOutcome OssClient::DeleteObject(const std::string &bucket, c...
function DeleteObjectOutcome (line 579) | DeleteObjectOutcome OssClient::DeleteObject(const DeleteObjectRequest &r...
function DeleteObjecstOutcome (line 584) | DeleteObjecstOutcome OssClient::DeleteObjects(const std::string bucket, ...
function DeleteObjecstOutcome (line 591) | DeleteObjecstOutcome OssClient::DeleteObjects(const DeleteObjectsRequest...
function DeleteObjecVersionstOutcome (line 596) | DeleteObjecVersionstOutcome OssClient::DeleteObjectVersions(const std::s...
function DeleteObjecVersionstOutcome (line 603) | DeleteObjecVersionstOutcome OssClient::DeleteObjectVersions(const Delete...
function ObjectMetaDataOutcome (line 608) | ObjectMetaDataOutcome OssClient::HeadObject(const std::string &bucket, c...
function ObjectMetaDataOutcome (line 613) | ObjectMetaDataOutcome OssClient::HeadObject(const HeadObjectRequest &req...
function ObjectMetaDataOutcome (line 618) | ObjectMetaDataOutcome OssClient::GetObjectMeta(const std::string &bucket...
function ObjectMetaDataOutcome (line 623) | ObjectMetaDataOutcome OssClient::GetObjectMeta(const GetObjectMetaReques...
function GetObjectAclOutcome (line 628) | GetObjectAclOutcome OssClient::GetObjectAcl(const GetObjectAclRequest &r...
function AppendObjectOutcome (line 633) | AppendObjectOutcome OssClient::AppendObject(const AppendObjectRequest &r...
function CopyObjectOutcome (line 638) | CopyObjectOutcome OssClient::CopyObject(const CopyObjectRequest &request...
function GetSymlinkOutcome (line 643) | GetSymlinkOutcome OssClient::GetSymlink(const GetSymlinkRequest &request...
function GetObjectOutcome (line 648) | GetObjectOutcome OssClient::ProcessObject(const ProcessObjectRequest &re...
function RestoreObjectOutcome (line 653) | RestoreObjectOutcome OssClient::RestoreObject(const std::string &bucket,...
function RestoreObjectOutcome (line 658) | RestoreObjectOutcome OssClient::RestoreObject(const RestoreObjectRequest...
function CreateSymlinkOutcome (line 663) | CreateSymlinkOutcome OssClient::CreateSymlink(const CreateSymlinkRequest...
function SetObjectAclOutcome (line 668) | SetObjectAclOutcome OssClient::SetObjectAcl(const SetObjectAclRequest &r...
function GetObjectOutcome (line 673) | GetObjectOutcome OssClient::SelectObject(const SelectObjectRequest &requ...
function CreateSelectObjectMetaOutcome (line 678) | CreateSelectObjectMetaOutcome OssClient::CreateSelectObjectMeta(const Cr...
function SetObjectTaggingOutcome (line 683) | SetObjectTaggingOutcome OssClient::SetObjectTagging(const SetObjectTaggi...
function DeleteObjectTaggingOutcome (line 688) | DeleteObjectTaggingOutcome OssClient::DeleteObjectTagging(const DeleteOb...
function GetObjectTaggingOutcome (line 693) | GetObjectTaggingOutcome OssClient::GetObjectTagging(const GetObjectTaggi...
function StringOutcome (line 698) | StringOutcome OssClient::GeneratePresignedUrl(const GeneratePresignedUrl...
function StringOutcome (line 703) | StringOutcome OssClient::GeneratePresignedUrl(const std::string &bucket,...
function StringOutcome (line 708) | StringOutcome OssClient::GeneratePresignedUrl(const std::string &bucket,...
function StringOutcome (line 715) | StringOutcome OssClient::GeneratePresignedUrl(const std::string &bucket,...
function GetObjectOutcome (line 722) | GetObjectOutcome OssClient::GetObjectByUrl(const GetObjectByUrlRequest &...
function GetObjectOutcome (line 727) | GetObjectOutcome OssClient::GetObjectByUrl(const std::string &url) const
function GetObjectOutcome (line 732) | GetObjectOutcome OssClient::GetObjectByUrl(const std::string &url, const...
function PutObjectOutcome (line 739) | PutObjectOutcome OssClient::PutObjectByUrl(const PutObjectByUrlRequest &...
function PutObjectOutcome (line 744) | PutObjectOutcome OssClient::PutObjectByUrl(const std::string &url, const...
function PutObjectOutcome (line 750) | PutObjectOutcome OssClient::PutObjectByUrl(const std::string &url, const...
function PutObjectOutcome (line 756) | PutObjectOutcome OssClient::PutObjectByUrl(const std::string &url, const...
function PutObjectOutcome (line 761) | PutObjectOutcome OssClient::PutObjectByUrl(const std::string &url, const...
function InitiateMultipartUploadOutcome (line 766) | InitiateMultipartUploadOutcome OssClient::InitiateMultipartUpload(const ...
function PutObjectOutcome (line 771) | PutObjectOutcome OssClient::UploadPart(const UploadPartRequest &request)...
function UploadPartCopyOutcome (line 776) | UploadPartCopyOutcome OssClient::UploadPartCopy(const UploadPartCopyRequ...
function CompleteMultipartUploadOutcome (line 781) | CompleteMultipartUploadOutcome OssClient::CompleteMultipartUpload(const ...
function VoidOutcome (line 786) | VoidOutcome OssClient::AbortMultipartUpload(const AbortMultipartUploadRe...
function ListMultipartUploadsOutcome (line 791) | ListMultipartUploadsOutcome OssClient::ListMultipartUploads(const ListMu...
function ListPartsOutcome (line 796) | ListPartsOutcome OssClient::ListParts(const ListPartsRequest &request) c...
function ListObjectOutcomeCallable (line 854) | ListObjectOutcomeCallable OssClient::ListObjectsCallable(const ListObjec...
function GetObjectOutcomeCallable (line 865) | GetObjectOutcomeCallable OssClient::GetObjectCallable(const GetObjectReq...
function PutObjectOutcomeCallable (line 877) | PutObjectOutcomeCallable OssClient::PutObjectCallable(const PutObjectReq...
function PutObjectOutcomeCallable (line 888) | PutObjectOutcomeCallable OssClient::UploadPartCallable(const UploadPartR...
function UploadPartCopyOutcomeCallable (line 899) | UploadPartCopyOutcomeCallable OssClient::UploadPartCopyCallable(const Up...
function CopyObjectOutcome (line 923) | CopyObjectOutcome OssClient::ModifyObjectMeta(const std::string& bucket,...
function VoidOutcome (line 932) | VoidOutcome OssClient::PutLiveChannelStatus(const PutLiveChannelStatusRe...
function PutLiveChannelOutcome (line 937) | PutLiveChannelOutcome OssClient::PutLiveChannel(const PutLiveChannelRequ...
function VoidOutcome (line 942) | VoidOutcome OssClient::PostVodPlaylist(const PostVodPlaylistRequest &req...
function GetVodPlaylistOutcome (line 947) | GetVodPlaylistOutcome OssClient::GetVodPlaylist(const GetVodPlaylistRequ...
function GetLiveChannelStatOutcome (line 952) | GetLiveChannelStatOutcome OssClient::GetLiveChannelStat(const GetLiveCha...
function GetLiveChannelInfoOutcome (line 957) | GetLiveChannelInfoOutcome OssClient::GetLiveChannelInfo(const GetLiveCha...
function GetLiveChannelHistoryOutcome (line 962) | GetLiveChannelHistoryOutcome OssClient::GetLiveChannelHistory(const GetL...
function ListLiveChannelOutcome (line 967) | ListLiveChannelOutcome OssClient::ListLiveChannel(const ListLiveChannelR...
function VoidOutcome (line 972) | VoidOutcome OssClient::DeleteLiveChannel(const DeleteLiveChannelRequest ...
function StringOutcome (line 977) | StringOutcome OssClient::GenerateRTMPSignedUrl(const GenerateRTMPSignedU...
function PutObjectOutcome (line 994) | PutObjectOutcome OssClient::ResumableUploadObject(const UploadObjectRequ...
function CopyObjectOutcome (line 999) | CopyObjectOutcome OssClient::ResumableCopyObject(const MultiCopyObjectRe...
function GetObjectOutcome (line 1004) | GetObjectOutcome OssClient::ResumableDownloadObject(const DownloadObject...
FILE: sdk/src/OssClientImpl.cc
function OssError (line 235) | OssError OssClientImpl::buildError(const Error &error) const
function ServiceResult (line 281) | ServiceResult OssClientImpl::buildResult(const OssRequest &request, cons...
function OssOutcome (line 296) | OssOutcome OssClientImpl::MakeRequest(const OssRequest &request, Http::M...
function ListBucketsOutcome (line 317) | ListBucketsOutcome OssClientImpl::ListBuckets(const ListBucketsRequest &...
function CreateBucketOutcome (line 330) | CreateBucketOutcome OssClientImpl::CreateBucket(const CreateBucketReques...
function VoidOutcome (line 340) | VoidOutcome OssClientImpl::SetBucketAcl(const SetBucketAclRequest& reque...
function VoidOutcome (line 352) | VoidOutcome OssClientImpl::SetBucketLogging(const SetBucketLoggingReques...
function VoidOutcome (line 365) | VoidOutcome OssClientImpl::SetBucketWebsite(const SetBucketWebsiteReques...
function VoidOutcome (line 378) | VoidOutcome OssClientImpl::SetBucketReferer(const SetBucketRefererReques...
function VoidOutcome (line 391) | VoidOutcome OssClientImpl::SetBucketLifecycle(const SetBucketLifecycleRe...
function VoidOutcome (line 404) | VoidOutcome OssClientImpl::SetBucketCors(const SetBucketCorsRequest& req...
function VoidOutcome (line 417) | VoidOutcome OssClientImpl::SetBucketStorageCapacity(const SetBucketStora...
function VoidOutcome (line 430) | VoidOutcome OssClientImpl::SetBucketPolicy(const SetBucketPolicyRequest&...
function VoidOutcome (line 442) | VoidOutcome OssClientImpl::SetBucketRequestPayment(const SetBucketReques...
function VoidOutcome (line 455) | VoidOutcome AlibabaCloud::OSS::OssClientImpl::SetBucketEncryption(const ...
function VoidOutcome (line 468) | VoidOutcome OssClientImpl::SetBucketTagging(const SetBucketTaggingReques...
function VoidOutcome (line 481) | VoidOutcome OssClientImpl::SetBucketQosInfo(const SetBucketQosInfoReques...
function VoidOutcome (line 494) | VoidOutcome OssClientImpl::SetBucketVersioning(const SetBucketVersioning...
function VoidOutcome (line 507) | VoidOutcome OssClientImpl::SetBucketInventoryConfiguration(const SetBuck...
function VoidOutcome (line 520) | VoidOutcome OssClientImpl::DeleteBucket(const DeleteBucketRequest &reque...
function VoidOutcome (line 533) | VoidOutcome OssClientImpl::DeleteBucketLogging(const DeleteBucketLogging...
function VoidOutcome (line 546) | VoidOutcome OssClientImpl::DeleteBucketWebsite(const DeleteBucketWebsite...
function VoidOutcome (line 559) | VoidOutcome OssClientImpl::DeleteBucketLifecycle(const DeleteBucketLifec...
function VoidOutcome (line 572) | VoidOutcome OssClientImpl::DeleteBucketCors(const DeleteBucketCorsReques...
function VoidOutcome (line 585) | VoidOutcome OssClientImpl::DeleteBucketPolicy(const DeleteBucketPolicyRe...
function VoidOutcome (line 598) | VoidOutcome OssClientImpl::DeleteBucketEncryption(const DeleteBucketEncr...
function VoidOutcome (line 611) | VoidOutcome OssClientImpl::DeleteBucketTagging(const DeleteBucketTagging...
function VoidOutcome (line 624) | VoidOutcome OssClientImpl::DeleteBucketQosInfo(const DeleteBucketQosInfo...
function VoidOutcome (line 637) | VoidOutcome OssClientImpl::DeleteBucketInventoryConfiguration(const Dele...
function GetBucketAclOutcome (line 650) | GetBucketAclOutcome OssClientImpl::GetBucketAcl(const GetBucketAclReques...
function GetBucketLocationOutcome (line 664) | GetBucketLocationOutcome OssClientImpl::GetBucketLocation(const GetBucke...
function GetBucketInfoOutcome (line 678) | GetBucketInfoOutcome OssClientImpl::GetBucketInfo(const GetBucketInfoR...
function GetBucketLoggingOutcome (line 692) | GetBucketLoggingOutcome OssClientImpl::GetBucketLogging(const GetBucketL...
function GetBucketWebsiteOutcome (line 706) | GetBucketWebsiteOutcome OssClientImpl::GetBucketWebsite(const GetBucketW...
function GetBucketRefererOutcome (line 720) | GetBucketRefererOutcome OssClientImpl::GetBucketReferer(const GetBucketR...
function GetBucketLifecycleOutcome (line 734) | GetBucketLifecycleOutcome OssClientImpl::GetBucketLifecycle(const GetBuc...
function GetBucketStatOutcome (line 748) | GetBucketStatOutcome OssClientImpl::GetBucketStat(const GetBucketStatReq...
function GetBucketCorsOutcome (line 762) | GetBucketCorsOutcome OssClientImpl::GetBucketCors(const GetBucketCorsReq...
function GetBucketStorageCapacityOutcome (line 776) | GetBucketStorageCapacityOutcome OssClientImpl::GetBucketStorageCapacity(...
function GetBucketPolicyOutcome (line 790) | GetBucketPolicyOutcome OssClientImpl::GetBucketPolicy(const GetBucketPol...
function GetBucketPaymentOutcome (line 803) | GetBucketPaymentOutcome OssClientImpl::GetBucketRequestPayment(const Get...
function GetBucketEncryptionOutcome (line 817) | GetBucketEncryptionOutcome OssClientImpl::GetBucketEncryption(const GetB...
function GetBucketTaggingOutcome (line 831) | GetBucketTaggingOutcome OssClientImpl::GetBucketTagging(const GetBucketT...
function GetBucketQosInfoOutcome (line 845) | GetBucketQosInfoOutcome OssClientImpl::GetBucketQosInfo(const GetBucketQ...
function GetUserQosInfoOutcome (line 859) | GetUserQosInfoOutcome OssClientImpl::GetUserQosInfo(const GetUserQosInfo...
function GetBucketVersioningOutcome (line 873) | GetBucketVersioningOutcome OssClientImpl::GetBucketVersioning(const GetB...
function GetBucketInventoryConfigurationOutcome (line 887) | GetBucketInventoryConfigurationOutcome OssClientImpl::GetBucketInventory...
function ListBucketInventoryConfigurationsOutcome (line 901) | ListBucketInventoryConfigurationsOutcome OssClientImpl::ListBucketInvent...
function InitiateBucketWormOutcome (line 915) | InitiateBucketWormOutcome OssClientImpl::InitiateBucketWorm(const Initia...
function VoidOutcome (line 926) | VoidOutcome OssClientImpl::AbortBucketWorm(const AbortBucketWormRequest&...
function VoidOutcome (line 939) | VoidOutcome OssClientImpl::CompleteBucketWorm(const CompleteBucketWormRe...
function VoidOutcome (line 952) | VoidOutcome OssClientImpl::ExtendBucketWormWorm(const ExtendBucketWormRe...
function GetBucketWormOutcome (line 965) | GetBucketWormOutcome OssClientImpl::GetBucketWorm(const GetBucketWormReq...
function ListObjectOutcome (line 980) | ListObjectOutcome OssClientImpl::ListObjects(const ListObjectsRequest &r...
function ListObjectsV2Outcome (line 994) | ListObjectsV2Outcome OssClientImpl::ListObjectsV2(const ListObjectsV2Req...
function ListObjectVersionsOutcome (line 1008) | ListObjectVersionsOutcome OssClientImpl::ListObjectVersions(const ListOb...
function GetObjectOutcome (line 1023) | GetObjectOutcome OssClientImpl::GetObject(const GetObjectRequest &reques...
function PutObjectOutcome (line 1035) | PutObjectOutcome OssClientImpl::PutObject(const PutObjectRequest &reques...
function DeleteObjectOutcome (line 1047) | DeleteObjectOutcome OssClientImpl::DeleteObject(const DeleteObjectReques...
function DeleteObjecstOutcome (line 1058) | DeleteObjecstOutcome OssClientImpl::DeleteObjects(const DeleteObjectsReq...
function DeleteObjecVersionstOutcome (line 1072) | DeleteObjecVersionstOutcome OssClientImpl::DeleteObjectVersions(const De...
function ObjectMetaDataOutcome (line 1086) | ObjectMetaDataOutcome OssClientImpl::HeadObject(const HeadObjectRequest ...
function ObjectMetaDataOutcome (line 1098) | ObjectMetaDataOutcome OssClientImpl::GetObjectMeta(const GetObjectMetaRe...
function GetObjectAclOutcome (line 1110) | GetObjectAclOutcome OssClientImpl::GetObjectAcl(const GetObjectAclReques...
function AppendObjectOutcome (line 1123) | AppendObjectOutcome OssClientImpl::AppendObject(const AppendObjectReques...
function CopyObjectOutcome (line 1136) | CopyObjectOutcome OssClientImpl::CopyObject(const CopyObjectRequest &req...
function GetSymlinkOutcome (line 1147) | GetSymlinkOutcome OssClientImpl::GetSymlink(const GetSymlinkRequest &req...
function RestoreObjectOutcome (line 1158) | RestoreObjectOutcome OssClientImpl::RestoreObject(const RestoreObjectReq...
function CreateSymlinkOutcome (line 1169) | CreateSymlinkOutcome OssClientImpl::CreateSymlink(const CreateSymlinkReq...
function SetObjectAclOutcome (line 1180) | SetObjectAclOutcome OssClientImpl::SetObjectAcl(const SetObjectAclReques...
function GetObjectOutcome (line 1191) | GetObjectOutcome OssClientImpl::ProcessObject(const ProcessObjectRequest...
function GetObjectOutcome (line 1203) | GetObjectOutcome OssClientImpl::SelectObject(const SelectObjectRequest &...
function CreateSelectObjectMetaOutcome (line 1219) | CreateSelectObjectMetaOutcome OssClientImpl::CreateSelectObjectMeta(cons...
function SetObjectTaggingOutcome (line 1233) | SetObjectTaggingOutcome OssClientImpl::SetObjectTagging(const SetObjectT...
function DeleteObjectTaggingOutcome (line 1244) | DeleteObjectTaggingOutcome OssClientImpl::DeleteObjectTagging(const Dele...
function GetObjectTaggingOutcome (line 1255) | GetObjectTaggingOutcome OssClientImpl::GetObjectTagging(const GetObjectT...
function StringOutcome (line 1268) | StringOutcome OssClientImpl::GeneratePresignedUrl(const GeneratePresigne...
function GetObjectOutcome (line 1311) | GetObjectOutcome OssClientImpl::GetObjectByUrl(const GetObjectByUrlReque...
function PutObjectOutcome (line 1324) | PutObjectOutcome OssClientImpl::PutObjectByUrl(const PutObjectByUrlReque...
function InitiateMultipartUploadOutcome (line 1336) | InitiateMultipartUploadOutcome OssClientImpl::InitiateMultipartUpload(co...
function PutObjectOutcome (line 1352) | PutObjectOutcome OssClientImpl::UploadPart(const UploadPartRequest &requ...
function UploadPartCopyOutcome (line 1363) | UploadPartCopyOutcome OssClientImpl::UploadPartCopy(const UploadPartCopy...
function CompleteMultipartUploadOutcome (line 1376) | CompleteMultipartUploadOutcome OssClientImpl::CompleteMultipartUpload(co...
function VoidOutcome (line 1391) | VoidOutcome OssClientImpl::AbortMultipartUpload(const AbortMultipartUplo...
function ListMultipartUploadsOutcome (line 1404) | ListMultipartUploadsOutcome OssClientImpl::ListMultipartUploads(
function ListPartsOutcome (line 1421) | ListPartsOutcome OssClientImpl::ListParts(const ListPartsRequest &reques...
function PutObjectOutcome (line 1438) | PutObjectOutcome OssClientImpl::ResumableUploadObject(const UploadObject...
function CopyObjectOutcome (line 1469) | CopyObjectOutcome OssClientImpl::ResumableCopyObject(const MultiCopyObje...
function GetObjectOutcome (line 1509) | GetObjectOutcome OssClientImpl::ResumableDownloadObject(const DownloadOb...
function VoidOutcome (line 1572) | VoidOutcome OssClientImpl::PutLiveChannelStatus(const PutLiveChannelStat...
function PutLiveChannelOutcome (line 1585) | PutLiveChannelOutcome OssClientImpl::PutLiveChannel(const PutLiveChannel...
function VoidOutcome (line 1600) | VoidOutcome OssClientImpl::PostVodPlaylist(const PostVodPlaylistRequest ...
function GetVodPlaylistOutcome (line 1613) | GetVodPlaylistOutcome OssClientImpl::GetVodPlaylist(const GetVodPlaylist...
function GetLiveChannelStatOutcome (line 1626) | GetLiveChannelStatOutcome OssClientImpl::GetLiveChannelStat(const GetLiv...
function GetLiveChannelInfoOutcome (line 1641) | GetLiveChannelInfoOutcome OssClientImpl::GetLiveChannelInfo(const GetLiv...
function GetLiveChannelHistoryOutcome (line 1656) | GetLiveChannelHistoryOutcome OssClientImpl::GetLiveChannelHistory(const ...
function ListLiveChannelOutcome (line 1671) | ListLiveChannelOutcome OssClientImpl::ListLiveChannel(const ListLiveChan...
function VoidOutcome (line 1686) | VoidOutcome OssClientImpl::DeleteLiveChannel(const DeleteLiveChannelRequ...
function StringOutcome (line 1699) | StringOutcome OssClientImpl::GenerateRTMPSignedUrl(const GenerateRTMPSig...
FILE: sdk/src/OssClientImpl.h
function namespace (line 32) | namespace AlibabaCloud
FILE: sdk/src/OssRequest.cc
function HeaderCollection (line 42) | HeaderCollection OssRequest::Headers() const
function ParameterCollection (line 54) | ParameterCollection OssRequest::Parameters() const
function HeaderCollection (line 86) | HeaderCollection OssRequest::specialHeaders() const
function ParameterCollection (line 91) | ParameterCollection OssRequest::specialParameters() const
function HeaderCollection (line 178) | HeaderCollection OssObjectRequest::specialHeaders() const
function ParameterCollection (line 187) | ParameterCollection OssObjectRequest::specialParameters() const
FILE: sdk/src/ServiceRequest.cc
function IOStreamFactory (line 41) | const IOStreamFactory& ServiceRequest::ResponseStreamFactory() const
FILE: sdk/src/auth/CredentialsProvider.cc
function Credentials (line 25) | Credentials EnvironmentVariableCredentialsProvider::getCredentials()
FILE: sdk/src/auth/SimpleCredentialsProvider.cc
function Credentials (line 39) | Credentials SimpleCredentialsProvider::getCredentials()
FILE: sdk/src/client/Client.cc
function ClientConfiguration (line 43) | const ClientConfiguration& Client::configuration()const
function Error (line 114) | Error Client::buildError(const std::shared_ptr<HttpResponse> &response) ...
FILE: sdk/src/client/Client.h
function namespace (line 28) | namespace AlibabaCloud
FILE: sdk/src/client/ClientConfiguration.cc
function DefaultUserAgent (line 37) | static std::string DefaultUserAgent()
class DefaultRetryStrategy (line 44) | class DefaultRetryStrategy : public RetryStrategy
method DefaultRetryStrategy (line 48) | DefaultRetryStrategy(long maxRetries = 3, long scaleFactor = 300) :
FILE: sdk/src/encryption/Cipher.cc
function toAlgorithmName (line 22) | inline static std::string toAlgorithmName(CipherAlgorithm algo)
function toModeName (line 28) | inline static std::string toModeName(CipherMode mode)
function toPaddingName (line 34) | inline static std::string toPaddingName(CipherPadding pad)
function ByteBuffer (line 54) | ByteBuffer SymmetricCipher::GenerateIV(size_t length)
function ByteBuffer (line 62) | ByteBuffer SymmetricCipher::GenerateKey(size_t length)
function bswap (line 71) | typename std::enable_if<std::is_unsigned<T>::value, T>::type
function ByteBuffer (line 78) | ByteBuffer SymmetricCipher::IncCTRCounter(const ByteBuffer& counter, uin...
FILE: sdk/src/encryption/CipherOpenssl.cc
function ByteBuffer (line 63) | ByteBuffer SymmetricCipherOpenssl::Encrypt(const ByteBuffer& data)
function ByteBuffer (line 93) | ByteBuffer SymmetricCipherOpenssl::EncryptFinish()
function ByteBuffer (line 113) | ByteBuffer SymmetricCipherOpenssl::Decrypt(const ByteBuffer& data)
function ByteBuffer (line 142) | ByteBuffer SymmetricCipherOpenssl::DecryptFinish()
function ByteBuffer (line 164) | ByteBuffer AsymmetricCipherOpenssl::Encrypt(const ByteBuffer& data)
function ByteBuffer (line 285) | ByteBuffer AsymmetricCipherOpenssl::Decrypt(const ByteBuffer& data)
FILE: sdk/src/encryption/CipherOpenssl.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/src/encryption/CryptoModule.cc
function getUserAgent (line 34) | static std::string getUserAgent(const std::string& prefix)
function PutObjectOutcome (line 61) | PutObjectOutcome CryptoModule::PutObjectSecurely(const std::shared_ptr<O...
function GetObjectOutcome (line 77) | GetObjectOutcome CryptoModule::GetObjectSecurely(const std::shared_ptr<O...
function InitiateMultipartUploadOutcome (line 135) | InitiateMultipartUploadOutcome CryptoModule::InitiateMultipartUploadSecu...
function PutObjectOutcome (line 162) | PutObjectOutcome CryptoModule::UploadPartSecurely(const std::shared_ptr<...
FILE: sdk/src/encryption/CryptoModule.h
function namespace (line 25) | namespace AlibabaCloud
FILE: sdk/src/encryption/CryptoStreamBuf.h
function namespace (line 21) | namespace AlibabaCloud
FILE: sdk/src/encryption/OssEncryptionClient.cc
type AlibabaCloud (line 28) | namespace AlibabaCloud
type OSS (line 30) | namespace OSS
function GetObjectRequest (line 33) | static GetObjectRequest ConvertToGetObjectRequest(const DownloadObje...
function PutObjectRequest (line 55) | static PutObjectRequest ConvertToPutObjectRequest(const UploadObject...
class EncryptionResumableDownloader (line 71) | class EncryptionResumableDownloader : public ResumableDownloader
method EncryptionResumableDownloader (line 74) | EncryptionResumableDownloader(const DownloadObjectRequest& request...
method GetObjectOutcome (line 84) | virtual GetObjectOutcome GetObjectWrap(const GetObjectRequest &req...
class EncryptionResumableUploader (line 93) | class EncryptionResumableUploader : public ResumableUploader
method EncryptionResumableUploader (line 96) | EncryptionResumableUploader(const UploadObjectRequest& request,
method initRecordInfo (line 105) | virtual void initRecordInfo()
method buildRecordInfo (line 111) | virtual void buildRecordInfo(const Json::Value& value)
method dumpRecordInfo (line 131) | virtual void dumpRecordInfo(Json::Value& value)
method validateRecord (line 146) | virtual int validateRecord()
method InitiateMultipartUploadOutcome (line 166) | virtual InitiateMultipartUploadOutcome InitiateMultipartUploadWrap...
method PutObjectOutcome (line 173) | virtual PutObjectOutcome UploadPartWrap(const UploadPartRequest &r...
method ListPartsOutcome (line 178) | virtual ListPartsOutcome ListPartsWrap(const ListPartsRequest &req...
method CompleteMultipartUploadOutcome (line 183) | virtual CompleteMultipartUploadOutcome CompleteMultipartUploadWrap...
function GetObjectOutcome (line 225) | GetObjectOutcome OssEncryptionClient::GetObjectInternal(const GetObjectR...
function GetObjectOutcome (line 236) | GetObjectOutcome OssEncryptionClient::GetObject(const GetObjectRequest& ...
function GetObjectOutcome (line 259) | GetObjectOutcome OssEncryptionClient::GetObject(const std::string &bucke...
function GetObjectOutcome (line 266) | GetObjectOutcome OssEncryptionClient::GetObject(const std::string &bucke...
function PutObjectOutcome (line 273) | PutObjectOutcome OssEncryptionClient::PutObject(const PutObjectRequest& ...
function PutObjectOutcome (line 284) | PutObjectOutcome OssEncryptionClient::PutObject(const std::string &bucke...
function PutObjectOutcome (line 289) | PutObjectOutcome OssEncryptionClient::PutObject(const std::string &bucke...
function AppendObjectOutcome (line 295) | AppendObjectOutcome OssEncryptionClient::AppendObject(const AppendObject...
function InitiateMultipartUploadOutcome (line 302) | InitiateMultipartUploadOutcome OssEncryptionClient::InitiateMultipartUpl...
function PutObjectOutcome (line 308) | PutObjectOutcome OssEncryptionClient::UploadPart(const UploadPartRequest...
function UploadPartCopyOutcome (line 319) | UploadPartCopyOutcome OssEncryptionClient::UploadPartCopy(const UploadPa...
function CompleteMultipartUploadOutcome (line 326) | CompleteMultipartUploadOutcome OssEncryptionClient::CompleteMultipartUpl...
function PutObjectOutcome (line 334) | PutObjectOutcome OssEncryptionClient::ResumableUploadObject(const Upload...
function CopyObjectOutcome (line 352) | CopyObjectOutcome OssEncryptionClient::ResumableCopyObject(const MultiCo...
function GetObjectOutcome (line 358) | GetObjectOutcome OssEncryptionClient::ResumableDownloadObject(const Down...
function GetObjectOutcomeCallable (line 440) | GetObjectOutcomeCallable OssEncryptionClient::GetObjectCallable(const Ge...
function PutObjectOutcomeCallable (line 451) | PutObjectOutcomeCallable OssEncryptionClient::PutObjectCallable(const Pu...
function PutObjectOutcomeCallable (line 462) | PutObjectOutcomeCallable OssEncryptionClient::UploadPartCallable(const U...
function UploadPartCopyOutcomeCallable (line 473) | UploadPartCopyOutcomeCallable OssEncryptionClient::UploadPartCopyCallabl...
function GetObjectOutcome (line 485) | GetObjectOutcome OssEncryptionClient::GetObjectByUrl(const GetObjectByUr...
function PutObjectOutcome (line 491) | PutObjectOutcome OssEncryptionClient::PutObjectByUrl(const PutObjectByUr...
FILE: sdk/src/external/json/json-forwards.h
function namespace (line 236) | namespace AlibabaCloud
function namespace (line 302) | namespace AlibabaCloud
FILE: sdk/src/external/json/json.h
function namespace (line 270) | namespace AlibabaCloud
function namespace (line 336) | namespace AlibabaCloud
function namespace (line 393) | namespace AlibabaCloud
function namespace (line 507) | namespace AlibabaCloud
function namespace (line 1339) | namespace std {
function namespace (line 1392) | namespace AlibabaCloud
function namespace (line 1818) | namespace AlibabaCloud
FILE: sdk/src/external/json/jsoncpp.cpp
type AlibabaCloud (line 110) | namespace AlibabaCloud
type OSS (line 112) | namespace OSS
type Json (line 115) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 282) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2314) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2516) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2688) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 4264) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type OSS (line 279) | namespace OSS
type Json (line 115) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 282) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2314) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2516) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 2688) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type Json (line 4264) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) { return valueToString(...
function JSONCPP_STRING (line 4347) | JSONCPP_STRING valueToString(bool value) { return value ? "true" :...
function isAnyCharRequiredQuoting (line 4349) | static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
function utf8ToCodepoint (line 4361) | static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
function JSONCPP_STRING (line 4430) | static JSONCPP_STRING toHex16Bit(unsigned int x) {
function JSONCPP_STRING (line 4441) | static JSONCPP_STRING valueToQuotedStringN(const char* value, unsi...
function JSONCPP_STRING (line 4513) | JSONCPP_STRING valueToQuotedString(const char* value) {
function JSONCPP_STRING (line 4534) | JSONCPP_STRING FastWriter::write(const Value& root) {
function JSONCPP_STRING (line 4602) | JSONCPP_STRING StyledWriter::write(const Value& root) {
type CommentStyle (line 5028) | struct CommentStyle {
type Enum (line 5030) | enum Enum {
type BuiltStyledStreamWriter (line 5037) | struct BuiltStyledStreamWriter : public StreamWriter
function StreamWriter (line 5331) | StreamWriter* StreamWriterBuilder::newStreamWriter() const
function getValidWriterKeys (line 5363) | static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 5390) | Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
function JSONCPP_STRING (line 5407) | JSONCPP_STRING writeString(StreamWriter::Factory const& builder, V...
function JSONCPP_OSTREAM (line 5414) | JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& ro...
type OSS (line 2311) | namespace OSS
type Json (line 115) | namespace Json {
function getDecimalPoint (line 116) | static char getDecimalPoint() {
function JSONCPP_STRING (line 126) | static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
function uintToString (line 168) | static inline void uintToString(LargestUInt value, char*& current) {
function fixNumericLocale (line 181) | static inline void fixNumericLocale(char* begin, char* end) {
function fixNumericLocaleInput (line 190) | static inline void fixNumericLocaleInput(char* begin, char* end) {
function Features (line 297) | Features Features::all() { return Features(); }
function Features (line 299) | Features Features::strictMode() {
function JSONCPP_STRING (line 599) | JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader...
function Value (line 1009) | Value& Reader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 1040) | JSONCPP_STRING Reader::getLocationLineAndColumn(Location location)...
function JSONCPP_STRING (line 1049) | JSONCPP_STRING Reader::getFormatedErrorMessages() const {
function JSONCPP_STRING (line 1053) | JSONCPP_STRING Reader::getFormattedErrorMessages() const {
class OurFeatures (line 1124) | class OurFeatures {
function OurFeatures (line 1141) | OurFeatures OurFeatures::all() { return OurFeatures(); }
class OurReader (line 1147) | class OurReader {
type StructuredError (line 1151) | struct StructuredError {
type TokenType (line 1172) | enum TokenType {
class Token (line 1192) | class Token {
class ErrorInfo (line 1199) | class ErrorInfo {
function JSONCPP_STRING (line 1584) | JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, ...
function Value (line 2041) | Value& OurReader::currentValue() { return *(nodes_.top()); }
function JSONCPP_STRING (line 2072) | JSONCPP_STRING OurReader::getLocationLineAndColumn(Location locati...
function JSONCPP_STRING (line 2080) | JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
class OurCharReader (line 2151) | class OurCharReader : public CharReader {
method OurCharReader (line 2155) | OurCharReader(
method parse (line 2161) | bool parse(
function CharReader (line 2178) | CharReader* CharReaderBuilder::newCharReader() const
function getValidReaderKeys (line 2193) | static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
function Value (line 2224) | Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
function parseFromStream (line 2263) | bool parseFromStream(
function JSONCPP_ISTREAM (line 2277) | JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
function Value (line 2332) | Value& ValueIteratorBase::deref() const {
function Value (line 2384) | Value ValueIteratorBase::key() const {
function UInt (line 2394) | UInt ValueIteratorBase::index() const {
function JSONCPP_STRING (line 2401) | JSONCPP_STRING ValueIteratorBase::name() const {
function ValueConstIterator (line 2441) | ValueConstIterator& ValueConstIterator::
function ValueIterator (line 2468) | ValueIterator& ValueIterator::operator=(const SelfType& other) {
function Value (line 2532) | Value const& Value::nullSingleton()
function InRange (line 2561) | static inline bool InRange(double d, T min, U max) {
function integerToDouble (line 2568) | static inline double integerToDouble(Json::UInt64 value) {
function integerToDouble (line 2572) | static inline double integerToDouble(T value) {
function InRange (line 2577) | static inline bool InRange(double d, T min, U max) {
function decodePrefixedString (line 2631) | inline static void decodePrefixedString(
function releasePrefixedStringValue (line 2646) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2654) | static inline void releaseStringValue(char* value, unsigned length) {
function releasePrefixedStringValue (line 2661) | static inline void releasePrefixedStringValue(char* value) {
function releaseStringValue (line 2664) | static inline void releaseStringValue(char* value, unsigned) {
function JSONCPP_NORETURN (line 2705) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2709) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2715) | JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
function JSONCPP_NORETURN (line 2719) | JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
function ArrayIndex (line 2844) | ArrayIndex Value::CZString::index() const { return index_; }
function Value (line 3029) | Value& Value::operator=(Value other) {
function ValueType (line 3064) | ValueType Value::type() const { return type_; }
function JSONCPP_STRING (line 3205) | JSONCPP_STRING Value::asString() const {
function LargestInt (line 3329) | LargestInt Value::asLargestInt() const {
function LargestUInt (line 3337) | LargestUInt Value::asLargestUInt() const {
function ArrayIndex (line 3443) | ArrayIndex Value::size() const {
function Value (line 3509) | Value& Value::operator[](ArrayIndex index) {
function Value (line 3525) | Value& Value::operator[](int index) {
function Value (line 3532) | const Value& Value::operator[](ArrayIndex index) const {
function Value (line 3545) | const Value& Value::operator[](int index) const {
function Value (line 3563) | Value& Value::resolveReference(const char* key) {
function Value (line 3582) | Value& Value::resolveReference(char const* key, char const* cend)
function Value (line 3601) | Value Value::get(ArrayIndex index, const Value& defaultValue) const {
function Value (line 3608) | Value const* Value::find(char const* key, char const* cend) const
function Value (line 3619) | const Value& Value::operator[](const char* key) const
function Value (line 3625) | Value const& Value::operator[](JSONCPP_STRING const& key) const
function Value (line 3632) | Value& Value::operator[](const char* key) {
function Value (line 3636) | Value& Value::operator[](const JSONCPP_STRING& key) {
function Value (line 3640) | Value& Value::operator[](const StaticString& key) {
function Value (line 3645) | Value& Value::operator[](const CppTL::ConstString& key) {
function Value (line 3648) | Value const& Value::operator[](CppTL::ConstString const& key) const
function Value (line 3656) | Value& Value::append(const Value& value) { return (*this)[size()] ...
function Value (line 3659) | Value& Value::append(Value&& value) { return (*this)[size()] = std...
function Value (line 3662) | Value Value::get(char const* key, char const* cend, Value const& d...
function Value (line 3667) | Value Value::get(char const* key, Value const& defaultValue) const
function Value (line 3671) | Value Value::get(JSONCPP_STRING const& key, Value const& defaultVa...
function Value (line 3737) | Value Value::get(const CppTL::ConstString& key,
function IsIntegral (line 3805) | static bool IsIntegral(double d) {
function JSONCPP_STRING (line 3948) | JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
function JSONCPP_STRING (line 3962) | JSONCPP_STRING Value::toStyledString() const {
function Value (line 4105) | const Value& Path::resolve(const Value& root) const {
function Value (line 4131) | Value Path::resolve(const Value& root, const Value& defaultValue) ...
function Value (line 4150) | Value& Path::make(Value& root) const {
function JSONCPP_STRING (line 4272) | JSONCPP_STRING valueToString(LargestInt value) {
function JSONCPP_STRING (line 4288) | JSONCPP_STRING valueToString(LargestUInt value) {
function JSONCPP_STRING (line 4298) | JSONCPP_STRING valueToString(Int value) {
function JSONCPP_STRING (line 4302) | JSONCPP_STRING valueToString(UInt value) {
function JSONCPP_STRING (line 4309) | JSONCPP_STRING valueToString(double value, bool useSpecialFloats, ...
function JSONCPP_STRING (line 4345) | JSONCPP_STRING valueToString(double value) {
Condensed preview — 612 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,114K chars).
[
{
"path": ".github/workflows/linux-clang.yml",
"chars": 786,
"preview": "name: Ubuntu (clang)\n\non:\n push:\n branches: [ master, develop ]\n pull_request:\n branches: [ master, develop ]\n "
},
{
"path": ".github/workflows/linux-gcc.yml",
"chars": 823,
"preview": "name: Ubuntu (gcc)\n\non:\n push:\n branches: [ master, develop ]\n pull_request:\n branches: [ master, develop ]\n "
},
{
"path": ".github/workflows/mac.yml",
"chars": 842,
"preview": "name: macOS Monterey 12\n\non:\n push:\n branches: [ master, develop ]\n pull_request:\n branches: [ master, develop "
},
{
"path": ".github/workflows/windows.yml",
"chars": 731,
"preview": "name: Windows Server 2022\n\non: \n push:\n branches: [ master, develop ]\n pull_request:\n branches: [ master, develo"
},
{
"path": ".gitignore",
"chars": 34,
"preview": ".cache\n.vs\n.vscode\nbuild\nwinbuild\n"
},
{
"path": "CHANGELOG",
"chars": 62,
"preview": "2018-10-08 Version: 1.0.0\n1. pre-release version for oss sdk\n\n"
},
{
"path": "CMakeLists.txt",
"chars": 4582,
"preview": "#\n# Copyright 2009-2017 Alibaba Cloud All rights reserved.\n# \n# Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "LICENSE",
"chars": 580,
"preview": "Copyright 2009-2017 Alibaba Cloud All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "README.md",
"chars": 5731,
"preview": "# Alibaba Cloud OSS C++ Software Development Kit\r\n[中文文档](./README_zh.md)\r\n\r\nAlibaba Cloud Object Storage Service (OSS) i"
},
{
"path": "README_zh.md",
"chars": 4114,
"preview": "# 阿里云OSS C++工具套件\r\n\r\n阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数"
},
{
"path": "VERSION",
"chars": 6,
"preview": "1.10.1"
},
{
"path": "ptest/CMakeLists.txt",
"chars": 1161,
"preview": "#\n# Copyright 2009-2017 Alibaba Cloud All rights reserved.\n# \n# Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "ptest/src/Config.cc",
"chars": 11820,
"preview": "#include <string.h>\r\n#include <string>\r\n#include \"Config.h\"\r\n#include <sstream>\r\n#include <iostream>\r\n#include <fstream>"
},
{
"path": "ptest/src/Config.h",
"chars": 1115,
"preview": "#include <string>\r\n\r\nnamespace AlibabaCloud\r\n{\r\nnamespace OSS\r\n{\r\nnamespace PTest\r\n{\r\n class Config\r\n {\r\n publi"
},
{
"path": "ptest/src/Program.cc",
"chars": 23059,
"preview": "#include <alibabacloud/oss/OssClient.h>\r\n#include <alibabacloud/oss/client/RateLimiter.h>\r\n#include <iostream>\r\n#include"
},
{
"path": "sample/CMakeLists.txt",
"chars": 1884,
"preview": "#\n# Copyright 2009-2017 Alibaba Cloud All rights reserved.\n# \n# Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "sample/src/Config.cc",
"chars": 521,
"preview": "#include <string>\n#include \"Config.h\"\n\nstd::string Config::AccessKeyId = \"\";\nstd::string Config::AccessKeySecret = \"\";\ns"
},
{
"path": "sample/src/Config.h",
"chars": 502,
"preview": "#include <string>\nclass Config\n{\npublic:\n static std::string AccessKeyId;\n static std::string AccessKeySecret;\n "
},
{
"path": "sample/src/LiveChannel/LiveChannelSample.cc",
"chars": 7885,
"preview": "#include <iostream>\n#include <time.h>\n#include \"../Config.h\"\n#include \"LiveChannelSample.h\"\n\n#ifdef _WIN32\n#include <Win"
},
{
"path": "sample/src/LiveChannel/LiveChannelSample.h",
"chars": 722,
"preview": "#include <iostream>\n#include <alibabacloud/oss/OssClient.h>\n\n#define MAX_LOOP_TIMES 60\n\nclass LiveChannelSample\n{\npublic"
},
{
"path": "sample/src/Program.cc",
"chars": 4090,
"preview": "#include <alibabacloud/oss/OssClient.h>\n#include <iostream>\n#include \"Config.h\"\n\n#if !defined(OSS_DISABLE_BUCKET)\r\n#incl"
},
{
"path": "sample/src/bucket/BucketSample.cc",
"chars": 19587,
"preview": "#include <iostream>\r\n#include \"../Config.h\"\r\n#include \"BucketSample.h\"\r\n#ifdef _WIN32\r\n#include <Windows.h>\r\n#else\r\n#inc"
},
{
"path": "sample/src/bucket/BucketSample.h",
"chars": 1059,
"preview": "#include <alibabacloud/oss/OssClient.h>\r\n\r\nclass BucketSample\r\n{\r\npublic:\r\n BucketSample(const std::string &bucket);\r"
},
{
"path": "sample/src/encryption/EncryptionSample.cc",
"chars": 9691,
"preview": "#include <iostream>\n#include \"../Config.h\"\n#include \"EncryptionSample.h\"\n#include <alibabacloud/oss/Const.h>\n#include <m"
},
{
"path": "sample/src/encryption/EncryptionSample.h",
"chars": 632,
"preview": "#include <alibabacloud/oss/OssEncryptionClient.h>\r\n\r\nclass EncryptionSample\r\n{\r\npublic:\r\n EncryptionSample(const std:"
},
{
"path": "sample/src/object/ObjectSample.cc",
"chars": 27287,
"preview": "#include <iostream>\n#include \"../Config.h\"\n#include \"ObjectSample.h\"\n#include <alibabacloud/oss/Const.h>\n#include <memor"
},
{
"path": "sample/src/object/ObjectSample.h",
"chars": 1240,
"preview": "#include <alibabacloud/oss/OssClient.h>\r\n\r\nclass ObjectSample\r\n{\r\npublic:\r\n ObjectSample(const std::string &bucket);\r"
},
{
"path": "sample/src/presignedurl/PresignedUrlSample.cc",
"chars": 5724,
"preview": "#include <iostream>\n#include \"../Config.h\"\n#include \"PresignedUrlSample.h\"\n#include <memory>\n#include <sstream>\n#include"
},
{
"path": "sample/src/presignedurl/PresignedUrlSample.h",
"chars": 552,
"preview": "#include <alibabacloud/oss/OssClient.h>\n\nclass PresignedUrlSample\n{\npublic:\n PresignedUrlSample(const std::string &bu"
},
{
"path": "sample/src/service/ServiceSample.cc",
"chars": 2784,
"preview": "#include <iostream>\r\n\r\n#include \"../Config.h\"\r\n#include \"ServiceSample.h\"\r\nusing namespace AlibabaCloud::OSS;\r\n\r\nService"
},
{
"path": "sample/src/service/ServiceSample.h",
"chars": 352,
"preview": "#include <alibabacloud/oss/OssClient.h>\n\nclass ServiceSample\n{\npublic:\n ServiceSample();\n ~ServiceSample();\n vo"
},
{
"path": "sdk/CMakeLists.txt",
"chars": 6918,
"preview": "#\r\n# Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n# \r\n# Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/Config.h",
"chars": 1004,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/Const.h",
"chars": 2442,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/Export.h",
"chars": 932,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/Global.h",
"chars": 1222,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/OssClient.h",
"chars": 21500,
"preview": "/*\r\n* Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n*\r\n* Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/OssEncryptionClient.h",
"chars": 5732,
"preview": "/*\r\n* Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n*\r\n* Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/OssError.h",
"chars": 2866,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/OssFwd.h",
"chars": 14818,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/OssRequest.h",
"chars": 6371,
"preview": "/*\n* Copyright 2009-2017 Alibaba Cloud All rights reserved.\n*\n* Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "sdk/include/alibabacloud/oss/OssResponse.h",
"chars": 981,
"preview": "/*\n* Copyright 2009-2017 Alibaba Cloud All rights reserved.\n*\n* Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "sdk/include/alibabacloud/oss/OssResult.h",
"chars": 1663,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/ServiceRequest.h",
"chars": 2029,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/ServiceResult.h",
"chars": 1685,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/Types.h",
"chars": 4878,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/auth/Credentials.h",
"chars": 1496,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/auth/CredentialsProvider.h",
"chars": 1588,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/client/AsyncCallerContext.h",
"chars": 1087,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/client/ClientConfiguration.h",
"chars": 4036,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/client/Error.h",
"chars": 2170,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/client/RateLimiter.h",
"chars": 947,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/client/RetryStrategy.h",
"chars": 1053,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/encryption/Cipher.h",
"chars": 4163,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/encryption/ContentCryptoMaterial.h",
"chars": 2649,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/encryption/CryptoConfiguration.h",
"chars": 1239,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/encryption/EncryptionMaterials.h",
"chars": 2242,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpClient.h",
"chars": 1409,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpInterceptor.h",
"chars": 1048,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpMessage.h",
"chars": 1810,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpRequest.h",
"chars": 2590,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpResponse.h",
"chars": 1513,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/http/HttpType.h",
"chars": 2168,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/http/Url.h",
"chars": 2368,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/AbortBucketWormRequest.h",
"chars": 1011,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/AbortMultipartUploadRequest.h",
"chars": 1149,
"preview": "/*\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/AppendObjectRequest.h",
"chars": 2175,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "sdk/include/alibabacloud/oss/model/AppendObjectResult.h",
"chars": 1247,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/Bucket.h",
"chars": 1804,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/CORSRule.h",
"chars": 2311,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/CompleteBucketWormRequest.h",
"chars": 1086,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/CompleteMultipartUploadRequest.h",
"chars": 2181,
"preview": "/*\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/CompleteMultipartUploadResult.h",
"chars": 1825,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/CopyObjectRequest.h",
"chars": 2082,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "sdk/include/alibabacloud/oss/model/CopyObjectResult.h",
"chars": 1943,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/CreateBucketRequest.h",
"chars": 1525,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/CreateSelectObjectMetaRequest.h",
"chars": 1340,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/CreateSelectObjectMetaResult.h",
"chars": 2032,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/CreateSymlinkRequest.h",
"chars": 1491,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "sdk/include/alibabacloud/oss/model/CreateSymlinkResult.h",
"chars": 1217,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketCorsRequest.h",
"chars": 1013,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketEncryptionRequest.h",
"chars": 1021,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketInventoryConfigurationRequest.h",
"chars": 1240,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketLifecycleRequest.h",
"chars": 1074,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketLoggingRequest.h",
"chars": 1020,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketPolicyRequest.h",
"chars": 1018,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketQosInfoRequest.h",
"chars": 1015,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketRequest.h",
"chars": 984,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketTaggingRequest.h",
"chars": 1148,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteBucketWebsiteRequest.h",
"chars": 1019,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteLiveChannelRequest.h",
"chars": 1087,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectRequest.h",
"chars": 1223,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectResult.h",
"chars": 1108,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectTaggingRequest.h",
"chars": 1076,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectTaggingResult.h",
"chars": 1062,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectVersionsRequest.h",
"chars": 2419,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectVersionsResult.h",
"chars": 2272,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectsRequest.h",
"chars": 1709,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DeleteObjectsResult.h",
"chars": 1261,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/DownloadObjectRequest.h",
"chars": 4043,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "sdk/include/alibabacloud/oss/model/ExtendBucketWormRequest.h",
"chars": 1164,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GeneratePresignedUrlRequest.h",
"chars": 2319,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GenerateRTMPSignedUrlRequest.h",
"chars": 1410,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketAclRequest.h",
"chars": 1004,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketAclResult.h",
"chars": 1380,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketCorsRequest.h",
"chars": 1006,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketCorsResult.h",
"chars": 1244,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketEncryptionRequest.h",
"chars": 1028,
"preview": "#pragma once\n/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Versi"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketEncryptionResult.h",
"chars": 1418,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketInfoRequest.h",
"chars": 1006,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketInfoResult.h",
"chars": 2789,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketInventoryConfigurationRequest.h",
"chars": 1231,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketInventoryConfigurationResult.h",
"chars": 1436,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLifecycleRequest.h",
"chars": 1016,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLifecycleResult.h",
"chars": 1302,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLocationRequest.h",
"chars": 1014,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLocationResult.h",
"chars": 1229,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLoggingRequest.h",
"chars": 1012,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketLoggingResult.h",
"chars": 1332,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketPaymentRequest.h",
"chars": 1026,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketPaymentResult.h",
"chars": 1233,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketPolicyRequest.h",
"chars": 1011,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketPolicyResult.h",
"chars": 1201,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketQosInfoRequest.h",
"chars": 1009,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketQosInfoResult.h",
"chars": 1255,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketRefererRequest.h",
"chars": 1013,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketRefererResult.h",
"chars": 1397,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketStatRequest.h",
"chars": 1006,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketStatResult.h",
"chars": 2555,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketStorageCapacityRequest.h",
"chars": 1029,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketStorageCapacityResult.h",
"chars": 1295,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketTaggingRequest.h",
"chars": 1009,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketTaggingResult.h",
"chars": 1278,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketVersioningRequest.h",
"chars": 1051,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketVersioningResult.h",
"chars": 1299,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketWebsiteRequest.h",
"chars": 1013,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketWebsiteResult.h",
"chars": 1338,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketWormRequest.h",
"chars": 1007,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetBucketWormResult.h",
"chars": 1457,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelHistoryRequest.h",
"chars": 1227,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelHistoryResult.h",
"chars": 1547,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelInfoRequest.h",
"chars": 1221,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelInfoResult.h",
"chars": 1686,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelStatRequest.h",
"chars": 1221,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetLiveChannelStatResult.h",
"chars": 2032,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectAclRequest.h",
"chars": 1064,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectAclResult.h",
"chars": 1562,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectByUrlRequest.h",
"chars": 1357,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectMetaRequest.h",
"chars": 1093,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectRequest.h",
"chars": 2934,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectResult.h",
"chars": 1861,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectTaggingRequest.h",
"chars": 1070,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetObjectTaggingResult.h",
"chars": 1436,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetSymlinkRequest.h",
"chars": 1076,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetSymlinkResult.h",
"chars": 1351,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/GetUserQosInfoRequest.h",
"chars": 974,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetUserQosInfoResult.h",
"chars": 1348,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/GetVodPlaylistRequest.h",
"chars": 1540,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/GetVodPlaylistResult.h",
"chars": 1215,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/HeadObjectRequest.h",
"chars": 1009,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/InitiateBucketWormRequest.h",
"chars": 1112,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/InitiateBucketWormResult.h",
"chars": 1075,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/InitiateMultipartUploadRequest.h",
"chars": 1904,
"preview": "/*\r\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/InitiateMultipartUploadResult.h",
"chars": 1563,
"preview": "/*\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/InputFormat.h",
"chars": 3704,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/InventoryConfiguration.h",
"chars": 5950,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/LifecycleRule.h",
"chars": 5722,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/ListBucketInventoryConfigurationsRequest.h",
"chars": 1189,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/ListBucketInventoryConfigurationsResult.h",
"chars": 1695,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/ListBucketsRequest.h",
"chars": 1762,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListBucketsResult.h",
"chars": 1693,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListLiveChannelRequest.h",
"chars": 1299,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListLiveChannelResult.h",
"chars": 1879,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListMultipartUploadsRequest.h",
"chars": 1934,
"preview": "/*\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListMultipartUploadsResult.h",
"chars": 2580,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectVersionsRequest.h",
"chars": 2925,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectVersionsResult.h",
"chars": 4654,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectsRequest.h",
"chars": 2244,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectsResult.h",
"chars": 3279,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectsV2Request.h",
"chars": 2694,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListObjectsV2Result.h",
"chars": 2512,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListPartsRequest.h",
"chars": 1680,
"preview": "/*\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ListPartsResult.h",
"chars": 1955,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/MultiCopyObjectRequest.h",
"chars": 4378,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (th"
},
{
"path": "sdk/include/alibabacloud/oss/model/MultipartUploadCryptoContext.h",
"chars": 1764,
"preview": "/*\r\n * Copyright 2009-2018 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/ObjectCallbackBuilder.h",
"chars": 2311,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ObjectMetaData.h",
"chars": 2766,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/OutputFormat.h",
"chars": 2707,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/Owner.h",
"chars": 1745,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/Part.h",
"chars": 1654,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PostVodPlaylistRequest.h",
"chars": 1540,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/ProcessObjectRequest.h",
"chars": 1328,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PutLiveChannelRequest.h",
"chars": 2207,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PutLiveChannelResult.h",
"chars": 1338,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PutLiveChannelStatusRequest.h",
"chars": 1493,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PutObjectByUrlRequest.h",
"chars": 1543,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n * \n * Licensed under the Apache License, Version 2.0 (the "
},
{
"path": "sdk/include/alibabacloud/oss/model/PutObjectRequest.h",
"chars": 2094,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/PutObjectResult.h",
"chars": 1437,
"preview": "/*\r\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\r\n * \r\n * Licensed under the Apache License, Version 2.0 (t"
},
{
"path": "sdk/include/alibabacloud/oss/model/QosConfiguration.h",
"chars": 2940,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "sdk/include/alibabacloud/oss/model/RestoreObjectRequest.h",
"chars": 1263,
"preview": "/*\n * Copyright 2009-2017 Alibaba Cloud All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
}
]
// ... and 412 more files (download for full content)
About this extraction
This page contains the full source code of the aliyun/aliyun-oss-cpp-sdk GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 612 files (6.5 MB), approximately 1.7M tokens, and a symbol index with 3814 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.