00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_NET_URIENCODERDECODER_H_
00019 #define _DECAF_INTERNAL_NET_URIENCODERDECODER_H_
00020
00021 #include <decaf/util/Config.h>
00022 #include <decaf/net/URISyntaxException.h>
00023 #include <string>
00024
00025 namespace decaf{
00026 namespace internal{
00027 namespace net{
00028
00029 class DECAF_API URIEncoderDecoder {
00030 private:
00031
00032 static const std::string digits;
00033
00034 public:
00035
00036 URIEncoderDecoder();
00037 virtual ~URIEncoderDecoder() {}
00038
00052 static void validate( const std::string& s, const std::string& legal );
00053
00066 static void validateSimple( const std::string& s, const std::string& legal );
00067
00081 static std::string quoteIllegal( const std::string& s, const std::string& legal );
00082
00092 static std::string encodeOthers( const std::string& s );
00093
00107 static std::string decode( const std::string& s );
00108
00109 };
00110
00111 }}}
00112
00113 #endif