1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/*
* $Id: fcgi-test.cpp,v 1.5 2007/07/02 18:48:19 sebdiaz Exp $
*
* Copyright (C) 1996 - 2004 Stephen F. Booth
* 2007 Sebastien DIAZ <sebastien.diaz@gmail.com>
* Part of the GNU cgicc library, http://www.gnu.org/software/cgicc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
*/
#include <exception>
#include <iostream>
#include <unistd.h>
#include "cgicc/Cgicc.h"
#include "cgicc/HTTPHTMLHeader.h"
#include "cgicc/HTMLClasses.h"
#include "FCgiIO.h"
using namespace std;
using namespace cgicc;
int
main(int /*argc*/,
const char **/*argv*/,
char **/*envp*/)
{
unsigned count = 0;
FCGX_Request request;
FCGX_Init();
FCGX_InitRequest(&request, 0, 0);
while(FCGX_Accept_r(&request) == 0) {
try {
FCgiIO IO(request);
Cgicc CGI(&IO);
// Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info
IO << HTTPHTMLHeader() << HTMLDoctype( HTMLDoctype::eStrict ) << endl
<< html().set( "lang", "en" ).set( "dir", "ltr" ) << endl;
// Set up the page's header and title.
IO << head() << endl
<< title() << "GNU cgicc v" << CGI.getVersion() << title() << endl
<< head() << endl;
// Start the HTML body
IO << body() << endl;
// Print out a message
IO << h1("Cgicc/FastCGI Test") << endl
<< "PID: " << getpid() << br() << endl
<< "count: " << count++ << br() << endl;
IO << "Form Elements:" << br() << endl;
for(const_form_iterator i = CGI.getElements().begin();
i != CGI.getElements().end(); ++i )
IO << i->getName() << " = " << i->getValue() << br() << endl;
// Close the document
IO << body() << html();
}
catch(const exception&) {
// handle error condition
}
FCGX_Finish_r(&request);
}
return 0;
}
|