#ifndef WebKitTextCodec_h
#define WebKitTextCodec_h
#include "BlackBerryGlobal.h"
#include <vector>
namespace BlackBerry {
namespace Platform {
class String;
}
namespace WebKit {
enum TranscodeResult {
Success,
SourceEncodingUnsupported,
SourceBroken,
TargetEncodingUnsupported,
TargetBufferInsufficient
};
enum Base64DecodePolicy {
Base64FailOnInvalidCharacter,
Base64IgnoreWhitespace,
Base64IgnoreInvalidCharacters
};
enum Base64EncodePolicy {
Base64DoNotInsertCRLF,
Base64InsertCRLF
};
BLACKBERRY_EXPORT bool isSameEncoding(const char* encoding1, const char* encoding2);
BLACKBERRY_EXPORT bool isASCIICompatibleEncoding(const char* encoding);
BLACKBERRY_EXPORT TranscodeResult transcode(const char* sourceEncoding, const char* targetEncoding, const char*& sourceStart, int sourceLength, char*& targetStart, unsigned targetLength);
BLACKBERRY_EXPORT bool base64Decode(const BlackBerry::Platform::String& base64, std::vector<char>& binary, Base64DecodePolicy);
BLACKBERRY_EXPORT bool base64Encode(const std::vector<char>& binary, BlackBerry::Platform::String& base64, Base64EncodePolicy);
BLACKBERRY_EXPORT void unescapeURL(const BlackBerry::Platform::String& escaped, BlackBerry::Platform::String& url);
BLACKBERRY_EXPORT void escapeURL(const BlackBerry::Platform::String& url, BlackBerry::Platform::String& escaped);
} }
#endif // WebKitTextCodec_h