fastcgi++  3.1alpha
A C++ FastCGI/Web API
Fastcgipp Namespace Reference

Topmost namespace for the fastcgi++ library. More...

Namespaces

 Http
 Defines classes and functions relating to the HTTP protocol.
 
 Logging
 Contains the Fastcgipp debugging/logging mechanism.
 
 Mail
 Contains the stuff for composing and sending emails.
 
 Protocol
 Defines aspects of the FastCGI Protocol.
 
 SQL
 Contains all fastcgi++ SQL facilities.
 

Classes

struct  Address
 Efficiently stores IPv6 addresses. More...
 
class  BigEndian
 Allows raw storage of types in big endian format. More...
 
class  BigEndian_base
 De-templated. More...
 
class  Block
 Data structure to hold a block of raw data. More...
 
class  ChunkStreamBuf
 
class  ChunkStreamBuf< char >
 Specialized ChunkStreamBuf stream buffer for char. More...
 
class  ChunkStreamBuf< wchar_t >
 Specialized ChunkStreamBuf stream buffer for wchar_t. More...
 
class  ChunkStreamBuf_base
 De-templated base class for ChunkStreamBuf. More...
 
class  Curl
 Object for composing curl messages. More...
 
class  Curl_base
 De-templated base class for individual Curl requests. More...
 
class  Curler
 Handles multiple asynchronous curl requests. More...
 
class  FcgiStreambuf
 Stream buffer class for output of client data through FastCGI. More...
 
class  Manager
 General task and protocol management class. More...
 
class  Manager_base
 General task and protocol management class base. More...
 
struct  Message
 Data structure used to pass messages to requests. More...
 
class  Poll
 Class for handling OS level socket polling. More...
 
class  Request
 Request handling class More...
 
class  Request_base
 De-templating base class for Request. More...
 
class  Socket
 Class for representing an OS level I/O socket. More...
 
class  SocketGroup
 Class for representing an OS level socket that listens for connections. More...
 
class  Transceiver
 Handles low level communication with "the other side". More...
 
class  WebStreambuf
 Stream buffer class for output of HTML/Web stream. More...
 

Typedefs

typedef int socket_t
 Our socket identifier type in GNU/Linux is simply an int. More...
 

Enumerations

enum  Encoding { Encoding::NONE, Encoding::HTML, Encoding::URL }
 Stream manipulator for setting output encoding. More...
 

Functions

template<class charT , class Traits >
std::basic_ostream< charT, Traits > & operator<< (std::basic_ostream< charT, Traits > &os, const Address &address)
 Address stream insertion operation. More...
 
template<class charT , class Traits >
std::basic_istream< charT, Traits > & operator>> (std::basic_istream< charT, Traits > &is, Address &address)
 Address stream extractor operation. More...
 
template<class charT , class traits >
std::basic_ostream< charT, traits > & operator<< (std::basic_ostream< charT, traits > &os, const Encoding &encoding)
 

Variables

const char version [] =FASTCGIPP_VERSION
 Defines the fastcgi++ version. More...
 

Detailed Description

Topmost namespace for the fastcgi++ library.

Typedef Documentation

◆ socket_t

typedef int Fastcgipp::socket_t

Our socket identifier type in GNU/Linux is simply an int.

Definition at line 65 of file poll.hpp.

Enumeration Type Documentation

◆ Encoding

enum Fastcgipp::Encoding
strong

Stream manipulator for setting output encoding.

This simple stream manipulator can set the output encoding of Fcgistream objects by

out << Encoding::HTML << "<not html&>" << Encoding::NONE << "<htmltag>";

When output encoding is set to NONE, no character translation takes place. HTML and URL encoding is described by the following table.

HTML

Input Output
" &quot;
> &gt;
< &lt;
& &amp;
' &apos;

URL

Input Output
! %21
] %5D
[ %5B
# %23
? %3F
/ %2F
, %2C
$ %24
+ %2B
= %3D
& %26
@ %40
: %3A
; %3B
) %29
( %28
' %27
* %2A
< %3C
> %3E
" %22
*space* %20
% %25
Date
May 2, 2016
Author
Eddie Carle <eddie.nosp@m.@isa.nosp@m.tec.c.nosp@m.a>
Enumerator
NONE 
HTML 
URL 

Definition at line 198 of file webstreambuf.hpp.

Function Documentation

◆ operator<<() [1/2]

template<class charT , class Traits >
std::basic_ostream< charT, Traits > & Fastcgipp::operator<< ( std::basic_ostream< charT, Traits > &  os,
const Address address 
)

Address stream insertion operation.

This stream inserter obeys all stream manipulators regarding alignment, field width and numerical base.

Definition at line 179 of file address.cpp.

References Fastcgipp::Address::m_data, and Fastcgipp::Address::size.

◆ operator<<() [2/2]

template<class charT , class traits >
std::basic_ostream< charT, traits > & Fastcgipp::operator<< ( std::basic_ostream< charT, traits > &  os,
const Encoding encoding 
)

◆ operator>>()

template<class charT , class Traits >
std::basic_istream< charT, Traits > & Fastcgipp::operator>> ( std::basic_istream< charT, Traits > &  is,
Address address 
)

Address stream extractor operation.

In order for this to work the string must represent either an IPv4 address in standard textual decimal form (127.0.0.1) or an IPv6 in standard form.

Definition at line 361 of file address.cpp.

References Fastcgipp::Address::size.

Variable Documentation

◆ version

const char Fastcgipp::version =FASTCGIPP_VERSION

Defines the fastcgi++ version.

Definition at line 91 of file protocol.cpp.

Referenced by Fastcgipp::Request< charT >::complete(), and Fastcgipp::FcgiStreambuf< charT >::dump().

Fastcgipp::Encoding::NONE
@ NONE
Fastcgipp::Encoding::HTML
@ HTML
Fastcgipp::Encoding
Encoding
Stream manipulator for setting output encoding.
Definition: webstreambuf.hpp:198