Please note that active projects have migrated to https://github.com/fawkesrobotics.

metrics: adapt to webview 2.0
authorTim Niemueller <niemueller@kbsg.rwth-aachen.de>
Tue, 29 May 2018 15:45:22 +0000 (17:45 +0200)
committerTim Niemueller <niemueller@kbsg.rwth-aachen.de>
Tue, 29 May 2018 15:45:22 +0000 (17:45 +0200)
src/plugins/metrics/metrics_processor.cpp
src/plugins/metrics/metrics_processor.h
src/plugins/metrics/metrics_thread.cpp

index 252f077..aba7454 100644 (file)
@@ -23,6 +23,7 @@
 #include "aspect/metrics_manager.h"
 
 #include <webview/page_reply.h>
+#include <webview/request.h>
 #include <logging/logger.h>
 
 #include <sstream>
@@ -61,6 +62,10 @@ MetricsRequestProcessor::~MetricsRequestProcessor()
 {
 }
 
+/** Process request.
+ * @param request incoming request
+ * @return web reply
+ */
 WebReply *
 MetricsRequestProcessor::process_request(const fawkes::WebRequest *request)
 {
index 1b3a7a7..02f8d4e 100644 (file)
@@ -3,7 +3,7 @@
  *  metrics_processor.h - Metrics exporter
  *
  *  Created: Sat May 06 19:46:38 2017 (German Open 2017)
- *  Copyright  2017  Tim Niemueller [www.niemueller.de]
+ *  Copyright  2017-2018  Tim Niemueller [www.niemueller.de]
  ****************************************************************************/
 
 /*  This program is free software; you can redistribute it and/or modify
 #ifndef __PLUGINS_METRICS_METRICS_PROCESSOR_H_
 #define __PLUGINS_METRICS_METRICS_PROCESSOR_H_
 
-#include <webview/request_processor.h>
-
 #include "protobuf/metrics.pb.h"
 
 namespace fawkes {
   class Logger;
   class MetricsManager;
+  class WebReply;
+  class WebRequest;
 }
 
-class MetricsRequestProcessor : public fawkes::WebRequestProcessor
+class MetricsRequestProcessor
 {
  public:
        MetricsRequestProcessor(fawkes::MetricsManager *manager,
@@ -40,7 +40,7 @@ class MetricsRequestProcessor : public fawkes::WebRequestProcessor
 
   virtual ~MetricsRequestProcessor();
 
-  virtual fawkes::WebReply * process_request(const fawkes::WebRequest *request);
+  fawkes::WebReply * process_request(const fawkes::WebRequest *request);
 
  private:
   fawkes::MetricsManager *  metrics_manager_;
index 918d4b0..ffe3c32 100644 (file)
@@ -32,6 +32,7 @@
 #include <utils/misc/string_split.h>
 
 #include <algorithm>
+#include <functional>
 #include <chrono>
 
 using namespace fawkes;
@@ -124,14 +125,15 @@ MetricsThread::init()
   metrics_suppliers_.push_back(this);
 
   req_proc_ = new MetricsRequestProcessor(this, logger, URL_PREFIX);
-  webview_url_manager->register_baseurl(URL_PREFIX, req_proc_);
-
+  webview_url_manager->add_handler(WebRequest::METHOD_GET, URL_PREFIX,
+                                        std::bind(&MetricsRequestProcessor::process_request,
+                                                  req_proc_, std::placeholders::_1));
 }
 
 void
 MetricsThread::finalize()
 {
-       webview_url_manager->unregister_baseurl(URL_PREFIX);
+       webview_url_manager->remove_handler(WebRequest::METHOD_GET, URL_PREFIX);
        delete req_proc_;
 }