00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00019 #ifndef NET_INSTAWEB_UTIL_PUBLIC_DATA_URL_H_
00020 #define NET_INSTAWEB_UTIL_PUBLIC_DATA_URL_H_
00021
00022 #include "net/instaweb/util/public/string.h"
00023 #include "net/instaweb/util/public/string_util.h"
00024
00025 namespace net_instaweb {
00026 struct ContentType;
00027
00028 enum Encoding {
00029 UNKNOWN,
00030 BASE64,
00033 PLAIN
00034 };
00035
00047 void DataUrl(const ContentType& content_type, const Encoding encoding,
00048 const StringPiece& content, GoogleString* result);
00049
00053 bool ParseDataUrl(const StringPiece& url,
00054 const ContentType** content_type,
00055 Encoding* encoding,
00056 StringPiece* encoded_content);
00057
00058 bool DecodeDataUrlContent(Encoding encoding,
00059 const StringPiece& encoded_content,
00060 GoogleString* decoded_content);
00061
00062 }
00063
00064 #endif ///< NET_INSTAWEB_UTIL_PUBLIC_DATA_URL_H_