diff -r 6ca72c0fe49a -r a941bc465d9f PECengine/PresenceServer2/ClientInc/RPEngTransferClient.h --- /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 +#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__ + + + + + + + + + + + + + + + + + + + + +