pressrv_plat/authorization_api/inc/prescondmisc.h
changeset 0 c8caa15ef882
--- /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 <e32std.h>
+#include <e32base.h>
+#include <badesca.h>
+
+#include <rlspresxdmconsts.h>
+
+// 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__