fastcgi++
Public Types | Public Member Functions | Public Attributes | Private Attributes | Friends
Fastcgipp::Http::Post< charT > Struct Template Reference

Holds a piece of HTTP post data. More...

#include <http.hpp>

List of all members.

Public Types

enum  Type { file, form }
 Type of POST data piece. More...

Public Member Functions

const char * data () const
 Pointer to file data.
size_t size () const
 Size of file data.
char * steal () const
 Expropriates the file data. Beyond this you must free it when done.
 Post ()
 Post (const Post &x)
 ~Post ()

Public Attributes

enum Fastcgipp::Http::Post::Type type
std::basic_string< charT > value
 Value of POST data if type=form.
std::basic_string< charT > & filename
 Filename of POST data if type=file.
std::basic_string< charT > contentType
 Content Type if type=file.

Private Attributes

char * m_data
 Pointer to file data.
size_t m_size
 Size of data in bytes pointed to by data.

Friends

class Environment

Detailed Description

template<class charT>
struct Fastcgipp::Http::Post< charT >

Holds a piece of HTTP post data.

This structure will hold one of two types of HTTP post data. It can either contain form data, in which case the data field is empty and the size is zero; or it can hold an uploaded file, in which case data contains a pointer to the file data, size contains it's size and value holds it's filename. The actual name associated with the piece of post data is omitted from the class so it can be linked in an associative container.

Template Parameters:
charTType of character to use in the value string (char or wchar_t)

Definition at line 58 of file http.hpp.


Member Enumeration Documentation

template<class charT>
enum Fastcgipp::Http::Post::Type

Type of POST data piece.

Enumerator:
file 
form 

Definition at line 61 of file http.hpp.


Constructor & Destructor Documentation

template<class charT>
Fastcgipp::Http::Post< charT >::Post ( ) [inline]

Definition at line 76 of file http.hpp.

template<class charT>
Fastcgipp::Http::Post< charT >::Post ( const Post< charT > &  x) [inline]

Definition at line 77 of file http.hpp.

template<class charT>
Fastcgipp::Http::Post< charT >::~Post ( ) [inline]

Definition at line 85 of file http.hpp.

References Fastcgipp::Http::Post< charT >::m_data.


Member Function Documentation

template<class charT>
const char* Fastcgipp::Http::Post< charT >::data ( ) const [inline]

Pointer to file data.

Definition at line 70 of file http.hpp.

References Fastcgipp::Http::Post< charT >::m_data.

template<class charT>
size_t Fastcgipp::Http::Post< charT >::size ( ) const [inline]

Size of file data.

Definition at line 72 of file http.hpp.

References Fastcgipp::Http::Post< charT >::m_size.

template<class charT>
char* Fastcgipp::Http::Post< charT >::steal ( ) const [inline]

Expropriates the file data. Beyond this you must free it when done.

Definition at line 74 of file http.hpp.

References Fastcgipp::Http::Post< charT >::m_data, and Fastcgipp::Http::Post< charT >::m_size.


Friends And Related Function Documentation

template<class charT>
friend class Environment [friend]

Definition at line 91 of file http.hpp.


Member Data Documentation

template<class charT>
std::basic_string<charT> Fastcgipp::Http::Post< charT >::contentType

Content Type if type=file.

Definition at line 67 of file http.hpp.

Referenced by Fastcgipp::Http::Environment< charT >::parsePostsMultipart().

template<class charT>
std::basic_string<charT>& Fastcgipp::Http::Post< charT >::filename

Filename of POST data if type=file.

Definition at line 65 of file http.hpp.

Referenced by Fastcgipp::Http::Environment< charT >::parsePostsMultipart().

template<class charT>
char* Fastcgipp::Http::Post< charT >::m_data [mutable, private]
template<class charT>
size_t Fastcgipp::Http::Post< charT >::m_size [mutable, private]
template<class charT>
enum Fastcgipp::Http::Post::Type Fastcgipp::Http::Post< charT >::type
template<class charT>
std::basic_string<charT> Fastcgipp::Http::Post< charT >::value

The documentation for this struct was generated from the following file: