Boost logo

Boost :

From: Darren Garvey (lists.drrngrvy_at_[hidden])
Date: 2007-08-18 14:50:06


Hi Jean-Christophe,

On 17/08/07, Jean-Christophe Roux <jcxxr_at_[hidden]> wrote:
>
> Darren Garvey wrote:
> > Hello all,
> >
> Hello Darren,
>
> Here is basic use case. I have this ajaxian website with a button that,
> on a click, calls a php script taking a couple of POST parameters and
> returning a string. I suspect that C++ would nicely speed up the
> process. What would be the best use of your library? Of course, I worry
> about the time to start the process.

Well, FastCGI is ideal for AJAX functions. It was supposed to be implemented
by now, but unfortunately you'll have to wait a little bit longer. :(

The structure of the library has been mostly worked out, so I'm '85% sure'
that the following code will work, eventually. Note that the following
program is basically a backend daemon and will handle an arbitrary number of
requests (you'll probably limit this with your server though).

#include <boost/cgi/fcgi.hpp>
#include <boost/thread.hpp>
#include <boost/bind.hpp>

int sub_main(cgi::fcgi_request& req)
{
  cgi::reply rep; // use this to write to the client

  // First, check the client didn't send us too much data
  if (req.content_length() > 2048)
  {
    return req.close(cgi::http::bad_request, 1);
  }

  rep<< "This will be output to the client"
       << "the POST variable 'post_var_1' has a value"
       << req.meta_post("post_var_1", true);

  // the 'true' above tells the request to read and parse the client's post
data until
  // either 'post_var_1' is found or the end of POST data is reached.

  rep.send(req); // return the response to the client.

  return req.close(cgi::http::ok, 0);
}

int main(int,char**)
{
  // This is in the examples: http://tinyurl.com/27vnnx
  cgi::fcgi_threadpool_server server;

  boost::thread t1(boost::bind(&cgi::fcgi_threadpool_server::run, server);
  t1.join();

  return 0;
}

Regards,
Darrem


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk