MinIO C++ SDK
All Classes
sse.h
1 // MinIO C++ Library for Amazon S3 Compatible Cloud Storage
2 // Copyright 2022 MinIO, Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef _MINIO_S3_SSE_H
17 #define _MINIO_S3_SSE_H
18 
19 #include "utils.h"
20 
21 namespace minio {
22 namespace s3 {
23 class Sse {
24  public:
25  utils::Multimap empty_;
26 
27  public:
28  Sse() {}
29  virtual ~Sse() {}
30  bool TlsRequired() { return true; }
31  utils::Multimap CopyHeaders() { return empty_; }
32  virtual utils::Multimap Headers() = 0;
33 }; // class Sse
34 
35 class SseCustomerKey : public Sse {
36  private:
37  utils::Multimap headers;
38  utils::Multimap copy_headers;
39 
40  public:
41  SseCustomerKey(std::string_view key);
42  utils::Multimap Headers() { return headers; }
43  utils::Multimap CopyHeaders() { return copy_headers; }
44 }; // class SseCustomerKey
45 
46 class SseKms : public Sse {
47  private:
48  utils::Multimap headers;
49 
50  public:
51  SseKms(std::string_view key, std::string_view context);
52  utils::Multimap Headers() { return headers; }
53 }; // class SseKms
54 
55 class SseS3 : public Sse {
56  private:
57  utils::Multimap headers;
58 
59  public:
60  SseS3();
61  utils::Multimap Headers() { return headers; }
62  bool TlsRequired() { return false; }
63 }; // class SseS3
64 } // namespace s3
65 } // namespace minio
66 
67 #endif // #ifndef __MINIO_S3_SSE_H
Definition: sse.h:35
Definition: sse.h:46
Definition: sse.h:55
Definition: sse.h:23
Definition: utils.h:119