AWS SDK for C++  0.12.9
AWS SDK for C++
Base64.h
Go to the documentation of this file.
1 /*
2  * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #pragma once
17 
18 #ifdef __APPLE__
19 
20 #ifdef __clang__
21 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
22 #endif // __clang__
23 
24 #ifdef __GNUC__
25 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
26 #endif // __GNUC__
27 
28 #endif // __APPLE__
29 
30 #include <aws/core/Core_EXPORTS.h>
31 #include <aws/core/utils/Array.h>
33 
34 namespace Aws
35 {
36  namespace Utils
37  {
38  namespace Base64
39  {
40 
45  {
46  public:
47  Base64(const char *encodingTable = nullptr);
48 
54  Aws::String Encode(const ByteBuffer&) const;
55 
59  ByteBuffer Decode(const Aws::String&) const;
60 
65  static size_t CalculateBase64DecodedLength(const Aws::String& b64input);
69  static size_t CalculateBase64EncodedLength(const ByteBuffer& buffer);
70 
71  private:
72  char m_mimeBase64EncodingTable[64];
73  uint8_t m_mimeBase64DecodingTable[256];
74 
75  };
76 
77  } // namespace Base64
78  } // namespace Utils
79 } // namespace Aws
80 
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
#define AWS_CORE_API
Definition: Core_EXPORTS.h:30
JSON (JavaScript Object Notation).