diff -r 000000000000 -r 08ec8eefde2f traceservices/tracefw/ulogger/src/pluginframework/pluginallocator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/traceservices/tracefw/ulogger/src/pluginframework/pluginallocator.h Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,69 @@ +// Copyright (c) 2007-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: +// ULogger plug-in allocator header file +// +// + +/** + @file + @internalTechnology + @prototype +*/ + +#ifndef PLUGINALLOCATOR_H_ +#define PLUGINALLOCATOR_H_ + +#include +#include +#include "uloggeroutputplugin.h" +#include "uloggerinputplugin.h" + + +namespace Ulogger +{ + +/*!CPluginAllocator class. +*/ +class CPluginAllocator : public CBase + { +public: + IMPORT_C static CPluginAllocator* NewL(const TPtrC8& aOutputPluginName, const TPtrC8& aInputPluginName); + IMPORT_C static CPluginAllocator* NewLC(const TPtrC8& aOutputPluginName, const TPtrC8& aInputPluginName); + IMPORT_C ~CPluginAllocator(); + IMPORT_C void ConstructL(const TPtrC8& aOutputPluginName, const TPtrC8& aInputPluginName); + IMPORT_C MOutputPlugin* GetOutputPlugin(); + IMPORT_C MInputPlugin* GetInputPlugin(); + + /** + Requests a list of all available implementations which + satisfy this given interface in a ECOM framework + */ + IMPORT_C static void ListAllImplementationsL(RImplInfoPtrArray& aImplInfoArray); + +private: + CPluginAllocator(); + TInt CreateChannels(const TPtrC8& aOutputPluginName, const TPtrC8& aInputPluginName); + +private: + CPlugin *iOutputPluginBase; //output plugin instance + RLibrary iOutputLib; + TFileName iOutputLibName; + + CPlugin *iInputPluginBase; //input plugin instance + RLibrary iInputLib; + TFileName iInputLibName; + }; // + +} // +#endif /*PLUGINALLOCATOR_H_*/