Fawkes API Fawkes Development Version

blackboard_processor.h

00001 
00002 /***************************************************************************
00003  *  blackboard_processor.h - Web request processor for BlackBoard info
00004  *
00005  *  Created: Thu Oct 23 16:08:10 2008
00006  *  Copyright  2006-2008  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_WEBVIEW_BLACKBOARD_PROCESSOR_H_
00024 #define __PLUGINS_WEBVIEW_BLACKBOARD_PROCESSOR_H_
00025 
00026 #include <webview/request_processor.h>
00027 
00028 #include <map>
00029 #include <string>
00030 
00031 namespace fawkes {
00032   class BlackBoard;
00033   class Interface;
00034 }
00035 
00036 class WebviewBlackBoardRequestProcessor : public fawkes::WebRequestProcessor
00037 {
00038  public:
00039   WebviewBlackBoardRequestProcessor(const char *baseurl,
00040                                 fawkes::BlackBoard *blackboard);
00041   virtual ~WebviewBlackBoardRequestProcessor();
00042 
00043   virtual fawkes::WebReply * process_request(const char *url,
00044                                              const char *method,
00045                                              const char *version,
00046                                              const char *upload_data,
00047                                              size_t *upload_data_size,
00048                                              void **session_data);
00049 
00050  private:
00051   char *__baseurl;
00052   size_t __baseurl_len;
00053   fawkes::BlackBoard *__blackboard;
00054 
00055   std::map<std::string, fawkes::Interface *> __interfaces;
00056   std::map<std::string, fawkes::Interface *>::iterator __ifi;
00057 
00058 };
00059 
00060 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends