web_plat/download_path_plugin_api/inc/DownloadPathHandler.inl
branchRCL_3
changeset 36 c711bdda59f4
child 46 30342f40acbf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web_plat/download_path_plugin_api/inc/DownloadPathHandler.inl	Wed Mar 31 23:16:40 2010 +0300
@@ -0,0 +1,110 @@
+/*****************************************************************************
+  File        : DownloadPathHandler.inl
+  Part of     : web_plat / download_path_plugin_api
+  Description : Music path plugin interface inline implementation file
+  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+
+  Copyright (c) 2010 Nokia Corporation.
+  This material, including documentation and any related
+  computer programs, is protected by copyright controlled by
+  Nokia Corporation. All rights are reserved. Copying,
+  including reproducing, storing, adapting or translating, any
+  or all of this material requires the prior written consent of
+  Nokia Corporation. This material also contains confidential
+  information which may not be disclosed to others without the
+  prior written consent of Nokia Corporation.
+
+ *****************************************************************************
+              Definition of the CDownloadPathHandler inline functions
+ *****************************************************************************/
+
+// -----------------------------------------------------------------------------
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler::CDownloadPathHandler()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// Destructor only uses the ECOM framework and the private member iDtor_ID_Key
+// to destroy the instance
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler::~CDownloadPathHandler()
+    {
+    // Destroy any instance variables and then
+    // inform the framework that this specific 
+    // instance of the interface has been destroyed.
+    REComSession::DestroyedImplementation( iDtor_ID_Key );
+    }
+
+// -----------------------------------------------------------------------------
+// This factory uses a resolver parameter to find appropriate type of the 
+// instance to be returned
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler* CDownloadPathHandler::NewL( const TDesC& aMatchString )
+    {
+    CDownloadPathHandler* handler = CDownloadPathHandler::NewLC( aMatchString );
+    CleanupStack::Pop( handler );
+    return handler;
+    }
+
+// -----------------------------------------------------------------------------
+// This factory uses a resolver parameter to find appropriate type of the 
+// instance to be returned. Leaves pointer on the cleanup stack.
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler* CDownloadPathHandler::NewLC( const TDesC& aMatchString )
+    {
+    HBufC8* matchString8 = HBufC8::NewLC( aMatchString.Length() );
+    matchString8->Des().Copy( aMatchString );
+    CDownloadPathHandler* handler = CDownloadPathHandler::NewLC( matchString8->Des() );
+    CleanupStack::PopAndDestroy( matchString8 );
+    return handler;
+    }
+
+// -----------------------------------------------------------------------------
+// This factory uses a resolver parameter to find appropriate type of the 
+// instance to be returned
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler* CDownloadPathHandler::NewL( const TDesC8& aMatchString )
+    {
+    CDownloadPathHandler* handler = CDownloadPathHandler::NewLC( aMatchString );
+    CleanupStack::Pop( handler );
+    return handler;
+    }
+
+// -----------------------------------------------------------------------------
+// This factory uses a resolver parameter to find appropriate type of the 
+// instance to be returned. Leaves pointer on the cleanup stack.
+// -----------------------------------------------------------------------------
+//
+inline CDownloadPathHandler* CDownloadPathHandler::NewLC( const TDesC8& aMatchString )
+    {
+    // Set up the interface find for the default resolver.
+    TEComResolverParams resolverParams;
+    resolverParams.SetDataType( aMatchString );
+    resolverParams.SetWildcardMatch( ETrue );     // Allow wildcard matching
+
+    TAny* ptr = REComSession::CreateImplementationL( KCDownloadPathHandlerUid, 
+                                                     _FOFF( CDownloadPathHandler,iDtor_ID_Key ), 
+                                                     resolverParams );
+    CleanupStack::PushL( ptr );
+    return REINTERPRET_CAST( CDownloadPathHandler*, ptr );
+    }
+
+// -----------------------------------------------------------------------------
+// This function lists all the implementations currently present in the
+// ECOM framework.
+// -----------------------------------------------------------------------------
+//
+inline void CDownloadPathHandler::ListAllImplementationsL( RImplInfoPtrArray& aImplInfoArray )
+    {
+    REComSession::ListImplementationsL( KCDownloadPathHandlerUid, aImplInfoArray );
+    }
+
+// End of file