diff -r 000000000000 -r 7f85d04be362 upnpavcontroller/upnpavcontrollerhelper/inc/upnpitemresolver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontroller/upnpavcontrollerhelper/inc/upnpitemresolver.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2005-2007 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: Tool for resolving local or remote items +* +*/ + + + + + + +#ifndef UPNPITEMRESOLVER_H +#define UPNPITEMRESOLVER_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class MUPnPAVController; +class MUPnPAVBrowsingSession; +class MUPnPResourceSelector; +class MUPnPItemResolverObserver; +class CUpnpItem; +class CUpnpElement; + +// CLASS DECLARATION + +/** +* An interface for resolving either remote or local content. +* The interface takes in some identification of the content, +* resolves the content and asynchronously notifies when the +* content is available. The content itself is provided by +* CUpnpItem, which contains item metadata, resource and URI, +* and it can be used directly in AVController interface to +* play content on remote renderer or download content. +* +* @lib upnpavcontrollerhelper.lib +* @since S60 3.2 +*/ +class MUPnPItemResolver + { + +public: // construction/destruction + + + /** + * virtual destructor + * for deleting the resolver implementation using the API pointer + */ + virtual ~MUPnPItemResolver() {} + + +public: // the interface + + /** + * Starts resolving an object id using given session. + * given Callback is notified when result objects are available, + * or in case of an error. + * @since S60 3.2 + * @param aObserver interface that will receive result callback + * @param aSelector selects the desider resource + */ + virtual void ResolveL( + MUPnPItemResolverObserver& aObserver ) = 0; + + /** + * access to the resolved item. + * Note that if the object represents an item, it is not necessarily + * safe to query the resource in this item, instead you should use + * this item to query all metadata. + * Use this method after receiving MetadataBrowseComplete( KErrNone ) + * @return reference to the item with the given ID + */ + virtual const CUpnpItem& Item() const = 0; + + /** + * access to the pointed item's resource. + * The resource may be in the original or in the pointed item. + * This is the easiest and recommended way for accessing the + * resource. + * example: + * const TDesC& uri = browseUtil->Res().Value(); + * Use this method after receiving MetadataBrowseComplete( KErrNone ) + * @return reference to the upnp element of type. + */ + virtual const CUpnpElement& Resource() const = 0; + + }; + +#endif // UPNPITEMRESOLVER_H + +// End of File