diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/uripermissionservices/server/inc/urilistinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/uripermissionservices/server/inc/urilistinterface.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,120 @@ +// Copyright (c) 2007-2009 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: +// + +#ifndef __URILISTINTERFACE_H__ +#define __URILISTINTERFACE_H__ +#include +#include +#include +#include +#include +#include "dbaccessor.h" + +class CInetUriImpl; +class CTldProperties; +class CInetUriProperties; +class CUriListStream; +class CUriQueryFilter; + +/** +This class is the interface between the server session class and the data storage. The methods +provided in this class will make calls to the data storage class for the operations requested +by the client. +*/ +class CUriListInterface : public CBase + { + public: + + static CUriListInterface* NewL (); + ~CUriListInterface (); + + void AddUriL ( RReadStream& aUriStream, TInt& aUriId, TInt& aPropId ); + void RemoveUriL ( TInt aUriId, TInt aPropId ); + void UpdateUriL ( TInt aUriId, InetUriList::TListType aListType, const TDesC8& aFavouriteName ); + + TInt CountUriL ( InetUriList::TServiceType aServiceType, InetUriList::TListType aListType ); + + InetUriList::TListType GetListTypeL ( const TDesC8& aUri, InetUriList::TServiceType aSt ); + + CUriQueryFilter* QueryL ( const TQueryArgs& aQueryArgs ); + CUriQueryFilter* QueryWithUriL ( const TDesC8& aUri, const TQueryArgs& aQueryArgs ); + + InetUriList::TListType GetHostTypeL ( const TDesC8& aUri ); + + HBufC8* QueryTldInfoL(const TDesC8& aUri, const TPolicyQueryArgs& aQueryArgs ); + + TInt PolicyDataLengthL ( const TDesC8& aUri, const TPolicyQueryArgs& aQueryArgs ); + + void InsertL ( CInetUriImpl& aInetUri ); + void InsertTldPolicyDataL ( CTldProperties& aTldPolicydata ); + + private: + CUriListInterface (); + void ConstructL (); + + TInt UpdateL ( const TDesC8& aSchemaName, TInt aUriId, InetUriList::TListType aListType, const TDesC8& aFavouriteName ); + void DeleteL ( const TDesC8& aSchemaName, TInt aFieldPos, TInt aId ); + + HBufC8* ExtractHostL( const TDesC8& aUri ); + HBufC8* ExtractTldL( const TDesC8& aUri ); + const TDesC8& DoNormalisationLC ( const TDesC8& aUri ); + + TBool CheckDependencyL ( TInt aId ); + TBool FileExist(const TDesC& aFilePath); + TBool IsDuplicateEntryL ( const CTldProperties& aTldProps ); + + TInt InsertIntoUriTblL ( const TUriC8& aUri, TInt& aUriId ); + TInt InsertIntoUriPropsTblL ( TInt aUriId, const CInetUriProperties& aUriProps, TInt& aPropId ); + TInt InsertIntoViewL ( const CInetUriImpl& aInetUri ); + TInt InsertIntoTldTblL ( const CTldProperties& aTldProps ); + + TInt GetMaxIdValueL ( const TDesC8& aTblName, const TDesC8& aFieldName ); + + MDBTransaction* DoSearchExactUriLC ( const TUriC8& aUri, TInt aServiceType, TInt aListType = KErrNotFound ); + MDBTransaction* DoSearchUriPathLC ( const TUriC8& aUri, InetUriList::TURIMatch aMatch, TInt aServiceType, TInt aListType = KErrNotFound ); + MDBTransaction* DoSearchUriDomainLC ( const TUriC8& aUri, TInt aServiceType, TInt aListType = KErrNotFound ); + + CUriQueryFilter* QueryWithTldL ( const TDesC8& aUri,const TPolicyQueryArgs& aQueryArgs ); + CUriQueryFilter* DoQueryWithTldL ( const TDesC8& aUri, const TPolicyQueryArgs& aQueryArgs ); + + static void DestroyTransObj ( TAny* aPtr ); + static void RollbackTrans ( TAny* aPtr ); + + const TDesC8& GetFieldName ( TInt aTableIndex ); + void GetInstalledDirectoryL( const TUid aUid, const TDesC& aFile, TDes& aFilePath ); + + void InitViewQueryLC ( RBuf8& aBuf ); + void InitTldQueryLC ( RBuf8& aBuf ); + void AppendFieldName ( RBuf8& aBuf, TInt aTableIndex, const TUriC8& aUri, TUriComponent aComponent ); + void BindTextL ( MDBTransaction& aDbTrans, TInt aBindPos, const TUriC8& aUri, TUriComponent aComponent ); + + TBool IsWhiteListedUriL( const TDesC8& aUri ); + TBool IsBlackListedUriL( const TDesC8& aUri ); + TBool IsBlackListedHost( const TDesC8& aHost, RArray& aList ); + TBool IsNextCharInList(TChar aChar, RArray& aPolicyList); + TBool IsWhiteListedHostL( const TDesC8& aHost, RArray& aPolicyList ); + void StringToCharListL(const TDesC8& aString, RArray& aList, TChar aSeparator = '.'); + void TokenizeStringL(const TDesC8& aString, RArray& aList, TChar aSeparator = ' '); + + void InitializeDatabaseL (); + void InitializePolicyDatabaseL (); + void UpgradePolicyDatabaseL(); + + private: + MDBAccessor* iDbAccessor; + RStringPool iStringPool; + }; + +#endif // __URILISTINTERFACE_H__