Commit 592f37fd authored by Paul Asmuth's avatar Paul Asmuth
Browse files

httphandler

parent 59cf156c
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -8,8 +8,9 @@ project(fnordmetric)
set(FNORDMETRIC_SOURCES
    stage/src/fnordmetric/ev/acceptor.cc
    stage/src/fnordmetric/ev/eventloop.cc
    stage/src/fnordmetric/ev/httpserver.cc
    stage/src/fnordmetric/ev/httpinputstream.cc
    stage/src/fnordmetric/http/httpinputstream.cc
    stage/src/fnordmetric/http/httprequest.cc
    stage/src/fnordmetric/http/httpserver.cc
    stage/src/fnordmetric/util/exceptionhandler.cc
    stage/src/fnordmetric/util/format.cc
    stage/src/fnordmetric/util/inputstream.cc
@@ -55,7 +56,8 @@ set(FNORDMETRIC_QUERY_SOURCES
set(FNORDMETRIC_CLI_SOURCES
    ${FNORDMETRIC_QUERY_SOURCES}
    stage/src/fnordmetric/cli/cli.cc
    stage/src/fnordmetric/cli/flagparser.cc)
    stage/src/fnordmetric/cli/flagparser.cc
    stage/src/fnordmetric/web/webinterface.cc)

include_directories(stage/src)
set(CMAKE_CXX_FLAGS "-std=c++0x -stdlib=libc++")
+4 −2
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@
#include <fnordmetric/util/runtimeexception.h>
#include <fnordmetric/ev/eventloop.h>
#include <fnordmetric/ev/acceptor.h>
#include <fnordmetric/ev/httpserver.h>
#include <fnordmetric/http/httpserver.h>
#include <fnordmetric/web/webinterface.h>

namespace fnordmetric {
namespace cli {
@@ -146,7 +147,8 @@ void CLI::execute(

    fnordmetric::ev::EventLoop ev_loop;
    fnordmetric::ev::Acceptor acceptor(&ev_loop);
    fnordmetric::ev::ThreadedHTTPServer http(&thread_pool);
    fnordmetric::http::ThreadedHTTPServer http(&thread_pool);
    http.addHandler(fnordmetric::web::WebInterface::getHandler());
    acceptor.listen(flag_parser.getInt("web"), &http);
    ev_loop.loop();
  }
+9 −20
Original line number Diff line number Diff line
@@ -7,32 +7,21 @@
 * copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */

#ifndef _FNORDMETRIC_WEB_HTTPSTUB_H
#define _FNORDMETRIC_WEB_HTTPSTUB_H
#ifndef _FNORDMETRIC_HTTPHANDLER_H
#define _FNORDMETRIC_HTTPHANDLER_H
#include <fnordmetric/http/httprequest.h>
#include <fnordmetric/http/httpresponse.h>

namespace fnordmetric {
namespace web {

class HTTPStub {
public:

  class Request {
  public:
namespace http {

    virtual ~Request();

  };

  class Response {
class HTTPHandler {
public:

    virtual ~Response();

  };
  virtual bool handleHTTPRequest(
      HTTPRequest* request,
      HTTPResponse* response) = 0;

  virtual ~HTTPStub();
  virtual void onHTTPRequest(Request* request, Response* resp) = 0;
};

}
+2 −2
Original line number Diff line number Diff line
@@ -11,11 +11,11 @@
#include <stdio.h>
#include <string.h>
#include <string>
#include <fnordmetric/ev/httpinputstream.h>
#include <fnordmetric/http/httpinputstream.h>
#include <fnordmetric/util/runtimeexception.h>

namespace fnordmetric {
namespace ev {
namespace http {

HTTPInputStream::HTTPInputStream(
    util::InputStream* input_stream) :
+3 −9
Original line number Diff line number Diff line
@@ -7,15 +7,15 @@
 * copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */
#ifndef __FNORDMETRIC_3RDPARTY_HTTPPARSER_H
#define __FNORDMETRIC_3RDPARTY_HTTPPARSER_H
#ifndef __FNORDMETRIC_HTTPINPUTSTREAM_H
#define __FNORDMETRIC_HTTPINPUTSTREAM_H
#include <vector>
#include <string>
#include <utility>
#include <fnordmetric/util/inputstream.h>

namespace fnordmetric {
namespace ev {
namespace http {

class HTTPInputStream {
public:
@@ -28,12 +28,6 @@ public:
    HTTP_STATE_BODY
  };

  enum kHTTPMethod {
    HTTP_METHOD_HEAD,
    HTTP_METHOD_GET,
    HTTP_METHOD_POST,
  };

  /**
   * @param input_stream the input stream -- does not transfer ownership
   */
Loading