os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/src/CEComSwiPluginInterfaceDefiniton.h
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/src/CEComSwiPluginInterfaceDefiniton.h Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,62 @@
1.4 +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// @file
1.18 +//
1.19 +//
1.20 +
1.21 +#ifndef __CECOMSWIPLUGININTERFACEDEFINITION__
1.22 +#define __CECOMSWIPLUGININTERFACEDEFINITION__
1.23 +
1.24 +#include <e32base.h>
1.25 +
1.26 +
1.27 +class CEComSwiPluginInterfaceDefiniton : public CBase
1.28 +{
1.29 +public:
1.30 + // The function which instantiate an object of this type
1.31 + inline static CEComSwiPluginInterfaceDefiniton* NewL(TUid aImplementationUid);
1.32 +
1.33 + // Standardised destructor.
1.34 + inline virtual ~CEComSwiPluginInterfaceDefiniton();
1.35 +
1.36 + // The sole pure interface method
1.37 + // Representative of a method provided on the interface by
1.38 + // the interface definer.
1.39 + virtual void ReturnInt(TInt& aInt) = 0;
1.40 +
1.41 +private:
1.42 + // Required attribute for the framework
1.43 + // (An identifier used during destruction)
1.44 + TUid iDtor_Id_Key;
1.45 +};
1.46 +
1.47 +// Provide the inline implementations
1.48 +#include <ecom/ecom.h> // For REComSession
1.49 +
1.50 +inline CEComSwiPluginInterfaceDefiniton* CEComSwiPluginInterfaceDefiniton::NewL(TUid aImplementationUid)
1.51 +{
1.52 +
1.53 + TAny* ptr = REComSession::CreateImplementationL(aImplementationUid,
1.54 + _FOFF(CEComSwiPluginInterfaceDefiniton, iDtor_Id_Key));
1.55 +
1.56 + return REINTERPRET_CAST(CEComSwiPluginInterfaceDefiniton*, ptr);
1.57 +}
1.58 +
1.59 +inline CEComSwiPluginInterfaceDefiniton::~CEComSwiPluginInterfaceDefiniton()
1.60 +{
1.61 + REComSession::DestroyedImplementation(iDtor_Id_Key);
1.62 +
1.63 +}
1.64 +
1.65 +#endif // __CECOMSWIPLUGININTERFACEDEFINITION__