Boost logo

Boost-Commit :

From: lists.drrngrvy_at_[hidden]
Date: 2007-08-10 14:33:07


Author: drrngrvy
Date: 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
New Revision: 38584
URL: http://svn.boost.org/trac/boost/changeset/38584

Log:
* Fixing errors from last commits
Added:
   sandbox/SOC/2007/cgi/boost/cgi/acgi/
   sandbox/SOC/2007/cgi/boost/cgi/acgi/request.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/acgi/request_service.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/cgi/request.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/cgi/request_service.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/
   sandbox/SOC/2007/cgi/boost/cgi/scgi/acceptor_service_impl.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/request.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/request_acceptor_service.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/request_impl.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/request_service.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/service.hpp (contents, props changed)
   sandbox/SOC/2007/cgi/boost/cgi/scgi/service_impl.hpp (contents, props changed)
Removed:
   sandbox/SOC/2007/cgi/boost/cgi/cgi/acgi_request.hpp
   sandbox/SOC/2007/cgi/boost/cgi/cgi/cgi_request.hpp
   sandbox/SOC/2007/cgi/boost/cgi/request_impl/acgi_request_impl.hpp
   sandbox/SOC/2007/cgi/boost/cgi/request_impl/cgi_request_impl.hpp
   sandbox/SOC/2007/cgi/boost/cgi/request_impl/fcgi_request_impl.hpp
   sandbox/SOC/2007/cgi/boost/cgi/request_impl/scgi_request_impl.hpp
   sandbox/SOC/2007/cgi/boost/cgi/service_impl/acgi_service_impl.hpp
   sandbox/SOC/2007/cgi/boost/cgi/service_impl/cgi_service_impl.hpp

Added: sandbox/SOC/2007/cgi/boost/cgi/acgi/request.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/acgi/request.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,29 @@
+// -- acgi/request.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_ACGI_REQUEST_HPP_INCLUDED__
+#define CGI_ACGI_REQUEST_HPP_INCLUDED__
+
+#include "request_impl.hpp"
+#include "request_service.hpp"
+#include "../tags.hpp"
+#include "../basic_request_fwd.hpp"
+#include "../request_impl/acgi_request_impl.hpp"
+//#include "../service_impl/acgi_service_impl.hpp"
+
+namespace cgi {
+
+ class acgi_request_service;
+
+ typedef basic_request<acgi_request_service> acgi_request;
+
+} // namespace cgi
+
+#include "../basic_request.hpp"
+
+#endif // CGI_ACGI_REQUEST_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/acgi/request_service.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/acgi/request_service.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,62 @@
+// -- acgi_service_impl.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_ACGI_SERVICE_IMPL_HPP_INCLUDED__
+#define CGI_ACGI_SERVICE_IMPL_HPP_INCLUDED__
+
+#include <boost/asio/io_service.hpp>
+#include "../tags.hpp"
+#include "../io_service.hpp"
+#include "../map.hpp"
+#include "../request_impl/acgi_request_impl.hpp"
+#include "cgi_service_impl_base.hpp"
+#include "../detail/service_base.hpp"
+#include "../io_service.hpp"
+#include "../detail/extract_params.hpp"
+#include "../connections/async_stdio.hpp"
+
+namespace cgi {
+
+ //template<typename ProtocolService>
+ class acgi_request_service
+ //: public boost::asio::io_service::service
+ : public cgi_service_impl_base<acgi_request_impl>
+ , public detail::service_base<acgi_request_service>
+ {
+ public:
+ typedef acgi_request_service type;
+ typedef acgi_request_impl impl_type;
+ typedef cgi::map map_type;
+ typedef tags::acgi protocol_type;
+ typedef cgi_service protocol_service_type;
+
+ /// The unique service identifier
+ // static boost::asio::io_service::id id;
+
+ acgi_request_service(cgi::io_service& ios)
+ : detail::service_base<acgi_service_impl>(ios)
+ {
+ }
+
+ void shutdown_service()
+ {
+ }
+ void construct(implementation_type& impl)
+ {
+ impl.connection_ = async_stdio_connection::create(io_service());
+ }
+
+ void destroy(implementation_type& impl)
+ {
+ }
+
+ };
+
+} // namespace cgi
+
+#endif // CGI_ASYNC_CGI_SERVICE_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/cgi/acgi_request.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/cgi/acgi_request.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,25 +0,0 @@
-// -- acgi_request.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_ACGI_REQUEST_HPP_INCLUDED__
-#define CGI_ACGI_REQUEST_HPP_INCLUDED__
-
-#include "../tags.hpp"
-#include "../basic_request_fwd.hpp"
-#include "../request_impl/acgi_request_impl.hpp"
-#include "../service_impl/acgi_service_impl.hpp"
-
-namespace cgi {
-
- typedef basic_request<acgi_request_service> acgi_request;
-
-} // namespace cgi
-
-#include "../basic_request.hpp"
-
-#endif // CGI_ACGI_REQUEST_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/cgi/cgi_request.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/cgi/cgi_request.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,31 +0,0 @@
-// -- cgi_request.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_CGI_REQUEST_HPP_INCLUDED__
-#define CGI_CGI_REQUEST_HPP_INCLUDED__
-
-#include "request_service.hpp"
-#include "../tags.hpp"
-#include "../basic_request_fwd.hpp"
-#include "../basic_protocol_service_fwd.hpp"
-//#include "../service_impl/cgi_service_impl.hpp"
-//#include "../request_impl/cgi_request_impl.hpp"
-#include "../basic_request.hpp"
-
-namespace cgi {
-
- class cgi_request_service;
-
- typedef basic_request<
- cgi_request_service,
- basic_protocol_service<tags::cgi>
- > cgi_request;
-
-} // namespace cgi
-
-#endif // CGI_CGI_REQUEST_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/cgi/request.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/cgi/request.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,26 @@
+// -- cgi_request.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_CGI_REQUEST_HPP_INCLUDED__
+#define CGI_CGI_REQUEST_HPP_INCLUDED__
+
+#include "request_service.hpp"
+#include "../tags.hpp"
+#include "../basic_request_fwd.hpp"
+#include "../request_impl/cgi_request_impl.hpp"
+#include "../basic_request.hpp"
+
+namespace cgi {
+
+ class cgi_service_impl;
+
+ typedef basic_request<cgi_request_service, cgi_service> cgi_request;
+
+} // namespace cgi
+
+#endif // CGI_CGI_REQUEST_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/cgi/request_service.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/cgi/request_service.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,63 @@
+// -- cgi_service_impl.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_CGI_SERVICE_IMPL_HPP_INCLUDED__
+#define CGI_CGI_SERVICE_IMPL_HPP_INCLUDED__
+
+#include <string>
+#include <map>
+#include <boost/system/error_code.hpp>
+
+//#include "../detail/extract_params.hpp"
+//#include "../role_type.hpp"
+//#include "../http/status_code.hpp"
+//#include "../map.hpp"
+//#include "../request_impl/cgi_request_impl.hpp"
+#include "../service_impl/cgi_service_impl_base.hpp"
+#include "../detail/extract_params.hpp"
+#include "../request_impl/cgi_request_impl.hpp"
+#include "../connections/stdio.hpp"
+
+namespace cgi {
+
+ //class cgi_request_impl;
+
+ //template<typename RequestImplType>
+ class cgi_request_service
+ : public cgi_service_impl_base<cgi_request_impl>
+ {
+ typedef ::cgi::map map_type;
+ public:
+ typedef cgi_request_impl impl_type;
+ typedef tags::cgi protocol_type;
+ //typedef cgi_service_impl_base<cgi_request_impl> base;
+
+ cgi_request_service()
+ : cgi_service_impl_base<cgi_request_impl>()
+ {
+ }
+
+ template<typename T>
+ cgi_request_service(T&)
+ : cgi_service_impl_base<cgi_request_impl>()
+ {
+ }
+
+ void construct(implementation_type& impl)
+ {
+ impl.connection() = stdio_connection::create();
+ }
+
+ void destroy(implementation_type& impl)
+ {
+ }
+ };
+
+} // namespace cgi
+
+#endif // CGI_CGI_SERVICE_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/request_impl/acgi_request_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/request_impl/acgi_request_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,44 +0,0 @@
-// -- acgi_request_impl.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_ACGI_REQUEST_IMPL_HPP_INCLUDED__
-#define CGI_ACGI_REQUEST_IMPL_HPP_INCLUDED__
-
-#include "../cgi/cgi_service.hpp"
-#include "cgi_request_impl_base.hpp"
-#include "../connections/async_stdio.hpp"
-
-// Make this ProtocolService-independent
-/*
- * Should the request_impl extract an io_service from the protocol_service
- * on construction, so that
- */
-
-namespace cgi {
-
- // Forward declaration
- class acgi_service_impl;
-
- class acgi_request_impl
- : public cgi_request_impl_base<acgi_request_impl, async_stdio_connection>
- {
- public:
- typedef cgi_service protocol_service_type;
-
- acgi_request_impl()
- : cgi_request_impl_base<acgi_request_impl, connection_type>()
- {
- }
-
- protected:
- friend class acgi_service_impl;
- };
-
-} // namespace cgi
-
-#endif // CGI_ASYNC_CGI_REQUEST_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/request_impl/cgi_request_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/request_impl/cgi_request_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,98 +0,0 @@
-// -- cgi_request_impl.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_CGI_REQUEST_IMPL_HPP_INCLUDED__
-#define CGI_CGI_REQUEST_IMPL_HPP_INCLUDED__
-
-#include <map>
-#include <string>
-#include <boost/noncopyable.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "../http/status_code.hpp"
-#include "../connections/stdio.hpp"
-#include "../role_type.hpp"
-#include "../status_type.hpp"
-#include "../map.hpp"
-#include "cgi_request_impl_base.hpp"
-
-// Make this ProtocolService-independent
-
-namespace cgi {
-
- // Forward declaration
- //template<typename>
- class cgi_service_impl;
-
-
- /// Implementation for a standard CGI request
- /**
- * Note: This isn't noncopyable since there's no real reason it can't be
- * copied around. Since basic_request is noncopyable, basic copying will be
- * restricted but if someone really wants to copy the data, then they can.
- */
- class cgi_request_impl
- : public cgi_request_impl_base<cgi_request_impl, stdio_connection>
- {
- public:
- /// Constructor
- /**
- * Since this request type is synchronous, there is no need for an
- * io_service, so the passed ProtocolService is just ignored.
- */
- template<typename ProtocolService>
- cgi_request_impl(ProtocolService& pserv)
- : cgi_request_impl_base<cgi_request_impl, stdio_connection>(pserv)
- {
- }
-
- cgi_request_impl()
- : cgi_request_impl_base<cgi_request_impl, stdio_connection>()
- {
- }
-
- protected:
- friend class cgi_service_impl;//<cgi_request_impl>;
- };
-
- //template<> inline const std::string&
- //cgi_request_impl::var<tags::ENV>(const std::string& name)
- //{
- // return ::getenv(name.c_str());
- //}
-
- /// Get a request map of all the environment meta-variables (slow)
- /**
- * -- NOT IMPLEMENTED FOR NOW --
- *
- * In the case of a CGI request, the environment meta-data is usually stored
- * in the process environment, which means there is no direct access to all
- * of them as a map_type&. In other words, this function call will have to
- * load all of the variables into memory and then return the map
- */
- //template<> inline cgi_request_impl::map_type&
- //cgi_request_impl::var<tags::ENV>()
- //{
- // throw std::logic_error("Can't get all environment vars as a map_type&");
- //}
-
- //template<> inline cgi_request_impl::map_type&
- //cgi_request_impl::var<tags::HTTP>() { return http_map_; }
-
- //template<> inline cgi_request_impl::map_type&
- //cgi_request_impl::var<tags::COOKIE>() { return cookie_map_; }
-
- //template<> inline cgi_request_impl::map_type&
- //cgi_request_impl::var<tags::GET>() { return get_map_; }
-
- //template<> inline cgi_request_impl::map_type&
- //cgi_request_impl::var<tags::POST>() { return post_map_; }
-
-} // namespace cgi
-
-#endif // CGI_CGI_REQUEST_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/request_impl/fcgi_request_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/request_impl/fcgi_request_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,60 +0,0 @@
-// -- fcgi_request_impl.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_IMPL_HPP_INCLUDED__
-#define CGI_FCGI_REQUEST_IMPL_HPP_INCLUDED__
-
-// Make this ProtocolService-independent
-
-namespace cgi {
-
- /// Implementation for a FastCGI request
- class fcgi_request_impl
- {
- public:
- typedef tags::fastcgi protocol_type;
-
- explicit fcgi_request_impl(protocol_service_type& pserv
- , const role_type& role = role_type::responder
- , boost::weak_ptr<connection_base> connection = NULL)
- : protocol_service_(pserv)
- , role_(role)
- , connection_(connection)
- , data_read_(role_ == role_type::filter ? false : true)
- , stdin_read_(role_ == role_type::authorizer ? true : false)
- {
- }
-
- protected:
- protocol_service_type& protocol_service_;
-
- /// The role the request plays
- role_type role_;
-
- map_type env_vars_;
- map_type cookie_vars_;
- map_type post_vars_;
- map_type get_vars_;
-
- std::string stdin_buffer_;
- std::string data_buffer_; // only needed for request_type::filter (not hugely important)
-
- /// Finished reading from stdin buffer (ie. POST data)
- bool stdin_read_;
-
- /// Finished reading from data buffer (for Filter requests)
- bool data_read_;
-
- private:
- fcgi_request() // private default constructor
- friend class fcgi_service_impl;
- };
-
-} // namespace cgi
-
-#endif // CGI_FCGI_REQUEST_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/request_impl/scgi_request_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/request_impl/scgi_request_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,60 +0,0 @@
-// -- scgi_request_impl.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_SCGI_REQUEST_IMPL_HPP_INCLUDED__
-#define CGI_SCGI_REQUEST_IMPL_HPP_INCLUDED__
-
-// Make this ProtocolService-independent
-
-namespace cgi {
-
- /// Implementation for an SCGI request
- class scgi_request_impl
- {
- public:
- typedef tags::scgi protocol_type;
-
- scgi_request_impl(protocol_service_type& pserv
- , const role_type& role = role_type::responder
- , boost::weak_ptr<connection_base> connection = NULL)
- : protocol_service_(pserv)
- , role_(role)
- , connection_(connection)
- , data_read_(role_ == role_type::filter ? false : true)
- , stdin_read_(role_ == role_type::authorizer ? true : false)
- {
- }
-
- protected:
- protocol_service_type& protocol_service_;
-
- /// The role the request plays
- role_type role_;
-
- map_type env_vars_;
- map_type cookie_vars_;
- map_type post_vars_;
- map_type get_vars_;
-
- std::string stdin_buffer_;
- std::string data_buffer_; // only needed for request_type::filter (not hugely important)
-
- /// Finished reading from stdin buffer (ie. POST data)
- bool stdin_read_;
-
- /// Finished reading from data buffer (for Filter requests)
- bool data_read_;
-
- private:
- fcgi_request() // private default constructor
- friend class fcgi_service_impl;
- };
-
-} // namespace cgi
-
-#endif // CGI_SCGI_REQUEST_IMPL_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/acceptor_service_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/acceptor_service_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,19 @@
+// -- scgi/acceptor_service_impl.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_SCGI_ACCEPTOR_SERVICE_IMPL_HPP_INCLUDED__
+#define CGI_SCGI_ACCEPTOR_SERVICE_IMPL_HPP_INCLUDED__
+
+namespace cgi {
+
+
+
+
+} // namespace cgi
+
+#endif // CGI_SCGI_ACCEPTOR_SERVICE_IMPL_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/request.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/request.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,23 @@
+// -- scgi/request.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_SCGI_REQUEST_HPP_INCLUDED__
+#define CGI_SCGI_REQUEST_HPP_INCLUDED__
+
+#include "../tags.hpp"
+#include "../basic_request.hpp"
+
+namespace cgi {
+
+ class scgi_request_service;
+
+ typedef basic_request<scgi_request_service> scgi_request;
+
+} // namespace cgi
+
+#endif // CGI_SCGI_REQUEST_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/request_acceptor_service.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/request_acceptor_service.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,93 @@
+// -- request_service.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_REQUEST_SERVICE_HPP_INCLUDED
+#define CGI_REQUEST_SERVICE_HPP_INCLUDED
+
+#include "../detail/push_options.hpp"
+
+#include <boost/utility/enable_if.hpp>
+
+//#include "is_async.hpp"
+#include "../io_service.hpp"
+#include "../detail/throw_error.hpp"
+#include "../detail/protocol_traits.hpp"
+#include "../basic_protocol_service_fwd.hpp"
+#include "../detail/service_base.hpp"
+//#include "service_selector.hpp"
+
+namespace cgi {
+
+ /// The generic service class for basic_request<>s
+ /**
+ * Note: If the protocol is an asynchronous protocol, which means it requires
+ * access to a boost::asio::io_service instance, then this class becomes a
+ * model of the Service concept (**LINK**) and must only use the constructor
+ * which takes a ProtocolService (**LINK**). If the protocol isn't async then
+ * the class can be used without a ProtocolService.
+ */
+ template<typename Protocol>
+ class scgi_request_acceptor_service
+ : public detail::service_base<request_service<Protocol> >
+ {
+ public:
+ //typedef typename service_impl_type::impl_type impl_type;
+
+ typedef scgi_request_acceptor_impl implementation_type;
+ typedef typename implementation_type::protocol_type
+ protocol_type;
+ typedef basic_protocol_service<Protocol> protocol_service_type;
+
+ /// The unique service identifier
+ //static boost::asio::io_service::id id;
+ //explicit request_service()
+ //{
+ //}
+
+ scgi_request_acceptor_service(cgi::io_service& ios)
+ : detail::service_base<request_service<Protocol> >(ios)
+ {
+ }
+
+ /*
+ request_service(protocol_service_type& ps)
+ : detail::service_base<request_service<Protocol> >(ps.io_service())
+ {
+ }
+ */
+
+ void construct(implementation_type& impl)
+ {
+ }
+
+ void destroy(implementation_type& impl)
+ {
+ }
+
+ void shutdown_service()
+ {
+ }
+
+ boost::system::error_code& accept(implementation_type& impl
+ , boost::system::error_code& ec)
+ {
+
+ }
+
+ template<typename Handler>
+ void async_accept(implementation_type& impl, Handler handler)
+ {
+
+ }
+ };
+
+} // namespace cgi
+
+#include "../detail/pop_options.hpp"
+
+#endif // CGI_REQUEST_SERVICE_HPP_INCLUDED

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/request_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/request_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,65 @@
+// -- scgi/request_impl.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_SCGI_REQUEST_IMPL_HPP_INCLUDED__
+#define CGI_SCGI_REQUEST_IMPL_HPP_INCLUDED__
+
+#include <boost/shared_ptr.hpp>
+
+#include "../map.hpp"
+#include "../role_type.hpp"
+#include "../status_type.hpp"
+#include "../http/status_code.hpp"
+#include "../connections/tcp_socket.hpp"
+
+namespace cgi {
+
+ class scgi_request_impl
+ {
+ public:
+ typedef cgi::map map_type;
+ typedef tcp_connection connection_type;
+ typedef connection_type::pointer connection_ptr;
+
+ scgi_request_impl()
+ : stdin_parsed_(false)
+ , http_status_(http::ok)
+ , request_status_(unloaded)
+ {
+ }
+
+ ~scgi_request_impl()
+ {
+ }
+
+ connection_ptr connection()
+ {
+ return connection_;
+ }
+
+ private:
+ friend class scgi_service_impl;
+
+ connection_ptr connection_;
+
+ bool stdin_parsed_;
+ http::status_code http_status_;
+ status_type request_status_;
+
+ map_type env_vars_;
+ map_type get_vars_;
+ map_type post_vars_;
+ map_type cookie_vars_;
+
+ std::string null_str_;
+
+ };
+
+} // namespace cgi
+
+#endif // CGI_SCGI_REQUEST_IMPL_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/request_service.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/request_service.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,242 @@
+// -- scgi/request_service.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_SCGI_REQUEST_SERVICE_HPP_INCLUDED__
+#define CGI_SCGI_REQUEST_SERVICE_HPP_INCLUDED__
+
+#include <boost/system/error_code.hpp>
+
+#include "request_impl.hpp"
+#include "../map.hpp"
+#include "../tags.hpp"
+#include "../role_type.hpp"
+#include "../io_service.hpp"
+#include "../detail/throw_error.hpp"
+#include "../detail/service_base.hpp"
+#include "../detail/extract_params.hpp"
+
+namespace cgi {
+
+ class scgi_request_service
+ : public detail::service_base<scgi_request_service>
+ {
+ public:
+ typedef tags::scgi protocol_type;
+ typedef scgi_request_impl implementation_type;
+ typedef cgi::map map_type;
+
+ scgi_request_service(cgi::io_service& ios)
+ : detail::service_base<scgi_request_service>(ios)
+ , io_service_(ios)
+ {
+ }
+
+ ~scgi_request_service()
+ {
+ }
+
+ void construct(implementation_type& impl)
+ {
+ impl.connection()
+ = implementation_type::connection_type::create(this->io_service());
+ }
+
+ void destroy(implementation_type& impl)
+ {
+ //impl.set_state(aborted);
+ }
+
+ boost::system::error_code& load(implementation_type& impl, bool parse_stdin
+ , boost::system::error_code& ec)
+ {
+ const std::string& request_method = meta_env(impl, "REQUEST_METHOD", ec);
+ if (request_method == "GET")
+ if (parse_get_vars(impl, ec))
+ return ec;
+ else
+ if (request_method == "POST" && parse_stdin)
+ if (parse_post_vars(impl, ec))
+ return ec;
+
+ parse_cookie_vars(impl, ec);
+ return ec;
+ }
+
+ template<typename MutableBufferSequence>
+ std::size_t read_some(implementation_type& impl
+ , const MutableBufferSequence& buf
+ , boost::system::error_code& ec)
+ {
+ std::size_t s = impl.connection()->read_some(buf, ec);
+ return s;
+ }
+
+ template<typename ConstBufferSequence>
+ std::size_t write_some(implementation_type& impl
+ , const ConstBufferSequence& buf
+ , boost::system::error_code& ec)
+ {
+ return impl.connection()->write_some(buf, ec);
+ }
+
+ //template<typename VarType> map_type& var(implementation_type&) const;
+
+ std::string meta_get(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.get_vars_, name, ec);
+ }
+
+ map_type& meta_get(implementation_type& impl)
+ {
+ return impl.get_vars_;
+ }
+
+ /// Find the post meta-variable matching name
+ /**
+ * @param greedy This determines whether more data can be read to find
+ * the variable. The default is true to cause least surprise in the common
+ * case of having not parsed any of the POST data.
+
+ -----------------------------------------------
+ Should this return a pair of iterators instead?
+ What about url_decoding?
+ -----------------------------------------------
+
+ */
+ std::string meta_post(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec
+ , bool greedy = true)
+ {
+ const std::string& val = var(impl.post_vars_, name, ec);
+ if (val.empty() && greedy && !ec)
+ {
+
+ }
+
+ return val;
+ }
+
+ map_type& meta_post(implementation_type& impl)
+ {
+ return impl.post_vars_;
+ }
+
+
+ /// Find the cookie meta-variable matching name
+ std::string cookie(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.cookie_vars_, name, ec);
+ }
+
+ map_type& meta_cookie(implementation_type& impl)
+ {
+ return impl.cookie_vars_;
+ }
+
+
+ /// Find the environment meta-variable matching name
+ std::string meta_env(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.env_vars_, name, ec);
+ }
+
+
+ role_type get_role(implementation_type& impl)
+ {
+ return responder;
+ }
+
+ protected:
+ /// Extract the var value from
+ std::string var(map_type& meta_data, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ /* Alt:
+ if ((typename map_type::iterator pos = meta_data.find(name))
+ != meta_data.end())
+ {
+ return *pos;
+ }
+ return std::string();
+ **/
+
+ if( meta_data.find(name) != meta_data.end() )
+ return meta_data[name];
+ return "";
+ }
+
+ /// Read and parse the cgi GET meta variables
+ boost::system::error_code&
+ parse_get_vars(implementation_type& impl, boost::system::error_code& ec)
+ {
+ detail::extract_params(meta_env(impl, "QUERY_STRING", ec)
+ , impl.get_vars_
+ , boost::char_separator<char>
+ ("", "=&", boost::keep_empty_tokens)
+ , ec);
+
+ return ec;
+ }
+
+ /// 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)
+ {
+ // Make sure this function hasn't already been called
+ //BOOST_ASSERT( impl.cookie_vars_.empty() );
+
+ std::string vars = meta_env(impl, "HTTP_COOKIE", ec);
+ if (vars.empty())
+ return ec;
+
+ detail::extract_params(meta_env(impl, "HTTP_COOKIE", ec)
+ , impl.cookie_vars_
+ , boost::char_separator<char>
+ ("", "=&", boost::keep_empty_tokens)
+ , ec);
+
+ return ec;
+ }
+
+ /// Read and parse the cgi POST meta variables (greedily)
+ template<typename RequestImpl>
+ boost::system::error_code&
+ parse_post_vars(implementation_type& impl, boost::system::error_code& ec)
+ {
+ // Make sure this function hasn't already been called
+ //BOOST_ASSERT( impl.post_vars_.empty() );
+
+ //# error "Not implemented"
+
+ if (impl.stdin_parsed_)
+ {
+ }
+
+ return ec;
+ }
+
+ /// Read and parse a single cgi POST meta variable (greedily)
+ template<typename RequestImpl>
+ boost::system::error_code&
+ parse_one_post_var(implementation_type& impl, boost::system::error_code& ec)
+ {
+ //# error "Not implemented"
+ return ec;
+ }
+
+ private:
+ cgi::io_service& io_service_;
+ };
+
+} // namespace cgi
+
+#endif // CGI_SCGI_REQUEST_SERVICE_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/service.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/service.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,21 @@
+// -- scgi/service.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_SCGI_SERVICE_HPP_INCLUDED__
+#define CGI_SCGI_SERVICE_HPP_INCLUDED__
+
+#include "../tags.hpp"
+#include "../basic_protocol_service.hpp"
+
+namespace cgi {
+
+ typedef basic_protocol_service<tags::scgi> scgi_service;
+
+} // namespace cgi
+
+#endif // CGI_SCGI_SERVICE_HPP_INCLUDED__

Added: sandbox/SOC/2007/cgi/boost/cgi/scgi/service_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/cgi/boost/cgi/scgi/service_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
@@ -0,0 +1,242 @@
+// -- scgi/service_impl.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_SCGI_SERVICE_IMPL_HPP_INCLUDED__
+#define CGI_SCGI_SERVICE_IMPL_HPP_INCLUDED__
+
+#include <boost/system/error_code.hpp>
+
+#include "request_impl.hpp"
+#include "../map.hpp"
+#include "../tags.hpp"
+#include "../role_type.hpp"
+#include "../io_service.hpp"
+#include "../detail/throw_error.hpp"
+#include "../detail/service_base.hpp"
+#include "../detail/extract_params.hpp"
+
+namespace cgi {
+
+ class scgi_request_service_impl
+ : public detail::service_base<scgi_service_impl>
+ {
+ public:
+ typedef tags::scgi protocol_type;
+ typedef scgi_request_impl implementation_type;
+ typedef cgi::map map_type;
+
+ scgi_request_service_impl(cgi::io_service& ios)
+ : detail::service_base<scgi_request_service_impl>(ios)
+ , io_service_(ios)
+ {
+ }
+
+ ~scgi_request_service_impl()
+ {
+ }
+
+ void construct(implementation_type& impl)
+ {
+ impl.connection()
+ = implementation_type::connection_type::create(this->io_service());
+ }
+
+ void destroy(implementation_type& impl)
+ {
+ //impl.set_state(aborted);
+ }
+
+ boost::system::error_code& load(implementation_type& impl, bool parse_stdin
+ , boost::system::error_code& ec)
+ {
+ const std::string& request_method = meta_env(impl, "REQUEST_METHOD", ec);
+ if (request_method == "GET")
+ if (parse_get_vars(impl, ec))
+ return ec;
+ else
+ if (request_method == "POST" && parse_stdin)
+ if (parse_post_vars(impl, ec))
+ return ec;
+
+ parse_cookie_vars(impl, ec);
+ return ec;
+ }
+
+ template<typename MutableBufferSequence>
+ std::size_t read_some(implementation_type& impl
+ , const MutableBufferSequence& buf
+ , boost::system::error_code& ec)
+ {
+ std::size_t s = impl.connection()->read_some(buf, ec);
+ return s;
+ }
+
+ template<typename ConstBufferSequence>
+ std::size_t write_some(implementation_type& impl
+ , const ConstBufferSequence& buf
+ , boost::system::error_code& ec)
+ {
+ return impl.connection()->write_some(buf, ec);
+ }
+
+ //template<typename VarType> map_type& var(implementation_type&) const;
+
+ std::string meta_get(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.get_vars_, name, ec);
+ }
+
+ map_type& meta_get(implementation_type& impl)
+ {
+ return impl.get_vars_;
+ }
+
+ /// Find the post meta-variable matching name
+ /**
+ * @param greedy This determines whether more data can be read to find
+ * the variable. The default is true to cause least surprise in the common
+ * case of having not parsed any of the POST data.
+
+ -----------------------------------------------
+ Should this return a pair of iterators instead?
+ What about url_decoding?
+ -----------------------------------------------
+
+ */
+ std::string meta_post(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec
+ , bool greedy = true)
+ {
+ const std::string& val = var(impl.post_vars_, name, ec);
+ if (val.empty() && greedy && !ec)
+ {
+
+ }
+
+ return val;
+ }
+
+ map_type& meta_post(implementation_type& impl)
+ {
+ return impl.post_vars_;
+ }
+
+
+ /// Find the cookie meta-variable matching name
+ std::string cookie(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.cookie_vars_, name, ec);
+ }
+
+ map_type& meta_cookie(implementation_type& impl)
+ {
+ return impl.cookie_vars_;
+ }
+
+
+ /// Find the environment meta-variable matching name
+ std::string meta_env(implementation_type& impl, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ return var(impl.env_vars_, name, ec);
+ }
+
+
+ role_type get_role(implementation_type& impl)
+ {
+ return responder;
+ }
+
+ protected:
+ /// Extract the var value from
+ std::string var(map_type& meta_data, const std::string& name
+ , boost::system::error_code& ec)
+ {
+ /* Alt:
+ if ((typename map_type::iterator pos = meta_data.find(name))
+ != meta_data.end())
+ {
+ return *pos;
+ }
+ return std::string();
+ **/
+
+ if( meta_data.find(name) != meta_data.end() )
+ return meta_data[name];
+ return "";
+ }
+
+ /// Read and parse the cgi GET meta variables
+ boost::system::error_code&
+ parse_get_vars(implementation_type& impl, boost::system::error_code& ec)
+ {
+ detail::extract_params(meta_env(impl, "QUERY_STRING", ec)
+ , impl.get_vars_
+ , boost::char_separator<char>
+ ("", "=&", boost::keep_empty_tokens)
+ , ec);
+
+ return ec;
+ }
+
+ /// 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)
+ {
+ // Make sure this function hasn't already been called
+ //BOOST_ASSERT( impl.cookie_vars_.empty() );
+
+ std::string vars = meta_env(impl, "HTTP_COOKIE", ec);
+ if (vars.empty())
+ return ec;
+
+ detail::extract_params(meta_env(impl, "HTTP_COOKIE", ec)
+ , impl.cookie_vars_
+ , boost::char_separator<char>
+ ("", "=&", boost::keep_empty_tokens)
+ , ec);
+
+ return ec;
+ }
+
+ /// Read and parse the cgi POST meta variables (greedily)
+ template<typename RequestImpl>
+ boost::system::error_code&
+ parse_post_vars(implementation_type& impl, boost::system::error_code& ec)
+ {
+ // Make sure this function hasn't already been called
+ //BOOST_ASSERT( impl.post_vars_.empty() );
+
+ //# error "Not implemented"
+
+ if (impl.stdin_parsed_)
+ {
+ }
+
+ return ec;
+ }
+
+ /// Read and parse a single cgi POST meta variable (greedily)
+ template<typename RequestImpl>
+ boost::system::error_code&
+ parse_one_post_var(implementation_type& impl, boost::system::error_code& ec)
+ {
+ //# error "Not implemented"
+ return ec;
+ }
+
+ private:
+ cgi::io_service& io_service_;
+ };
+
+} // namespace cgi
+
+#endif // CGI_SCGI_SERVICE_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/service_impl/acgi_service_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/service_impl/acgi_service_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,69 +0,0 @@
-// -- acgi_service_impl.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_ACGI_SERVICE_IMPL_HPP_INCLUDED__
-#define CGI_ACGI_SERVICE_IMPL_HPP_INCLUDED__
-
-#include <boost/asio/io_service.hpp>
-#include "../tags.hpp"
-#include "../io_service.hpp"
-#include "../map.hpp"
-#include "../request_impl/acgi_request_impl.hpp"
-#include "cgi_service_impl_base.hpp"
-#include "../detail/service_base.hpp"
-#include "../io_service.hpp"
-#include "../detail/extract_params.hpp"
-#include "../connections/async_stdio.hpp"
-
-namespace cgi {
-
- //template<typename ProtocolService>
- class acgi_service_impl
- //: public boost::asio::io_service::service
- : public cgi_service_impl_base<acgi_request_impl>
- , public detail::service_base<acgi_service_impl>
- {
- public:
- typedef acgi_service_impl type;
- typedef acgi_request_impl impl_type;
- typedef cgi::map map_type;
- typedef tags::acgi protocol_type;
- typedef cgi_service protocol_service_type;
-
- /// The unique service identifier
- // static boost::asio::io_service::id id;
-
- acgi_service_impl(cgi::io_service& ios)
- : detail::service_base<acgi_service_impl>(ios)
- {
- }
-
- acgi_service_impl(protocol_service_type& protocol_service)
- //: boost::asio::io_service::service(protocol_service.io_service())
- : detail::service_base<acgi_service_impl>(protocol_service.io_service())
- // , cgi_service_impl_base<acgi_request_impl>()
- {
- }
-
- void shutdown_service()
- {
- }
- void construct(implementation_type& impl)
- {
- impl.connection_ = async_stdio_connection::create(io_service());
- }
-
- void destroy(implementation_type& impl)
- {
- }
-
- };
-
-} // namespace cgi
-
-#endif // CGI_ASYNC_CGI_SERVICE_IMPL_HPP_INCLUDED__

Deleted: sandbox/SOC/2007/cgi/boost/cgi/service_impl/cgi_service_impl.hpp
==============================================================================
--- sandbox/SOC/2007/cgi/boost/cgi/service_impl/cgi_service_impl.hpp 2007-08-10 14:33:04 EDT (Fri, 10 Aug 2007)
+++ (empty file)
@@ -1,62 +0,0 @@
-// -- cgi_service_impl.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_CGI_SERVICE_IMPL_HPP_INCLUDED__
-#define CGI_CGI_SERVICE_IMPL_HPP_INCLUDED__
-
-#include <string>
-#include <map>
-#include <boost/system/error_code.hpp>
-
-//#include "../detail/extract_params.hpp"
-//#include "../role_type.hpp"
-//#include "../http/status_code.hpp"
-//#include "../map.hpp"
-//#include "../request_impl/cgi_request_impl.hpp"
-#include "cgi_service_impl_base.hpp"
-#include "../detail/extract_params.hpp"
-#include "../request_impl/cgi_request_impl.hpp"
-#include "../connections/stdio.hpp"
-
-namespace cgi {
-
- //class cgi_request_impl;
-
- //template<typename RequestImplType>
- class cgi_service_impl
- : public cgi_service_impl_base<cgi_request_impl>
- {
- typedef ::cgi::map map_type;
- public:
- typedef cgi_request_impl impl_type;
- //typedef cgi_service_impl_base<cgi_request_impl> base;
-
- cgi_service_impl()
- : cgi_service_impl_base<cgi_request_impl>()
- {
- }
-
- template<typename T>
- cgi_service_impl(T&)
- : cgi_service_impl_base<cgi_request_impl>()
- {
- }
-
- void construct(implementation_type& impl)
- {
- impl.connection_ = stdio_connection::create();
- }
-
- void destroy(implementation_type& impl)
- {
- }
- };
-
-} // namespace cgi
-
-#endif // CGI_CGI_SERVICE_IMPL_HPP_INCLUDED__


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk