00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CGIUTILS_H_
00025 #define _CGIUTILS_H_ 1
00026
00027 #ifdef __GNUG__
00028 # pragma interface
00029 #endif
00030
00038 #include <new>
00039 #include <string>
00040 #include <fstream>
00041
00042 #include "cgicc/CgiDefs.h"
00043
00044
00045 namespace cgicc {
00046
00055 CGICC_API bool
00056 stringsAreEqual(const std::string& s1,
00057 const std::string& s2);
00058
00068 CGICC_API bool
00069 stringsAreEqual(const std::string& ss1,
00070 const std::string& ss2,
00071 size_t n);
00072
00080 CGICC_API std::string
00081 form_urldecode(const std::string& src);
00082
00092 CGICC_API std::string
00093 form_urlencode(const std::string& src);
00094
00095
00109 CGICC_API std::string
00110 charToHex(char c);
00111
00126 CGICC_API char
00127 hexToChar(char first,
00128 char second);
00129
00145 std::string
00146 extractBetween(const std::string& data,
00147 const std::string& separator1,
00148 const std::string& separator2);
00149
00158 inline std::string
00159 extractBetween(const std::string& datas,
00160 const std::string& separators)
00161 { return extractBetween(datas, separators, separators); }
00162
00170 void
00171 writeString(std::ostream& out,
00172 const std::string& s);
00173
00181 void
00182 writeLong(std::ostream& out,
00183 unsigned long l);
00184
00192 std::string
00193 readString(std::istream& in);
00194
00202 unsigned long
00203 readLong(std::istream& in);
00204
00205 }
00206
00207 #endif