|
1 /* |
|
2 * Copyright 2006 The Android Open Source Project |
|
3 * |
|
4 * Use of this source code is governed by a BSD-style license that can be |
|
5 * found in the LICENSE file. |
|
6 */ |
|
7 |
|
8 #ifndef SkBase64_DEFINED |
|
9 #define SkBase64_DEFINED |
|
10 |
|
11 #include "SkTypes.h" |
|
12 |
|
13 struct SkBase64 { |
|
14 public: |
|
15 enum Error { |
|
16 kNoError, |
|
17 kPadError, |
|
18 kBadCharError |
|
19 }; |
|
20 |
|
21 SkBase64(); |
|
22 Error decode(const char* src, size_t length); |
|
23 char* getData() { return fData; } |
|
24 /** |
|
25 Base64 encodes src into dst. encode is a pointer to at least 65 chars. |
|
26 encode[64] will be used as the pad character. Encodings other than the |
|
27 default encoding cannot be decoded. |
|
28 */ |
|
29 static size_t Encode(const void* src, size_t length, void* dest, const char* encode = NULL); |
|
30 |
|
31 private: |
|
32 Error decode(const void* srcPtr, size_t length, bool writeDestination); |
|
33 |
|
34 size_t fLength; |
|
35 char* fData; |
|
36 friend class SkImageBaseBitmap; |
|
37 }; |
|
38 |
|
39 #endif // SkBase64_DEFINED |