webengine/wmlengine/src/hed/include/contentLoader.h
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/wmlengine/src/hed/include/contentLoader.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2000 - 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+// This file was given to Nokia Boston by HAMETVAARA. It forwards content
+// which is not handled by the browser to the OS document handler.
+
+// ContentLoader.h: interface for the CContentLoader class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(CONTENTLOADER_H)
+#define CONTENTLOADER_H
+
+#include <e32base.h>            // Basic Epoc stuff
+#include "nwx_defs.h"
+#include "urlloader_urlresponse.h"
+#include "nw_hed_documentroot.h"
+#include "BrsrStatusCodes.h"
+
+// FORWARD DECLARATIONS
+class CEikProcess;
+class CErrorUI;
+
+class CContentLoader : public CBase  
+{
+public:
+    /*
+    * Constructor
+    * @param aProcess An instance of CEikProcess. Needed for embedding.
+    **/ 
+	CContentLoader( CEikProcess* aProcess );
+
+    /**
+    * Destructor
+    **/
+	virtual ~CContentLoader();
+
+    /**
+    * Handler function. 
+    * <ul>
+    *   <li>Constructs DocumentHandler and passes content to it.</li>
+    *   <li>Tries to extract the file name from the request url in order to
+    *       get a meaninful name for content. The file name extension also
+    *       helps Epoc recognizers. <b>What to do if the file name is 
+    *       data.php and contains a wav sound clip?</b></li>
+    *   <li>Leaves through any system wide error. Catched by the app framework.</li>
+    * </ul>
+    */
+    void HandleL( HBufC* aUrl, HBufC8* aCharset, HBufC8* aContentType,
+                  NW_HED_DocumentRoot_t* aDocRoot,
+                  const TDesC& aFileName, TBool* aNeedDelete );
+    RFs               iRfs;
+    HBufC*            iFileName;
+
+private:
+
+    void SetMimeTypeL( TUint8* aContentType, TDes8& mimetypestr );
+
+    CEikProcess*      iProcess;
+
+};
+
+TBrowserStatusCode HandleContent(HBufC* aUrl, HBufC8* aCharset, HBufC8* aContentType,
+                                 NW_HED_DocumentRoot_t* aDocRoot,
+                                 const TDesC& aFileName, TBool* aNeedDelete);
+
+void DeletePrevContentL(struct NW_HED_DocumentRoot_s* aDocRoot);
+
+#endif // !defined(CONTENTLOADER_H)