/*
* 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 = NULL);
#ifdef SK_SUPPORT_UNITTEST
static void UnitTest();
#endif
private:
Error decode(const void* srcPtr, size_t length, bool writeDestination);
size_t fLength;
char* fData;
friend class SkImageBaseBitmap;
};
#endif // SkBase64_DEFINED