1685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 2685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com/* 3685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Copyright 2006 The Android Open Source Project 4685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * 5685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * found in the LICENSE file. 7685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com */ 8685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifndef SkBase64_DEFINED 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#define SkBase64_DEFINED 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkTypes.h" 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comstruct SkBase64 { 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.compublic: 17bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com enum Error { 18bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com kNoError, 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com kPadError, 20bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com kBadCharError 21bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com }; 22bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 23bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkBase64(); 24bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com Error decode(const char* src, size_t length); 25bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com char* getData() { return fData; } 2696494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com /** 2796494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com Base64 encodes src into dst. encode is a pointer to at least 65 chars. 2896494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com encode[64] will be used as the pad character. Encodings other than the 2996494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com default encoding cannot be decoded. 3096494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com */ 3196494bc813660667108fdde710a6ea6bd35eb27bbungeman@google.com static size_t Encode(const void* src, size_t length, void* dest, const char* encode = NULL); 32bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 33bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifdef SK_SUPPORT_UNITTEST 34bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com static void UnitTest(); 35bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif 36bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comprivate: 37bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com Error decode(const void* srcPtr, size_t length, bool writeDestination); 38bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 39bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com size_t fLength; 40bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com char* fData; 4164139e4ba1fd33280e3d0e6150835b6370cef7e1reed@google.com friend class SkImageBaseBitmap; 42bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 43bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 44bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif // SkBase64_DEFINED 45