Fawkes API  Fawkes Development Version
run.h
00001 
00002 /***************************************************************************
00003  *  run.h - Fawkes run functions
00004  *
00005  *  Created: Wed May 04 23:23:23 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. A runtime exception applies to
00014  *  this software (see LICENSE.GPL_WRE file mentioned below for details).
00015  *
00016  *  This program is distributed in the hope that it will be useful,
00017  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  *  GNU Library General Public License for more details.
00020  *
00021  *  Read the full text in the LICENSE.GPL_WRE file in the doc directory.
00022  */
00023 
00024 #ifndef __LIBS_BASEAPP_RUN_H_
00025 #define __LIBS_BASEAPP_RUN_H_
00026 
00027 #include <baseapp/init_options.h>
00028 
00029 namespace fawkes {
00030   class ArgumentParser;
00031   class MultiLogger;
00032   class NetworkLogger;
00033   class BlackBoard;
00034   class SQLiteConfiguration;
00035   class FawkesMainThread;
00036   class PluginManager;
00037   class AspectManager;
00038   class ThreadManager;
00039   class FawkesNetworkManager;
00040   class Clock;
00041   class ConfigNetworkHandler;
00042   class PluginNetworkHandler;
00043 
00044   namespace runtime {
00045 #if 0 /* just to make Emacs auto-indent happy */
00046   }
00047 }
00048 #endif
00049 
00050 extern ArgumentParser       *argument_parser;
00051 extern FawkesMainThread     *main_thread;
00052 extern MultiLogger          *logger;
00053 extern NetworkLogger        *network_logger;
00054 extern BlackBoard           *blackboard;
00055 extern SQLiteConfiguration  *config;
00056 extern Clock                *clock;
00057 extern PluginManager        *plugin_manager;
00058 extern AspectManager        *aspect_manager;
00059 extern ThreadManager        *thread_manager;
00060 extern FawkesNetworkManager *network_manager;
00061 extern ConfigNetworkHandler *nethandler_config;
00062 extern PluginNetworkHandler *nethandler_plugin;
00063 
00064 int  init(int argc, char **argv);
00065 int  init(InitOptions options);
00066 void run();
00067 void cleanup();
00068 void quit();
00069 
00070 void print_usage(const char *progname);
00071 
00072 } // end namespace runtime
00073 } // end namespace fawkes
00074 
00075 
00076 #endif