(file) Return to WebServer.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / WebServer

  1 lawrence.luo 1.2 //%LICENSE////////////////////////////////////////////////////////////////
  2                  //
  3                  // Licensed to The Open Group (TOG) under one or more contributor license
  4                  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5                  // this work for additional information regarding copyright ownership.
  6                  // Each contributor licenses this file to you under the OpenPegasus Open
  7                  // Source License; you may not use this file except in compliance with the
  8                  // License.
  9                  //
 10                  // Permission is hereby granted, free of charge, to any person obtaining a
 11                  // copy of this software and associated documentation files (the "Software"),
 12                  // to deal in the Software without restriction, including without limitation
 13                  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14                  // and/or sell copies of the Software, and to permit persons to whom the
 15                  // Software is furnished to do so, subject to the following conditions:
 16                  //
 17                  // The above copyright notice and this permission notice shall be included
 18                  // in all copies or substantial portions of the Software.
 19                  //
 20                  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21                  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 lawrence.luo 1.2 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23                  // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24                  // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25                  // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26                  // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27                  //
 28                  //////////////////////////////////////////////////////////////////////////
 29                  //
 30                  //%/////////////////////////////////////////////////////////////////////////////
 31                  
 32                  #ifndef Pegasus_WebServer_h
 33                  #define Pegasus_WebServer_h
 34                  
 35                  #include <Pegasus/WebServer/Linkage.h>
 36                  #include <Pegasus/Common/HTTPMessage.h>
 37                  #include <Pegasus/Common/MessageQueue.h>
 38                  
 39                  #include <Pegasus/WebServer/WebProcessor.h>
 40                  #include <Pegasus/WebServer/WebRequest.h>
 41                  
 42                  
 43 lawrence.luo 1.2 PEGASUS_NAMESPACE_BEGIN
 44                  
 45                  
 46                  /**
 47                   *
 48                   * Entry point for requests not handled by any of the default handlers
 49                   * registered at class HTTPAuthenticationDelegator.
 50                   *
 51                   * Parses the httpMessages and passes the values of interest
 52                   * wrapped in a WebRequest-object to the WebProcessor which will generate the
 53                   * response. The response will be received by method handleResponse and send
 54                   * via the HTTPConnection to the requester.
 55                   */
 56                  class PEGASUS_WEBSERVER_LINKAGE WebServer : public MessageQueue
 57                  {
 58                  public:
 59                  
 60                      /**
 61                       *
 62                       */
 63                      WebServer();
 64 lawrence.luo 1.2 
 65                      /**
 66                       *
 67                       */
 68                      ~WebServer();
 69                  
 70                      /**
 71                       * Overridden for tracing purposes.
 72                       */
 73                      virtual void enqueue(Message* message);
 74                  
 75                      /**
 76                       * Dequeues enqueued messages.
 77                       */
 78                      virtual void handleEnqueue();
 79                  
 80                      /**
 81                       * Casts the message to an HTTPMessage.
 82                       */
 83                      virtual void handleEnqueue(Message* message);
 84                  
 85 lawrence.luo 1.2     /**
 86                       * Handles the HTTPMessage requests.
 87                       */
 88                      void handleHTTPMessage(HTTPMessage* httpMessage);
 89                  
 90                      /**
 91                       * Sends the HTTPMessage response to the requester.
 92                       */
 93                      void handleResponse(HTTPMessage* response);
 94                  
 95                  private:
 96                  
 97                      /**
 98                       * Processes the parsed requests and generates the response messages.
 99                       */
100                      WebProcessor _webProcessor;
101                  };
102                  
103                  PEGASUS_NAMESPACE_END
104                  
105                  #endif /* Pegasus_WebServer_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2