diff -r 000000000000 -r 094583676ce7 IMPSengine/inc/impspurecli.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IMPSengine/inc/impspurecli.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,192 @@ +/* +* Copyright (c) 2002-2005 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: +* WV Engine pure data API definition +* +*/ + + +#ifndef RIMPSPURECLI_H +#define RIMPSPURECLI_H + +// INCLUDES +#include +#include +#include +#include "impsconst.h" +#include "impsclient.h" + +// CONSTANTS + +// service type +enum TImpsServiceType + { + EImpsServiceNone = 0x0000, + EImpsServiceAccess = 0x0001, + EImpsServiceIM = 0x0002, + EImpsServicePresence = 0x0004, + EImpsServiceGroup = 0x0010, + EImpsServiceCommon = 0x0100 + }; + +// FORWARD DECLARATIONS +class MImpsPureHandler2; +class CImpsPureCommand2; + + +// CLASS DECLARATION + +/** +* Pure data WV Client API +* +* Applications use Access service via RImpsPureClient2 class. +* First, they need to +* connect to the server by calling RegisterL() member function. +* Immediately after that an error handler must be registered by +* RegisterErrorObserverL. +* +* When everything is done, call Unregister() to end +* the session. +* +* A user of this API must be aware that raising/releasing +* the PDP context may affect the response times of called functions. +* +* +* Observer methods: +* ----------------------- +* Client can be notified when a certain type of message is received +* from the remote server. +* Client has to be connected in the server in order to get notify events. +* If the client is disconnected by server by calling Unregister(), all notify +* requests and possible incoming events are canceled. +* +* Notify events are session-specific, ie. if you have several RImpsPureClients +* connected to the server, each has its own notify requests. +* +* In order to use notify services, you need to implement MImpsPureHandler2 +* and give a pointer to your class in RegisterL. +* Observer method doesn't need to do anything else than your application needs +* it to do. +*/ + +class RImpsPureClient2 : public RImpsClient2 + { + + public: // Constructors and destructor + + /** + * C++ default constructor. + */ + IMPORT_C RImpsPureClient2(); + + public: // New functions + + // INITILIZATION AND CONNECT + + /** + * Registers the listener object for Pure events and connects to + * the SOS Server. + * Leaves with KImpsErrorAlreadyInUse if the client + * has already registered. + * @param aEngine WV Engine server instance + * @param aObserver The observer. + * @param aType aServiceType + * @param aReceiveNew determines if new pushed messages are received. + * If EFalse then new messages are filtered out and + * responses to own requests are deliverd only. + * @param aPriority Observer priority. Refer to CActive priority. + */ + IMPORT_C void RegisterL( RImpsEng& aEngine, + MImpsPureHandler2* aObserver, + TImpsServiceType aType = EImpsServicePresence, + TBool aReceiveNew = ETrue, + TInt aPriority = CActive::EPriorityStandard ); + + + + /** + * Unregisters the listener object and disconnects from the server. + */ + IMPORT_C void Unregister(); + + /** + * Send pure transaction content + * Only primitives that belong to the presence service are allowed, + * otherwise leaves with KImpsErrorUnknownMessageType. + * If content size exceeds the maximum, + * leaves with KImpsErrorMessageTooBig. + * Max. content size can be retrieved by calling + * method MaxTransactionContentSizeL() + * @param aContent UTF-8 coded transaction content in XML format + */ + IMPORT_C TInt SendPureDataL( const TDesC8& aContent ); + + /** + * Pointer to the pure data handler + * @return handler + */ + MImpsPureHandler2* Handler(); + + private: + + /** + * Registers the listener object for Presence events and connects to + * the Symbian Server. + * @param aEngine WV Engine server instance + * @param aHandler the observer + * @return general error code + */ + TInt DoRegister( RImpsEng& aEngine, + CImpsHandler2* aHandler ); + + private: // data + + CImpsPureCommand2* iCommand; + MImpsPureHandler2* iPureCallback; + + private: // friend classes + friend class CImpsPureCommand2; + + }; + +// CLASS DECLARATION + +/** +* MImpsPureHandler2 +* +* Abstract interface for handling the notify events from the server. +* User derives his class from this and implements the methods below. +*/ + +class MImpsPureHandler2 + { + + public: // New functions + + /** + * Observer method for pure message content. + * @param aOpId operation id received in SendPureDataL. If this is 0, + * then the HandlePureDataL was initated by SAP. + * @param aBuffer UTF-8 coded message content in XML format + * @param aCspId CSP session identifier + */ + virtual void HandlePureDataL( TInt aOpId, + const TDesC8& aBuffer, + TImpsCspIdentifier& aCspId ) = 0; + + }; + +#endif // RIMPSPURECLI_H + +// End of file