locsrv_pub/location_triggering_api/inc/lbtsessiontrigger.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_pub/location_triggering_api/inc/lbtsessiontrigger.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,238 @@
+/*
+* 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:  Concrete class representing session trigger entries.
+*
+*/
+
+
+#ifndef LBTSESSIONTRIGGER_H
+#define LBTSESSIONTRIGGER_H
+
+#include <lbttriggerentry.h>
+#include <lbs.h>
+
+/**
+ * Concrete class representing session trigger entries.
+ *
+ * Session triggers are not stored in persistent
+ * storage. They are deleted by Location Triggering Server if the 
+ * client application's subsession to the server is closed 
+ * or if the client calls RLbt::DeleteTriggerL(). 
+ *
+ * Client application shall make request to Location
+ * Triggering Server to receive session trigger firing event. 
+ *
+ * @see RLbt
+ *
+ * @lib lbt.lib
+ *
+ * @since S60 5.1
+ */
+class CLbtSessionTrigger : public CLbtTriggerEntry
+    {
+public:
+    /**
+     * Allocates and constructs a new session trigger entry.
+     *
+     * In returned object, default values are set to the
+     * attributes of the trigger. The default values are
+     *  - Trigger Id is KLbtNullTriggerId.
+     *
+     *  - Trigger Name is an empty string.
+     *
+     *  - Trigger State is CLbtTriggerEntry::EStateEnabled.
+     *  
+     *  - Requestors are not set. 
+     *
+     *  - Manager UI is not set(KNullUid). 
+     *
+     *  - Trigger condition is not set.
+     *
+     *
+     * @return Pointer to the new session trigger entry.
+     */
+    IMPORT_C static CLbtSessionTrigger* NewL();
+
+    /**
+     * Allocates and constructs a new session trigger entry. The 
+     * constructed object is pushed onto cleanup stack.
+     *
+     * In returned object, default values are set to the
+     * attributes of the trigger. The default values are
+     *  - Trigger Id is KLbtNullTriggerId.
+     *
+     *  - Trigger Name is an empty string.
+     *
+     *  - Trigger State is CLbtTriggerEntry::EStateEnabled.
+     *  
+     *  - Requestors are not set. 
+     *
+     *  - Manager UI is not set(KNullUid). 
+     *
+     *  - Trigger condition is not set.
+     *
+     *
+     * @return Pointer to the new session trigger entry.
+     */
+    IMPORT_C static CLbtSessionTrigger* NewLC();
+
+
+    /**
+     * Allocates and constructs a new session trigger entry
+     * with specified attribute values.
+     *
+     * @since S60 5.1
+     *
+     * @param[in] aName The name of the trigger entry.
+     * @param[in] aState The state of trigger entry.
+     * @param[in] aRequestorType Identifies the type of requestor, 
+     * a service or a contact.
+     * @param[in] aRequestorFormat Determines the type of data held in 
+     * aRequestorData
+     * @param[in] aRequestorData Requestor data. Can be a telephone 
+     * number, a URL etc.
+     * @param[in] aManagerUi The UID of the manager UI application. 
+     * @param[in] aCondition Pointer to the new trigger condition object.
+     * This object takes the ownership of aCondition.
+     * @return Pointer to the new session trigger entry.
+     *
+     * @leave KErrArgument If the name of the trigger is longer than
+     *   @p KLbtMaxNameLength.
+     * @leave Other standard symbian error code, such as KErrNoMemory,
+     * KErrGeneral, etc.
+     */
+    IMPORT_C static CLbtSessionTrigger* NewL( 
+        const TDesC& aName,
+        TLbtTriggerState aState,
+        CRequestor::TRequestorType aRequestorType,
+        CRequestor::TRequestorFormat aRequestorFormat,
+        const TDesC& aRequestorData,
+        TUid aManagerUi,
+        CLbtTriggerConditionBase* aCondition );
+        
+    /**
+     * Allocates and constructs a new session trigger entry
+     * with specified attribute values.
+     *
+     * @param[in] aName The name of the trigger entry.
+     * @param[in] aState The state of trigger entry.
+     * @param[in] aRequestors The requestor for the service. This
+     * object does not take ownership of aRequestors.
+     * @param[in] aManagerUi The UID of manager UI application.
+     * @param[in] aCondition Pointer to the new trigger condition object.
+     * This object takes the ownership of aCondition.
+     * @return Pointer to the new session trigger entry.
+     *
+     * @leave KErrArgument If the name of the trigger is longer than
+     *   @p KLbtMaxNameLength.
+     * @leave Other standard symbian error code, such as KErrNoMemory,
+     * KErrGeneral, etc.
+     */
+    IMPORT_C static CLbtSessionTrigger* NewL( 
+        const TDesC& aName,
+        TLbtTriggerState aState,
+        const RRequestorStack& aRequestors,
+        TUid aManagerUi,
+        CLbtTriggerConditionBase* aCondition );
+
+    /**
+     * Destructor
+     */
+    IMPORT_C ~CLbtSessionTrigger();
+    
+    /**
+     * Get the type of the trigger entry, CLbtTriggerEntry::ESession.
+     *
+     * @return CLbtTriggerEntry::ESession.
+     */
+    IMPORT_C TType Type() const;
+    
+	
+    
+protected:
+    /**
+     * Externalize method that subclass must implement.
+     * @param[in] aStream Stream to which the object should be externalized.
+     */
+    virtual void DoExternalizeL(RWriteStream& aStream) const ;
+    
+    /**
+     * Internalize method that subclass must implement.
+     * @param[in] aStream Stream from which the object should be internalized.
+     */
+    virtual void DoInternalizeL(RReadStream& aStream)  ;
+    
+
+private:
+    
+    /**
+     * Symbian 2nd phase constructor.
+     *
+     * @param[in] aName The name of the trigger entry.
+     * @param[in] aState The state of trigger entry.
+     * @param[in] aRequestorType Identifies the type of requestor, 
+     * a service or a contact.
+     * @param[in] aRequestorFormat Determines the type of data held in 
+     * aRequestorData
+     * @param[in] aRequestorData Requestor data. Can be a telephone 
+     * number, a URL etc.
+     * @param[in] aManagerUi The UID of the manager UI application. 
+     * @param[in] aCondition Pointer to the new trigger condition object.
+     */
+    void ConstructL(const TDesC& aName,TLbtTriggerState aState,
+        CRequestor::TRequestorType aRequestorType,
+        CRequestor::TRequestorFormat aRequestorFormat,
+        const TDesC& aRequestorData,
+        TUid aManagerUi,
+        CLbtTriggerConditionBase* aCondition);
+    /**
+     * Symbian 2nd phase constructor.
+     *
+     * @param[in] aName The name of the trigger entry.
+     * @param[in] aState The state of trigger entry.
+     * @param[in] aRequestor The requestor for the service. This
+     * object does not take ownership of aRequestor.
+     * @param[in] aManagerUi The UID of manager UI application.
+     * @param[in] aCondition Pointer to the new trigger condition object.    
+     */
+    void ConstructL(const TDesC& aName,
+        CLbtTriggerEntry::TLbtTriggerState aState,
+        const RRequestorStack& aRequestors,
+        TUid aManagerUi,
+        CLbtTriggerConditionBase* aCondition);
+   
+   /**
+    * Symbian 2nd phase constructor.
+    */     
+   void ConstructL();         
+   
+   /**
+    * Default constructor
+    */ 
+   CLbtSessionTrigger();
+   
+   /**
+    * By default, prohibit copy constructor
+    */
+   CLbtSessionTrigger(  CLbtSessionTrigger& aEntry);
+   
+   /**
+    * Prohibit assigment operator
+    */ 
+   CLbtSessionTrigger& operator= ( const CLbtSessionTrigger& );
+
+    };
+
+
+#endif // LBTSESSIONTRIGGER_H