summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS3/http/HTTP_Service_Handler.h')
-rw-r--r--ACE/apps/JAWS3/http/HTTP_Service_Handler.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/ACE/apps/JAWS3/http/HTTP_Service_Handler.h b/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
new file mode 100644
index 00000000000..3b469593dcb
--- /dev/null
+++ b/ACE/apps/JAWS3/http/HTTP_Service_Handler.h
@@ -0,0 +1,65 @@
+/* -*- c++ -*- */
+// $Id$
+
+#ifndef JAWS_HTTP_SERVICE_HANDLER_H
+#define JAWS_HTTP_SERVICE_HANDLER_H
+
+#include "ace/Synch.h"
+#include "ace/Acceptor.h"
+#include "ace/Svc_Handler.h"
+#include "ace/SOCK_Acceptor.h"
+
+#include "jaws3/Protocol_Handler.h"
+
+#include "HTTP_Data.h"
+
+class JAWS_HTTP_Service_Handler
+ : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+ , public JAWS_Protocol_Handler
+// = TITLE
+// An HTTP Server service handler.
+//
+// = DESCRIPTION
+// This class is responsible for initializing the JAWS_Protocol_Handler
+// with the correct state and data so that the HTTP Server can
+// be properly serviced by the underlying framework.
+//
+// This class should perhaps be factored out into a template so that
+// there is less programming effort.
+{
+public:
+
+ JAWS_HTTP_Service_Handler (void);
+
+ int open (void *);
+
+ int close (unsigned long);
+
+private:
+
+ JAWS_HTTP_Data data_;
+
+};
+
+
+class ACE_Svc_Export JAWS_HTTP_Acceptor
+ : public ACE_Acceptor<JAWS_HTTP_Service_Handler, ACE_SOCK_ACCEPTOR>
+// = TITLE
+// An HTTP Server acceptor.
+//
+// = DESCRIPTION
+// The role of this class is to serve the acceptor role in the
+// acceptor pattern. It interacts with the Reactor to perform
+// accepts asynchronously. Upon completion, the service handler
+// is created.
+{
+public:
+
+ int init (int argc, ACE_TCHAR *argv[]);
+
+};
+
+ACE_SVC_FACTORY_DECLARE (JAWS_HTTP_Acceptor)
+
+
+#endif /* JAWS_HTTP_SERVICE_HANDLER_H */