diff -r 000000000000 -r c8caa15ef882 pressrv_plat/authorization_api/inc/prescondmisc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pressrv_plat/authorization_api/inc/prescondmisc.h Tue Feb 02 01:05:17 2010 +0200 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2006 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: RLS and Presence XDM, This class represents those parts of +* presence identity which are not present in any other class. +* +*/ + + + +#ifndef __PRESCONDMISC_H__ +#define __PRESCONDMISC_H__ + +// Includes +#include +#include +#include + +#include + +// Forward declarations +class CPresenceXDM; +class CXdmDocumentNode; + +// Class declaration +/** +* This class should be used in conjunction with an already created CPresenceXDM. +* The CPresenceXDM deals with the Presence rules as a whole and has communication +* with the server. +* TPresCondMisc is used to manipulate the those Presence rule's conditions +* which are not present in any other class. This class supports following +* conditions: external-list, anonymous-request and other-identity. +* +* @lib rlspresxdm.lib +* @since S60 3.2 +*/ +class TPresCondMisc + { + public: + + /** + * C++ Constructor, After contructing Init must be called before using + * this object. + */ + IMPORT_C TPresCondMisc(); + + /** + * Initializes the object with the given pointer to CPresenceXDM. + * This function must be called before using other functions. + * + * @param CPresenceXDM* pointer to created CPresenceXDM + */ + IMPORT_C void Init(CPresenceXDM* const aPresXDM); + + /** + * Adds condition's other-identity element to a rule. This functions doesnt give + * error if other-identity element already exists. + * + * @param TDesC& aRuleId rule ID + * @return TInt KErrNone, KErrNotFound if rule doesnt found + */ + IMPORT_C TInt AddOtherIdentityL(const TDesC& aRuleId); + + /** + * Finds if other-identity element exist in a rule + * + * @param TDesC& aRuleId rule ID + * @return TBool ETrue if other-identity element found + */ + IMPORT_C TBool IsOtherIdentityExistL(const TDesC& aRuleId); + + /** + * Removes other-identity element from a rule + * + * @param TDesC& aRuleId rule ID + * @return KErrNotFound if rule or other-identity element not found. + */ + IMPORT_C TInt RemoveOtherIdentityL(const TDesC& aRuleId); + + /** + * Adds condition's anonymous-request element to a rule. This functions doesnt give + * error if anonymous-request element already exists. + * + * @param TDesC& aRuleId rule ID + * @return TInt KErrNone, KErrNotFound if rule doesnt found + */ + IMPORT_C TInt AddAnonymousRequestL(const TDesC& aRuleId); + + /** + * Finds if anonymous-request element exist in a rule + * + * @param TDesC& aRuleId rule ID + * @return TBool ETrue if anonymous-request element found + */ + IMPORT_C TBool IsAnonymousRequestExistL(const TDesC& aRuleId); + + /** + * Removes anonymous-request element from a rule + * + * @param TDesC& aRuleId rule ID + * @return KErrNotFound if rule or anonymous-request element not found. + */ + IMPORT_C TInt RemoveAnonymousRequestL(const TDesC& aRuleId); + + /** + * Adds a condition's external-list with 'anc' attribute containing a Uri + * + * @param TDesC& aRuleId rule ID + * @param aUri an external list to be added + * @return TInt KErrNone, KErrNotFound if rule doesnt found or + * KErrAlreadyExists in case already exists + */ + IMPORT_C TInt AddExternListL(const TDesC& aRuleId, const TDesC& aUri); + + /** + * Finds if an external list is exist in a rule + * + * @param TDesC& aRuleId rule ID + * @param aUri an external list to be find + * @return TBool ETrue if given external list is exist in the rule + */ + IMPORT_C TBool IsExternListExistL(const TDesC& aRuleId, const TDesC& aUri); + + /** + * Gets condition's external-lists from a rule + * + * @param TDesC& aRuleId rule ID + * @param aUris contains returned array of external Uris + */ + IMPORT_C void GetExternalListsL(const TDesC& aRuleId, + CDesCArray& aUris); + + /** + * Delete specific external list if found. + * + * @param TDesC& aRuleId rule ID + * @param aUri an external list to be removed + * @return KErrNotFound if rule or external list not found. + */ + IMPORT_C TInt DeleteExternalListL(const TDesC& aRuleId, + const TDesC& aUri); + + /** + * Deletes specific external lists if they found. + * + * @param TDesC& aRuleId rule ID + * @param aUris contains array of external lists to be deleted. + */ + IMPORT_C void DeleteExternalListsL(const TDesC& aRuleId, + const MDesCArray& aUris); + + /** + * Deletes all external lists from a rule if found + * + * @param TDesC& aRuleId rule ID + */ + IMPORT_C void DeleteAllExternalListsL(const TDesC& aRuleId); + + private: // data + + // Pointer to CPresenceXDM - not owned + CPresenceXDM* iPresXDM; + + }; + + +#endif //__PRESCONDMISC_H__