upnpavcontroller/upnpavcontrollerhelper/inc/upnpremoteitemresolver.h
branchnew development branch with rendering state machine and other goodies
changeset 38 5360b7ddc251
parent 0 7f85d04be362
--- a/upnpavcontroller/upnpavcontrollerhelper/inc/upnpremoteitemresolver.h	Fri Sep 17 08:31:21 2010 +0300
+++ b/upnpavcontroller/upnpavcontrollerhelper/inc/upnpremoteitemresolver.h	Mon Nov 01 12:37:49 2010 +0200
@@ -1,216 +1,216 @@
-/*
-* Copyright (c) 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:      Resolver for remote items
-*
-*/
-
-
-
-
-
-
-#ifndef UPNPREMOTEITEMRESOLVER_H
-#define UPNPREMOTEITEMRESOLVER_H
-
-//  INCLUDES
-#include <e32base.h>
-#include "upnpitemresolver.h" // base class
-#include "upnpabstractbrowsingsessionobserver.h" // base class
-
-// FORWARD DECLARATIONS
-class MUPnPAVBrowsingSession;
-class CUpnpItem;
-class CUpnpElement;
-class MUPnPResourceSelector;
-
-// CLASS DECLARATION
-
-/**
-* Resolves remote upnp items from a plain item id.
-* This resolving is done by executing a upnp metadata browse, or
-* possibly several ones of those.
-*
-* @lib upnpavcontrollerhelper.lib
-* @since S60 3.2
-*/
-class CUPnPRemoteItemResolver
-    : public CUPnPAbstractBrowsingSessionObserver
-    , public MUPnPItemResolver
-    {
-public: // construction/destruction
-
-    /**
-     * static constructor.
-     *
-     * @since Series 60 3.2
-     * @param aItemId, item to be resolved
-     * @param aHostSession, browsing session
-     * @param aSelector, resource selector
-     * @param aBrowseFilter, filter
-     * @return RemoteItemResolver instance 
-     */
-    static CUPnPRemoteItemResolver* NewL(
-        const TDesC8& aItemId,
-        MUPnPAVBrowsingSession& aHostSession,
-        MUPnPResourceSelector& aSelector,
-        const TDesC8& aBrowseFilter );
-
-    /**
-     * destructor
-     * @since Series 60 3.2
-     */
-    virtual ~CUPnPRemoteItemResolver();
-
-private: // private construction part
-
-    /**
-     * default constructor.
-     *
-     * @since Series 60 3.2
-     * @param aItemId, item to be resolved
-     * @param aHostSession, browsing session
-     * @param aSelector, resource selector
-     * @param aBrowseFilter, filter
-     */
-    CUPnPRemoteItemResolver(
-        const TDesC8& aItemId,
-        MUPnPAVBrowsingSession& aHostSession,
-        MUPnPResourceSelector& aSelector,
-        const TDesC8& aBrowseFilter );
-
-    /**
-     * 2nd phase constructor.
-     *
-     * @since Series 60 3.2
-     * @param aItemId, item to be resolved
-     * @param aHostSession, browsing session
-     * @param aSelector, resource selector
-     * @param aBrowseFilter, filter
-     */
-    void ConstructL(
-        const TDesC8& aItemId,
-        MUPnPAVBrowsingSession& aHostSession,
-        MUPnPResourceSelector& aSelector,
-        const TDesC8& aBrowseFilter );
-
-
-public: // the interface
-
-    /**
-     * see UPnPItemResolver
-     */
-    void ResolveL(
-        MUPnPItemResolverObserver& aObserver );
-
-    /**
-     * see UPnPItemResolver
-     */
-    const CUpnpItem& Item() const;
-
-
-    /**
-     * see UPnPItemResolver
-     */
-    const CUpnpElement& Resource() const;
-
-
-protected: // MUPnPAVBrowsingSessionObserver
-
-    /**
-     * see MUPnPAVBrowsingSessionObserver
-     */
-    void BrowseResponse(
-        const TDesC8& aBrowseResponse,
-        TInt aError,
-        TInt aMatches,
-        TInt aTotalCount,
-        const TDesC8& aUpdateId
-        );
-
-
-private: // private methods
-
-    /**
-     * after receiving the result object, processes it:
-     * either continues browsing recursively or calls back
-     * notifying the object is ready to be fetched.
-     */
-    void ProcessResultObjectL( const CUpnpObject* aResult );
-
-    /**
-     * Completes ongoing async operation
-     */
-    void Complete( TInt aError );
-
-    /**
-     * Clean up all resources
-     */
-    void Cleanup();
-
-    /**
-     * internal state machinery
-     */
-    enum TInternalState {
-        EStateIdle,    // no data, ready for starting
-        EStateActive,  // browsing for data
-        EStateReady    // Data exists
-    };
-
-    /**
-     * Handles the parsing of the browse response.
-     *
-     * @since S60 3.2
-     * @param aBrowseResponse (const TDesC8&) the browse response
-     */
-    void BrowseResponseL( const TDesC8& aBrowseResponse );
-
-private: // members
-
-    // item to resolve (Owned)
-    HBufC8* iItemId;
-
-    // the host browsing session
-    MUPnPAVBrowsingSession& iBrowsingSession;
-
-    // selector interface to use
-    MUPnPResourceSelector& iSelector;
-
-    // filter used in browse
-    const TDesC8& iBrowseFilter;
-
-    // observer for the resolver. NOT OWNED
-    MUPnPItemResolverObserver* iObserver;
-
-    // state of the class
-    TInternalState iState;
-
-    // counter for browse resursion
-    TInt iRecursionDepth;
-
-    // the first level browse result item (Owned).
-    CUpnpItem* iFirstLevelItem;
-
-    // optional: last level browse result item, if first level
-    // is a pointer object (Owned). 
-    CUpnpItem* iLastLevelItem;
-
-    // The selected resource within the last level item. NOT OWNED
-    const CUpnpElement* iResource;
-
-    };
-
-
-#endif  // UPNPREMOTEITEMRESOLVER_H
-
-// End of File
+/*
+* Copyright (c) 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:      Resolver for remote items
+*
+*/
+
+
+
+
+
+
+#ifndef UPNPREMOTEITEMRESOLVER_H
+#define UPNPREMOTEITEMRESOLVER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "upnpitemresolver.h" // base class
+#include "upnpabstractbrowsingsessionobserver.h" // base class
+
+// FORWARD DECLARATIONS
+class MUPnPAVBrowsingSession;
+class CUpnpItem;
+class CUpnpElement;
+class MUPnPResourceSelector;
+
+// CLASS DECLARATION
+
+/**
+* Resolves remote upnp items from a plain item id.
+* This resolving is done by executing a upnp metadata browse, or
+* possibly several ones of those.
+*
+* @lib upnpavcontrollerhelper.lib
+* @since S60 3.2
+*/
+class CUPnPRemoteItemResolver
+    : public CUPnPAbstractBrowsingSessionObserver
+    , public MUPnPItemResolver
+    {
+public: // construction/destruction
+
+    /**
+     * static constructor.
+     *
+     * @since Series 60 3.2
+     * @param aItemId, item to be resolved
+     * @param aHostSession, browsing session
+     * @param aSelector, resource selector
+     * @param aBrowseFilter, filter
+     * @return RemoteItemResolver instance 
+     */
+    static CUPnPRemoteItemResolver* NewL(
+        const TDesC8& aItemId,
+        MUPnPAVBrowsingSession& aHostSession,
+        MUPnPResourceSelector& aSelector,
+        const TDesC8& aBrowseFilter );
+
+    /**
+     * destructor
+     * @since Series 60 3.2
+     */
+    virtual ~CUPnPRemoteItemResolver();
+
+private: // private construction part
+
+    /**
+     * default constructor.
+     *
+     * @since Series 60 3.2
+     * @param aItemId, item to be resolved
+     * @param aHostSession, browsing session
+     * @param aSelector, resource selector
+     * @param aBrowseFilter, filter
+     */
+    CUPnPRemoteItemResolver(
+        const TDesC8& aItemId,
+        MUPnPAVBrowsingSession& aHostSession,
+        MUPnPResourceSelector& aSelector,
+        const TDesC8& aBrowseFilter );
+
+    /**
+     * 2nd phase constructor.
+     *
+     * @since Series 60 3.2
+     * @param aItemId, item to be resolved
+     * @param aHostSession, browsing session
+     * @param aSelector, resource selector
+     * @param aBrowseFilter, filter
+     */
+    void ConstructL(
+        const TDesC8& aItemId,
+        MUPnPAVBrowsingSession& aHostSession,
+        MUPnPResourceSelector& aSelector,
+        const TDesC8& aBrowseFilter );
+
+
+public: // the interface
+
+    /**
+     * see UPnPItemResolver
+     */
+    void ResolveL(
+        MUPnPItemResolverObserver& aObserver, CUpnpAVDevice* aDevice = NULL );
+
+    /**
+     * see UPnPItemResolver
+     */
+    const CUpnpItem& Item() const;
+
+
+    /**
+     * see UPnPItemResolver
+     */
+    const CUpnpElement& Resource() const;
+
+
+protected: // MUPnPAVBrowsingSessionObserver
+
+    /**
+     * see MUPnPAVBrowsingSessionObserver
+     */
+    void BrowseResponse(
+        const TDesC8& aBrowseResponse,
+        TInt aError,
+        TInt aMatches,
+        TInt aTotalCount,
+        const TDesC8& aUpdateId
+        );
+
+
+private: // private methods
+
+    /**
+     * after receiving the result object, processes it:
+     * either continues browsing recursively or calls back
+     * notifying the object is ready to be fetched.
+     */
+    void ProcessResultObjectL( const CUpnpObject* aResult );
+
+    /**
+     * Completes ongoing async operation
+     */
+    void Complete( TInt aError );
+
+    /**
+     * Clean up all resources
+     */
+    void Cleanup();
+
+    /**
+     * internal state machinery
+     */
+    enum TInternalState {
+        EStateIdle,    // no data, ready for starting
+        EStateActive,  // browsing for data
+        EStateReady    // Data exists
+    };
+
+    /**
+     * Handles the parsing of the browse response.
+     *
+     * @since S60 3.2
+     * @param aBrowseResponse (const TDesC8&) the browse response
+     */
+    void BrowseResponseL( const TDesC8& aBrowseResponse );
+
+private: // members
+
+    // item to resolve (Owned)
+    HBufC8* iItemId;
+
+    // the host browsing session
+    MUPnPAVBrowsingSession& iBrowsingSession;
+
+    // selector interface to use
+    MUPnPResourceSelector& iSelector;
+
+    // filter used in browse
+    const TDesC8& iBrowseFilter;
+
+    // observer for the resolver. NOT OWNED
+    MUPnPItemResolverObserver* iObserver;
+
+    // state of the class
+    TInternalState iState;
+
+    // counter for browse resursion
+    TInt iRecursionDepth;
+
+    // the first level browse result item (Owned).
+    CUpnpItem* iFirstLevelItem;
+
+    // optional: last level browse result item, if first level
+    // is a pointer object (Owned). 
+    CUpnpItem* iLastLevelItem;
+
+    // The selected resource within the last level item. NOT OWNED
+    const CUpnpElement* iResource;
+
+    };
+
+
+#endif  // UPNPREMOTEITEMRESOLVER_H
+
+// End of File