cgicc Namespace Reference


Data Structures

class  FE_nameCompare
class  FE_valueCompare
class  FF_compare
class  MultipartHeader
class  Cgicc
 The main class of the GNU cgicc library. More...
class  CgiEnvironment
 Class encapsulating the CGI runtime environment. More...
class  CgiInput
 Class that abstracts a data source. More...
class  FormEntry
 Class representing a single HTML form entry. More...
class  FormFile
 Class representing a file submitted via an HTML form. More...
class  HTMLAtomicElement
 Template for concrete atomic HTMLElement subclasses. More...
class  HTMLAttribute
 Class representing a name or a single name/value pair. More...
class  HTMLAttributeList
 An expandable list of HTMLAttribute objects. More...
class  HTMLBooleanElement
 Template for concrete boolean HTMLElement subclasses. More...
class  nullTag
class  comment
 An HTML comment. More...
class  HTMLDoctype
 Specifies the DTD of the HTML 4 document. More...
class  HTMLElement
 Class representing an HTML element. More...
class  HTMLElementList
 An expandable list of HTMLElement objects. More...
class  HTTPContentHeader
 HTTP header for data of a specified MIME type. More...
class  HTTPCookie
 An HTTP cookie. More...
class  HTTPHeader
 Abstract base class for all simple HTTP response headers. More...
class  HTTPHTMLHeader
 Shortcut to HTTPContentHeader for text/html. More...
class  HTTPPlainHeader
 Shortcut to HTTPContentHeader for text/html. More...
class  HTTPRedirectHeader
 Class for redirecting the client to a different URI. More...
class  HTTPResponseHeader
 Generic HTTP response header. More...
class  HTTPStatusHeader
 HTTP header to set a specific request status. More...
class  MStreamable
 Mix-in streamable interface. More...
class  FCgiIO
 Class that implements input and output through a FastCGI request. More...

Typedefs

typedef std::vector< FormEntry
>::iterator 
form_iterator
 A vector of FormEntry objects.
typedef std::vector< FormEntry
>::const_iterator 
const_form_iterator
 A vector of const FormEntry objects.
typedef std::vector< FormFile
>::iterator 
file_iterator
 A vector of FormFile objects.
typedef std::vector< FormFile
>::const_iterator 
const_file_iterator
 A vector of const FormFile objects.
typedef std::vector< HTTPCookie
>::iterator 
cookie_iterator
 A vector of HTTPCookie objects.
typedef std::vector< HTTPCookie
>::const_iterator 
const_cookie_iterator
 A vector of const HTTPCookie objects.

Functions

template<class In, class Out, class Pred>
Out copy_if (In first, In last, Out res, Pred p)
bool stringsAreEqual (const std::string &s1, const std::string &s2)
 Compare two strings for equality, ignoring case.
bool stringsAreEqual (const std::string &s1, const std::string &s2, size_t n)
 Compare two strings for equality, ignoring case.
std::string charToHex (char c)
 Convert an ASCII character to its hexadecimal equivalent.
char hexToChar (char first, char second)
 Convert a hex-encoded character to its ASCII equivalent.
std::string form_urlencode (const std::string &src)
 Convert encoded characters in form data to normal ASCII.
std::string form_urldecode (const std::string &src)
 Convert an ASCII string to a URL-safe string.
std::string extractBetween (const std::string &data, const std::string &separator1, const std::string &separator2)
 Extract a substring contained within two separators.
void writeString (std::ostream &out, const std::string &s)
 Write a string to an ostream.
void writeLong (std::ostream &out, unsigned long l)
 Write a long to an ostream.
std::string readString (std::istream &in)
 Read a string from an istream.
unsigned long readLong (std::istream &in)
 Read a long from an istream.
std::string extractBetween (const std::string &data, const std::string &separator)
 Extract a substring contained between a separator.
HTMLAttributeList set (const std::string &name)
 Create a new HTMLAttributeList, and set an HTMLAttribute.
HTMLAttributeList set (const std::string &name, const std::string &value)
 Create a new HTMLAttributeList, and set an HTMLAttribute.
 BOOLEAN_ELEMENT (html,"html")
 BOOLEAN_ELEMENT (head,"head")
 BOOLEAN_ELEMENT (title,"title")
 ATOMIC_ELEMENT (meta,"meta")
 BOOLEAN_ELEMENT (style,"style")
 BOOLEAN_ELEMENT (body,"body")
 BOOLEAN_ELEMENT (div,"div")
 BOOLEAN_ELEMENT (span,"span")
 BOOLEAN_ELEMENT (h1,"h1")
 BOOLEAN_ELEMENT (h2,"h2")
 BOOLEAN_ELEMENT (h3,"h3")
 BOOLEAN_ELEMENT (h4,"h4")
 BOOLEAN_ELEMENT (h5,"h5")
 BOOLEAN_ELEMENT (h6,"h6")
 BOOLEAN_ELEMENT (address,"address")
 BOOLEAN_ELEMENT (em,"em")
 BOOLEAN_ELEMENT (strong,"strong")
 BOOLEAN_ELEMENT (cite,"cite")
 BOOLEAN_ELEMENT (dfn,"dfn")
 BOOLEAN_ELEMENT (code,"code")
 BOOLEAN_ELEMENT (samp,"samp")
 BOOLEAN_ELEMENT (kbd,"kbd")
 BOOLEAN_ELEMENT (var,"var")
 BOOLEAN_ELEMENT (abbr,"abbr")
 BOOLEAN_ELEMENT (acronym,"acronym")
 BOOLEAN_ELEMENT (blockquote,"blockquote")
 BOOLEAN_ELEMENT (q,"q")
 BOOLEAN_ELEMENT (sub,"sub")
 BOOLEAN_ELEMENT (sup,"sup")
 BOOLEAN_ELEMENT (p,"p")
 ATOMIC_ELEMENT (br,"br")
 BOOLEAN_ELEMENT (pre,"pre")
 BOOLEAN_ELEMENT (ins,"ins")
 BOOLEAN_ELEMENT (del,"del")
 BOOLEAN_ELEMENT (bdo,"bdo")
 BOOLEAN_ELEMENT (ul,"ul")
 BOOLEAN_ELEMENT (ol,"ol")
 BOOLEAN_ELEMENT (li,"li")
 BOOLEAN_ELEMENT (dl,"dl")
 BOOLEAN_ELEMENT (dt,"dt")
 BOOLEAN_ELEMENT (dd,"dd")
 BOOLEAN_ELEMENT (table,"table")
 BOOLEAN_ELEMENT (caption,"caption")
 BOOLEAN_ELEMENT (thead,"thead")
 BOOLEAN_ELEMENT (tfoot,"tfoot")
 BOOLEAN_ELEMENT (tbody,"tbody")
 BOOLEAN_ELEMENT (colgroup,"colgroup")
 ATOMIC_ELEMENT (col,"col")
 BOOLEAN_ELEMENT (tr,"tr")
 BOOLEAN_ELEMENT (th,"th")
 BOOLEAN_ELEMENT (td,"td")
 BOOLEAN_ELEMENT (a,"a")
 ATOMIC_ELEMENT (link,"link")
 ATOMIC_ELEMENT (base,"base")
 ATOMIC_ELEMENT (img,"img")
 BOOLEAN_ELEMENT (object,"object")
 ATOMIC_ELEMENT (param,"param")
 BOOLEAN_ELEMENT (map,"map")
 ATOMIC_ELEMENT (area,"area")
 ATOMIC_ELEMENT (hr,"hr")
 BOOLEAN_ELEMENT (tt,"tt")
 BOOLEAN_ELEMENT (i,"i")
 BOOLEAN_ELEMENT (b,"b")
 BOOLEAN_ELEMENT (big,"big")
 BOOLEAN_ELEMENT (small,"small")
 BOOLEAN_ELEMENT (frameset,"frameset")
 ATOMIC_ELEMENT (frame,"frame")
 BOOLEAN_ELEMENT (noframes,"noframes")
 BOOLEAN_ELEMENT (iframe,"iframe")
 BOOLEAN_ELEMENT (form,"form")
 ATOMIC_ELEMENT (input,"input")
 BOOLEAN_ELEMENT (button,"button")
 BOOLEAN_ELEMENT (select,"select")
 BOOLEAN_ELEMENT (optgroup,"optgroup")
 BOOLEAN_ELEMENT (option,"option")
 BOOLEAN_ELEMENT (textarea,"textarea")
 BOOLEAN_ELEMENT (label,"label")
 BOOLEAN_ELEMENT (fieldset,"fieldset")
 BOOLEAN_ELEMENT (legend,"legend")
 BOOLEAN_ELEMENT (script,"script")
 BOOLEAN_ELEMENT (noscript,"noscript")
std::ostream & operator<< (std::ostream &out, const MStreamable &obj)


Function Documentation

CGICC_API std::string cgicc::charToHex ( char  c  ) 

Convert an ASCII character to its hexadecimal equivalent.

For example, after the call

 string s = charToHex(':');
s will have a value of "3A". Normally, this is called internally to encode characters by escapeString.
Parameters:
c The character to encode
Returns:
A string representing the hexadecimal value of c

Definition at line 77 of file CgiUtils.cpp.

Referenced by form_urlencode().

std::string cgicc::extractBetween ( const std::string &  data,
const std::string &  separator 
) [inline]

Extract a substring contained between a separator.

This function is used internally to decode multipart/form-data

Parameters:
data The data to search.
separator The separator.
Returns:
The substring between the separator.

Definition at line 159 of file CgiUtils.h.

References extractBetween().

std::string cgicc::extractBetween ( const std::string &  data,
const std::string &  separator1,
const std::string &  separator2 
)

Extract a substring contained within two separators.

For example, after the call

 std::string data = "11foo22";
 std::string res;
 res = extractBetween(data, "11", "22");
res will be "foo".
Parameters:
data The data to search.
separator1 The first logical separator.
separator2 The second logical separator.
Returns:
The substring between the separators.

Definition at line 212 of file CgiUtils.cpp.

Referenced by extractBetween().

CGICC_API std::string cgicc::form_urldecode ( const std::string &  src  ) 

Convert an ASCII string to a URL-safe string.

For example, '!' is converted to "%21" and ' ' is converted to '+'.

Parameters:
src The src string containing the characters to encode
Returns:
The converted string

Definition at line 177 of file CgiUtils.cpp.

References hexToChar().

CGICC_API std::string cgicc::form_urlencode ( const std::string &  src  ) 

Convert encoded characters in form data to normal ASCII.

For example, "%21" is converted to '!' and '+' is converted to a space. Normally, this is called internally to decode the query string or post data.

Parameters:
src The src string containing the encoded characters
Returns:
The converted string

Definition at line 139 of file CgiUtils.cpp.

References charToHex().

CGICC_API char cgicc::hexToChar ( char  first,
char  second 
)

Convert a hex-encoded character to its ASCII equivalent.

For example, after the call

 char c = hexToChar('2', '1');
c will have a value of '!'. Normally, this is called internally to decode encoded characters in the query string or post data.
Parameters:
first The first hex digit
second The second hex digit
Returns:
The ASCII character

Definition at line 94 of file CgiUtils.cpp.

Referenced by form_urldecode().

CGICC_API std::ostream & cgicc::operator<< ( std::ostream &  out,
const MStreamable &  obj 
)

Prototype for overloading streaming operator

Parameters:
out The ostream to which to write
obj The MStreamable object to write
Returns:
A reference to out

Definition at line 34 of file MStreamable.cpp.

References cgicc::MStreamable::render().

unsigned long cgicc::readLong ( std::istream &  in  ) 

Read a long from an istream.

This function is used internally by cgicc for restoring environments.

Parameters:
in The istream from which to read.
Returns:
The long read.

Definition at line 275 of file CgiUtils.cpp.

Referenced by cgicc::CgiEnvironment::restore().

std::string cgicc::readString ( std::istream &  in  ) 

Read a string from an istream.

This function is used internally by cgicc for restoring environments.

Parameters:
in The istream from which to read.
Returns:
The string read.

Definition at line 249 of file CgiUtils.cpp.

Referenced by cgicc::CgiEnvironment::restore().

HTMLAttributeList cgicc::set ( const std::string &  name,
const std::string &  value 
) [inline]

Create a new HTMLAttributeList, and set an HTMLAttribute.

This function is usually called from within the constructor of an HTMLElement:

 out << a("link text", set("HREF","http://www.foo.com")) << endl;
Parameters:
name The name of the HTMLAttribute to set.
value The value of the HTMLAttribute to set.
Returns:
A reference to the list.

Definition at line 205 of file HTMLAttributeList.h.

Referenced by dumpEnvironment(), and main().

HTMLAttributeList cgicc::set ( const std::string &  name  )  [inline]

Create a new HTMLAttributeList, and set an HTMLAttribute.

This function is usually called from within the constructor of an HTMLElement:

 out << img(set("ISINDEX")) << endl;
Parameters:
name The name of the HTMLAttribute to set.
Returns:
A reference to the list.

Definition at line 189 of file HTMLAttributeList.h.

CGICC_API bool cgicc::stringsAreEqual ( const std::string &  s1,
const std::string &  s2,
size_t  n 
)

Compare two strings for equality, ignoring case.

For case-sensitive comparison, use (s1 == s2);

Parameters:
s1 The first string to compare
s2 The second string to compare
n The number of characters to compare.
Returns:
true if the strings are equal, false if they are not

Definition at line 58 of file CgiUtils.cpp.

CGICC_API bool cgicc::stringsAreEqual ( const std::string &  s1,
const std::string &  s2 
)

Compare two strings for equality, ignoring case.

For case-sensitive comparison, use (s1 == s2);

Parameters:
s1 The first string to compare
s2 The second string to compare
Returns:
true if the strings are equal, false if they are not

Definition at line 40 of file CgiUtils.cpp.

Referenced by cgicc::CgiEnvironment::CgiEnvironment(), cgicc::FF_compare::operator()(), cgicc::FE_valueCompare::operator()(), cgicc::FE_nameCompare::operator()(), cgicc::HTTPCookie::operator==(), cgicc::HTMLAttribute::operator==(), cgicc::FormFile::operator==(), cgicc::FormEntry::operator==(), cgicc::Cgicc::queryCheckbox(), cgicc::CgiEnvironment::restore(), and cgicc::CgiEnvironment::save().

void cgicc::writeLong ( std::ostream &  out,
unsigned long  l 
)

Write a long to an ostream.

This function is used internally for saving environments.

Parameters:
out The ostream to which to write.
l The long to write.

Definition at line 241 of file CgiUtils.cpp.

Referenced by cgicc::CgiEnvironment::save().

void cgicc::writeString ( std::ostream &  out,
const std::string &  s 
)

Write a string to an ostream.

This function is used internally for saving environments.

Parameters:
out The ostream to which to write.
s The string to write.

Definition at line 232 of file CgiUtils.cpp.

Referenced by cgicc::CgiEnvironment::save().


Generated on Tue Jul 3 15:44:33 2007 for GNUCgicc by  doxygen 1.5.1