netprotocols_plat/cookie_manager_api/inc/cookiemanagerclient.h
changeset 0 b16258d2340f
child 9 2611c08ee28e
child 27 974c3ee9bf20
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/netprotocols_plat/cookie_manager_api/inc/cookiemanagerclient.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2002 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:  Declaration of class RCookieManager
+*
+*
+*/
+
+
+
+#ifndef __COOKIEMANAGER_CLIENT_H__
+#define __COOKIEMANAGER_CLIENT_H__
+
+// INCLUDE FILES
+	// System includes
+#include <e32base.h>
+#include <http.h>
+
+	// User includes
+#include <cookie.h>
+#include <cookieipc.h>
+
+// CLASS DECLARATION
+	
+/** 
+* It is the client interface to the Cookie Server.
+*/
+class RCookieManager : public RSessionBase
+	{
+	public :	// exported methods
+		/**
+		*
+		*/
+		IMPORT_C RCookieManager( RStringPool aStringPool );
+
+		/**
+		*
+		*/
+		IMPORT_C TInt Connect();
+
+		/** 
+		* Store a cookie. This will get called with each cookie that is
+		* encountered in a transaction response.
+		* @param aCookie The cookie to be stored. Ownership of aCookie is
+		* passed to this class.
+		* @param aUri The uri that sent this cookie. This is required to 
+		* complete any missing attributes of the cookie and to ensure the
+		* cookie is valid.
+		* @return Error code indicating the result of the call.
+		*/
+		IMPORT_C TInt StoreCookie( const CCookie& aCookie,
+									const TUriC8& aUri );
+
+		/** 
+		* Get the relevant cookies for a transaction
+		* @param aUri The URI of the current HTTP request.
+		* @param aCookieList An array which will be filled with the cookies
+		* for aTransaction. The array should be empty when this function is
+		* called. Ownership of the cookies remains with the manager.
+		* @param aCookie2Reqd Flag indicating whether a Cookie2 header should
+		* be added to the outgoing request headers
+		*/
+		IMPORT_C void GetCookiesL( const TDesC8& aUri,
+								   RPointerArray<CCookie>& aCookies, 
+								   TBool& aCookie2Reqd );
+
+		/**
+		* Clear all cookies.
+		* @param aDeletedCookies On return, it contains the number of deleted
+		* cookies.
+		* @return Error code indicating the result of the call.
+		*/
+		IMPORT_C TInt ClearCookies( TInt& aDeletedCookies );
+		
+		/**Sets the AppUidL
+		* @param aAppUid the application UID.
+		* @return Error code indicating the result of the call.
+		*/		
+		IMPORT_C TInt SetAppUidL(const TUint32& aAppUid );
+
+	private :	// internal methods
+		/**
+		* Gets the sum of cookie sizes for a given request URI. After this
+		* method call there will be available the set of cookies on server-side
+		* that have been collected by the URI in question.
+		* @param aRequestUri The HTTP transaction request's URI,
+		* @param aSizePkg It is an integer that will contain the overall size
+		* of all cookies that have been selected by the given URI after the
+		* method returns. It is a package : it is prepared for client-server
+		* communications.
+		* @return Error code indicating the result of the call.
+		*/
+		TInt DoGetCookieSize( const TDesC8& aRequestUri,
+							TPckg<TInt>& aPkgSize ) const;
+
+		/**
+		* Puts those cookies in the buffer that have been previously selected
+		* on server-side as a result of the GetCookieSize method.
+		* @param aBuffer Buffer to be filled with appropriate cookies.
+		* @return Error code indicating the result of the call.
+		*/
+		TInt DoGetCookies( TDes8& aBuffer ) const;
+
+		/**
+		*
+		*/
+		TInt DoStoreCookie( const TDesC8& aPackedCookie,
+							const TDesC8& aUri ) const;
+
+		/**
+		*
+		*/
+		TVersion Version() const;
+
+	private :	// data members
+		RStringPool iStringPool;
+
+		TCookiePacker iCookiePacker;
+	};
+
+#endif //__COOKIEMANAGER_CLIENT_H__