00001 /*************************************************************************** 00002 * module.h 00003 * This file is part of the KDE project 00004 * copyright (C)2004-2005 by Sebastian Sauer (mail@dipe.org) 00005 * 00006 * This program is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this program; see the file COPYING. If not, write to 00016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 * Boston, MA 02110-1301, USA. 00018 ***************************************************************************/ 00019 00020 #ifndef KROSS_API_MODULE_H 00021 #define KROSS_API_MODULE_H 00022 00023 #include <qstring.h> 00024 #include <kdebug.h> 00025 00026 #include "class.h" 00027 00028 namespace Kross { namespace Api { 00029 00030 /** 00031 * The Module class. Modules are managed in the \a Manager singleton 00032 * instance and are implemented as in scripting plugins as main 00033 * entry point to load and work with them. 00034 */ 00035 class Module : public Class<Module> 00036 { 00037 public: 00038 00039 /** 00040 * Shared pointer to implement reference-counting. 00041 */ 00042 typedef KSharedPtr<Module> Ptr; 00043 00044 /** 00045 * Constructor. 00046 * 00047 * \param name The name of this module. 00048 * Each module needs a unique name cause 00049 * the application using Kross identifies 00050 * modules with there names. 00051 */ 00052 explicit Module(const QString& name) 00053 : Class<Module>(name) 00054 { 00055 kdDebug() << QString("Kross::Api::Module %1 created").arg(name) << endl; 00056 } 00057 00058 /** 00059 * Destructor. 00060 */ 00061 virtual ~Module() 00062 { 00063 kdDebug() << QString("Kross::Api::Module %1 destroyed").arg(getName()) << endl; 00064 } 00065 00066 /** 00067 * Method to load from \a Kross::Api::Object inherited classes 00068 * this module implements from within other modules. 00069 */ 00070 virtual Kross::Api::Object::Ptr get(const QString& /*name*/, void* /*pointer*/ = 0) 00071 { 00072 return 0; 00073 } 00074 00075 }; 00076 00077 00078 }} 00079 00080 #endif 00081
1.4.6