kartsdispatcher.cc

00001     /*
00002 
00003     Copyright (C) 2001 Nikolas Zimmermann <wildfox@kde.org>
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
00009   
00010     This library 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 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018     Boston, MA 02110-1301, USA.
00019 
00020     */
00021 
00022 #include <qiomanager.h>
00023 #include <dispatcher.h>
00024 
00025 #include <kdebug.h>
00026 
00027 #include "kartsdispatcher.moc"
00028 
00029 int KArtsDispatcher::m_refCount = 0;
00030 Arts::Dispatcher *KArtsDispatcher::artsDispatcher = 0;
00031 Arts::QIOManager *KArtsDispatcher::artsQIOManager = 0;
00032 
00033 KArtsDispatcher::KArtsDispatcher(QObject *parent, const char *name)
00034     : QObject(parent, name)
00035 {
00036     m_refCount++;
00037     if(artsDispatcher == 0)
00038     {
00039         if (!Arts::Dispatcher::the()) // only if no Arts::Dispatcher is created yet
00040         {
00041             artsQIOManager = new Arts::QIOManager();
00042             artsDispatcher = new Arts::Dispatcher(artsQIOManager);
00043         }
00044         else
00045             kdWarning(400) << "An Arts::Dispatcher() instance exists already while trying to instantiate KArtsDispatcher!" << endl;
00046     }
00047 }
00048 
00049 KArtsDispatcher::~KArtsDispatcher()
00050 {
00051     m_refCount--;
00052     if(m_refCount == 0)
00053     {
00054         delete KArtsDispatcher::artsDispatcher;
00055         artsDispatcher = 0;
00056 
00057         delete KArtsDispatcher::artsQIOManager;
00058         artsQIOManager = 0;
00059     }
00060 }
KDE Home | KDE Accessibility Home | Description of Access Keys