Fawkes API  Fawkes Development Version
webview_reqproc.h
00001 
00002 /***************************************************************************
00003  *  webview_reqproc.h - Webview ROS request processor
00004  *
00005  *  Created: Fri May 06 17:23:14 2011
00006  *  Copyright  2006-2011  Tim Niemueller [www.niemueller.de]
00007  *
00008  ****************************************************************************/
00009 
00010 /*  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU Library General Public License for more details.
00019  *
00020  *  Read the full text in the LICENSE.GPL file in the doc directory.
00021  */
00022 
00023 #ifndef __PLUGINS_ROS_WEBVIEW_REQPROC_H_
00024 #define __PLUGINS_ROS_WEBVIEW_REQPROC_H_
00025 
00026 #include <webview/request_processor.h>
00027 
00028 #include <core/utils/lockptr.h>
00029 #include <ros/ros.h>
00030 #include <string>
00031 
00032 namespace fawkes {
00033   class Logger;
00034 }
00035 
00036 class ROSWebviewRequestProcessor
00037 : public fawkes::WebRequestProcessor
00038 {
00039  public:
00040   ROSWebviewRequestProcessor(fawkes::LockPtr<ros::NodeHandle> nh,
00041                              fawkes::Logger *logger,
00042                              std::string &baseurl, std::string &srv_name);
00043   virtual ~ROSWebviewRequestProcessor();
00044 
00045   virtual fawkes::WebReply * process_request(const char *url,
00046                                              const char *method,
00047                                              const char *version,
00048                                              const char *upload_data,
00049                                              size_t *upload_data_size,
00050                                              void **session_data);
00051  private:
00052   fawkes::Logger    *logger;
00053   std::string        __logcomp;
00054 
00055   std::string        __baseurl;
00056   std::string        __srv_name;
00057   ros::ServiceClient __srv_client;
00058 };
00059 
00060 
00061 #endif