/* * 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 "include/core/SkTypes.h" struct SkBase64 { public: enum Error { kNoError, kPadError, kBadCharError }; /** Base64 encodes src into dst. Normally this is called once with 'dst' nullptr to get the required size, then again with an allocated 'dst' pointer to do the actual encoding. @param dst nullptr or a pointer to a buffer large enough to receive the result @param encode nullptr for default encoding or 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. @return the required length of dst for encoding. */ static size_t Encode(const void* src, size_t length, void* dst, const char* encode = nullptr); /** Base64 decodes src into dst. Normally this is called once with 'dst' nullptr to get the required size, then again with an allocated 'dst' pointer to do the actual encoding. @param dst nullptr or a pointer to a buffer large enough to receive the result @param dstLength assigned the length dst is required to be. Must not be nullptr. */ static Error SK_WARN_UNUSED_RESULT Decode(const void* src, size_t srcLength, void* dst, size_t* dstLength); }; #endif // SkBase64_DEFINED