defuze.me  Client
plugin.hpp
00001 /**************************************************************************
00002 ** defuze.me Epitech Innovative Project
00003 **
00004 ** Copyright 2010-2011
00005 **   Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard
00006 **   Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier
00007 **
00008 ** All rights reserved.
00009 **************************************************************************/
00010 
00011 class Plugin;
00012 
00013 #ifndef PLUGIN_HPP
00014 #define PLUGIN_HPP
00015 
00016 #include <QObject>
00017 #include "cores.hpp"
00018 #include "plugins.hpp"
00019 #include "guicore.hpp"
00020 #include "dbcore.hpp"
00021 #include "networkcore.hpp"
00022 #include "audiocore.hpp"
00023 
00032 class Plugin
00033 {
00034     friend class Plugins;
00035 public:
00036     virtual         ~Plugin();
00039     virtual void    init()=0;
00042     virtual void    aboutToQuit();
00043 
00044 protected:
00046     explicit        Plugin();
00047 
00048     Cores           *cores;
00049     Plugins         *plugins;
00050 
00051 private:
00055     void            setReferences(Cores &c, Plugins &p);
00056 };
00057 
00058 #endif // PLUGIN_HPP