summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS/server/HTTP_Response.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS/server/HTTP_Response.h')
-rw-r--r--ACE/apps/JAWS/server/HTTP_Response.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/server/HTTP_Response.h b/ACE/apps/JAWS/server/HTTP_Response.h
new file mode 100644
index 00000000000..2bd8d21fbc0
--- /dev/null
+++ b/ACE/apps/JAWS/server/HTTP_Response.h
@@ -0,0 +1,80 @@
+/* -*- c++ -*- */
+// Hey, Emacs! This is a C++ file!
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// jaws
+//
+// = FILENAME
+// HTTP_Response.h
+//
+// = AUTHOR
+// James Hu
+//
+// ============================================================================
+
+#ifndef HTTP_RESPONSE_H
+#define HTTP_RESPONSE_H
+
+class JAWS_IO;
+class HTTP_Request;
+
+class HTTP_Response
+ // = TITLE
+ // Abstraction for HTTP responses.
+ //
+ // = DESCRIPTION
+ // Provides an encapsulation of responses to HTTP requests.
+ // For instance, given an HTTP GET request, it will produce
+ // header and body suitable for returning to the client who made
+ // the request.
+{
+public:
+ HTTP_Response (JAWS_IO &io,
+ HTTP_Request &request);
+ HTTP_Response (HTTP_Request &request, JAWS_IO &io);
+ ~HTTP_Response (void);
+
+ void process_request (void);
+ // This is called by the handler to initiate a response.
+
+ void error_response (int status,
+ const char *log_message);
+ // This returns an error response for cases where there is a problem
+ // with the request, logging the log_message.
+
+private:
+
+ void normal_response (void);
+ // Called by process_request when the request is a normal request.
+
+ void cgi_response (void);
+ // Called by process_request when the request is a cgi request.
+
+private:
+
+ static void process_request (HTTP_Response &response);
+ // static version of process_request, just in case.
+
+ void build_headers (void);
+ // creates the appropriate header information for responses.
+
+private:
+ JAWS_IO &io_;
+ HTTP_Request &request_;
+ // The IO and Request objects associated with this re
+
+#if defined (ACE_JAWS_BASELINE)
+ char *HTTP_HEADER;
+#else
+ const char *HTTP_HEADER;
+#endif
+ const char *HTTP_TRAILER;
+ int HTTP_HEADER_LENGTH;
+ int HTTP_TRAILER_LENGTH;
+ // HTTP Headers and trailers.
+};
+
+#endif /* HTTP_RESPONSE_H */