PECengine/PresenceServer2/ClientInc/RPEngTransferClient.h
branchRCL_3
changeset 13 a941bc465d9f
parent 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/PresenceServer2/ClientInc/RPEngTransferClient.h	Wed Sep 01 12:31:13 2010 +0100
@@ -0,0 +1,157 @@
+/*
+* 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:   Sub-session of the Presence Server
+*  It is used to update date of the PEC engine to network
+*
+*/
+
+
+#ifndef __RPENGTRANSFERCLIENT_H__
+#define __RPENGTRANSFERCLIENT_H__
+
+//  INCLUDES
+#include	<e32base.h>
+#include	"PEngPresenceEngineConsts2.h"
+
+// FORWARD DECLARATIONS
+class RPEngManagerClient;
+
+// CLASS DECLARATION
+/**
+ *  Sub-session of the Presence Server
+ *  It is used to update data of the Presence engine to network
+ *
+ *  @lib PEngClient2
+ *  @since 3.0
+ */
+class RPEngTransferClient : public RSubSessionBase
+    {
+
+    public:		// Constructors and destructors
+
+        /**
+         * Destructor.
+         */
+        IMPORT_C  ~RPEngTransferClient();
+
+        /**
+         * C++ default constructor.
+         */
+        IMPORT_C	RPEngTransferClient();
+
+    public:		// New methods
+
+        /**
+         *	Connect this sub-session to the Presence Server
+         *
+         *	Client is connected to the server with defined session Id
+         *	and application Id
+         *
+         *  @since 3.0
+         *  @param aSessionId packed session slot Id
+         *	@param aAppId application Id
+         *	@param aManagerClient main session client
+         *  @return KErrNone if connected or system wide error code
+         */
+        IMPORT_C TInt Connect(	const TDesC8& aSessSlotId,
+                               const TDesC& aAppId,
+                               RPEngManagerClient& aManagerClient );
+
+        /**
+         *	Closes sub session to the Presence server
+         *
+         *  Also all asynchronous requests are canceled on the server side
+         *  when this sub-session is cleaned
+         *
+         *  @since 3.0
+         */
+        IMPORT_C void Close();
+
+    public:		// New operation of the client
+
+
+        /**
+         *	Update data to the presence Network
+         *
+         *  Passed TRequestStatus can be completed with following codes:
+         *     Positive complete code:
+         *	     	 Update operation went fine and there is result buffer
+         *           on the server side waiting to be fetched, while
+         *           completed number is size of the buffer need on
+         *           the client side.
+         *     Zero:
+         * 			 Update operation went fine, but there is no detailed
+         *		     result buffer waiting to be fetched on the server side
+         *     Negative complete code:
+         *           During update operation occured system wide error
+         *           which same as complete code. Update operation was not
+         *           completed successfuly.
+         *
+         *  @since 3.0
+         *  @param aOperation, TPEngTransactionOperation enumeration
+         *  @param aData detailed data if required by the update operation
+         *  @return KErrNone if message went to the server
+         *			KErrDisconnected if client is not connected
+         */
+        IMPORT_C TInt UpdateData(	TInt aOperation,
+                                  const TDesC& aData,
+                                  TRequestStatus& aStatus );
+
+        /**
+         *	Fetch result for last Update data call
+         *
+         *  @since 3.0
+         *  @param aRequestResult descriptor buffer on the client side, when
+         *         will be put detailed result buffer of the last request
+         *  @return KErrNone if request was canceled
+         *			KErrDisconnected if client is not connected
+         *			or system wide error code if something went wrong
+         */
+        IMPORT_C TInt FetchLastRequestResult( TDes8& aRequestResult );
+
+        /**
+         *	Cancel last Asynchronous request update data
+         *
+         *  @since 3.0
+         */
+        IMPORT_C void CancelUpdateData();
+
+    private:	// Data
+
+        // Flag is client is connected or not
+        TBool					iConnected;
+    };
+
+#endif      //  __RPENGTRANSFERCLIENT_H__
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+