$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: lists.drrngrvy_at_[hidden]
Date: 2008-02-10 09:35:43
Author: drrngrvy
Date: 2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
New Revision: 43208
URL: http://svn.boost.org/trac/boost/changeset/43208
Log:
Adding return_() macro to make closing requests nicer-looking. (just a thought)
Added:
   sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_fwd.hpp   (contents, props changed)
   sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/return.hpp   (contents, props changed)
Text files modified: 
   sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi.hpp                 |     7 +++++++                                 
   sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_service.hpp |     9 ++++-----                               
   sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/response.hpp             |     5 +++++                                   
   3 files changed, 16 insertions(+), 5 deletions(-)
Modified: sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi.hpp	(original)
+++ sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi.hpp	2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
@@ -18,6 +18,13 @@
 //#include "boost/cgi/fcgi/request_acceptor_service.hpp"
 #include "boost/cgi/detail/common_headers.hpp"
 
+namespace cgi {
+ namespace fcgi {
+   using namespace ::cgi;
+   using namespace ::cgi::common;
+ } // namespace fcgi
+} // namespace cgi
+
 /// Dump fcgi stuff into the boost namespace
 namespace boost {
  namespace fcgi {
Added: sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_fwd.hpp	2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
@@ -0,0 +1,26 @@
+//                -- fcgi/request_fwd.hpp --
+//
+//            Copyright (c) Darren Garvey 2007.
+// Distributed under the Boost Software License, Version 1.0.
+//    (See accompanying file LICENSE_1_0.txt or copy at
+//          http://www.boost.org/LICENSE_1_0.txt)
+//
+////////////////////////////////////////////////////////////////
+#ifndef CGI_FCGI_REQUEST_FWD_HPP_INCLUDED__
+#define CGI_FCGI_REQUEST_FWD_HPP_INCLUDED__
+
+#include "boost/cgi/basic_request_fwd.hpp"
+
+namespace cgi {
+  namespace fcgi {
+
+    typedef service service_t;
+    class fcgi_request_service;
+
+    typedef basic_request<fcgi_request_service, service_t> request;
+
+  } // namespace fcgi
+} // namespace cgi
+
+#endif // CGI_FCGI_REQUEST_FWD_HPP_INCLUDED__
+
Modified: sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_service.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_service.hpp	(original)
+++ sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/fcgi/request_service.hpp	2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
@@ -221,18 +221,18 @@
         //impl.client_.parse_packet(impl, ec);
         parse_packet(impl, ec);
       }
-/*
+
       const std::string& request_method = env(impl, "REQUEST_METHOD", ec);
       if (request_method == "GET")
         if (parse_get_vars(impl, ec))
-	      return ec;
+          return ec;
+/** FIXME **
       else
       if (request_method == "POST" && parse_stdin)
         if (parse_post_vars(impl, ec))
               return ec;
-
-      parse_cookie_vars(impl, ec);
 */
+      parse_cookie_vars(impl, ec);
 
       std::cerr<< "done!" << std::endl;
       return ec;
@@ -369,7 +369,6 @@
     }
 
     /// Read and parse the HTTP_COOKIE meta variable
-    template<typename RequestImpl>
     boost::system::error_code&
     parse_cookie_vars(implementation_type& impl, boost::system::error_code& ec)
     {
Modified: sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/response.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/response.hpp	(original)
+++ sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/response.hpp	2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
@@ -247,6 +247,11 @@
       return http_status_;
     }
 
+    http::status_code& status()
+    {
+      return http_status_;
+    }
+
     /// Allow more headers to be added (WARNING: avoid using this).
     void unterminate_headers()
     {
Added: sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/return.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/branches/acceptor_work/boost/cgi/return.hpp	2008-02-10 09:35:42 EST (Sun, 10 Feb 2008)
@@ -0,0 +1,51 @@
+//                     -- return.hpp --
+//
+//            Copyright (c) Darren Garvey 2007.
+// Distributed under the Boost Software License, Version 1.0.
+//    (See accompanying file LICENSE_1_0.txt or copy at
+//          http://www.boost.org/LICENSE_1_0.txt)
+//
+////////////////////////////////////////////////////////////////
+#ifndef CGI_RETURN_HPP_INCLUDED__
+#define CGI_RETURN_HPP_INCLUDED__
+
+#include "boost/cgi/response.hpp"
+#include "boost/cgi/basic_request.hpp"
+
+namespace cgi {
+ namespace common {
+
+   template<typename Response, typename Request>
+   int return_helper(Response& resp, Request& req, int program_status)
+   {
+     boost::system::error_code ec;
+     resp.send(req, ec);
+     if (ec) return ec;
+
+     req.close(resp.status(), program_status);
+
+     return program_status;
+   }
+
+   template<typename R1, typename R2>
+   void send_helper(R1& resp, R2& req)
+   {
+     resp.send(req.client());
+   }
+
+   void close_helper(response& resp, boost::fcgi::request& req, int prog_status)
+   {
+     req.close(resp.status(), prog_status);
+   }
+
+#define return_(RESP, REQ, STATUS) \
+    send_helper(RESP, REQ);            \
+    ::cgi::common::close_helper(RESP, REQ, STATUS); \
+    return STATUS;
+
+//return return_helper(resp, req, status)
+
+ } // namespace common
+} // namespace cgi
+
+#endif // CGI_RETURN_HPP_INCLUDED__