diff -r 2c9d3aa5bea2 -r 20bd089f4aaa controlpanel/controlpanel_plat/inc/logoutputfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/controlpanel/controlpanel_plat/inc/logoutputfactory.h Thu Apr 01 03:23:37 2010 +0800 @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0"" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef LOGOUTPUTFACTORY_H +#define LOGOUTPUTFACTORY_H + +class LogOutput; +class QVariant; +class QString; + +#include +#include + +class LOGGER_EXPORT LogOutputFactory +{ +public: + typedef LogOutput* (*CREATE_ENTRY)(); + static LogOutput *createLogOutput(const QString &name); + static LogOutput *createLogOutput(const QString &name,const QHash &properties); + static void addCreateLogOutputEntry(const QString &name,CREATE_ENTRY entry); +}; + +class LogOutputCreateEntryRegister +{ +public: + LogOutputCreateEntryRegister(const QString &name,LogOutputFactory::CREATE_ENTRY entry) { + LogOutputFactory::addCreateLogOutputEntry(name,entry); + } +}; + +#define REGISTER_OUTPUT_LOG(name,Class) \ + static LogOutput *create##Class() { \ + LogOutput *output = new Class(); \ + output->setName(name); \ + return output; \ + } \ + LogOutputCreateEntryRegister the##Class##EntryRegister(name,create##Class); + +#endif //LOGOUTPUTFACTORY_H