diff options
Diffstat (limited to 'include/utils/SkBase64.h')
-rw-r--r-- | include/utils/SkBase64.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/utils/SkBase64.h b/include/utils/SkBase64.h new file mode 100644 index 0000000000..13350b7b68 --- /dev/null +++ b/include/utils/SkBase64.h @@ -0,0 +1,39 @@ +/* + * Copyright 2006 The Android Open Source Project + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkBase64_DEFINED +#define SkBase64_DEFINED + +#include "SkTypes.h" + +struct SkBase64 { +public: + enum Error { + kNoError, + kPadError, + kBadCharError + }; + + SkBase64(); + Error decode(const char* src, size_t length); + char* getData() { return fData; } + /** + Base64 encodes src into dst. encode is a pointer to at least 65 chars. + encode[64] will be used as the pad character. Encodings other than the + default encoding cannot be decoded. + */ + static size_t Encode(const void* src, size_t length, void* dest, const char* encode = nullptr); + +private: + Error decode(const void* srcPtr, size_t length, bool writeDestination); + + size_t fLength; + char* fData; + friend class SkImageBaseBitmap; +}; + +#endif // SkBase64_DEFINED |