--- a/epoc32/include/app/imclient.h Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-* which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Interface for Instant Messaging services
-*
-*/
-
-
-#ifndef OPENAPI_IM_CLIENT_H
-#define OPENAPI_IM_CLIENT_H
-
-// INCLUDES
-#include <e32base.h>
-#include <bamdesca.h>
-#include <cntdef.h>
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-class MImObserver;
-class MImClientDetailedError;
-
-// CLASS DECLARATION
-/**
-* Instant Messaging interface class
-* This interface class provides methods to send and receive instant messages.
-* Application to be able to receive IMs it must register its own observer
-* using this interface class.
-* This interface can be obtained using a factory method from the CImConnection
-* class.
-*
-* @lib imclient.lib
-* @since S60 3.0
-*/
-class MImClient
- {
-
- public:
-
- virtual ~MImClient() {}
-
- /**
- * Method for registering the IM client to the WV Engine.
- * This method is synchronous.
- * @since S60 3.0
- * @param aObserver observer object used for notifying the user
- * software
- * @leave KImApiErrAlreadyRegistered if it was registered already or other system wide error code
- */
- virtual void RegisterObserverL(
- MImObserver* aObserver ) = 0;
-
- /**
- * Method for unregistering the IM Sender from the WV Engine.
- * This method is synchronous method.
- * @since S60 3.0
- */
- virtual void UnregisterObserver( ) = 0;
-
- /**
- * Method for sending person-to-person text message (UNICODE) using
- * Contact Model IDs. This method is asynchronous and it’s completion
- * is signaled in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * @since S60 3.0
- * @param aContactItem Contact Model ID of the recipient
- * @param aContent The content of the message in UNICODE
- * @return operation code
- * @leave KImApiErrNotRegistered observer was not registered
- * @leave KImApiErrInvalidContactId the contact ID does not have a corresponding User ID
- */
- virtual TInt SendPToPMessageL(
- const TContactItemId& aContactItem,
- const TDesC16& aContent ) = 0;
-
- /**
- * Method for sending person-to-person text message (UNICODE) using
- * Contact Model IDs. This method is asynchronous and its completion
- * is signaled in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * Please note that one contact can have more than one assigned IM user
- * ID. Sending IM to those contacts will result in partial success.
- * @since S60 3.0
- * @param aContactIds Contact Model Ids of the recipient(s)
- * @param aContent The content of the message in UNICODE
- * @return operation code
- * @leave KImApiErrNotRegistered observer was not registered
- * @leave KImApiErrInvalidContactId the contact ID does not have a corresponding User ID
- */
- virtual TInt SendPToPMessageL(
- const CContactIdArray& aContactIds,
- const TDesC16& aContent ) = 0;
-
- /**
- * Method for sending person-to-person binary (or 8bit text) message
- * using Contact Model IDs. This method is asynchronous and its
- * completion is signaled in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * Please note that one contact can have more than one assigned IM user
- * ID. Sending IM to those contacts will result in partial success.
- * @since S60 3.0
- * @param aContactIds Contact Model Ids of the recipient(s)
- * @param aContentType MIME type of the content
- * @param aContent The content of the message
- * @return operation code
- *
- * NOTE: Not yet supported!
- */
- virtual TInt SendPToPMessageL(
- const CContactIdArray& aContactIds,
- const TDesC& aContentType,
- const TDesC8& aContent ) = 0;
-
- /**
- * Method for sending person-to-person text message using
- * directly the User IDs.
- * This method is asynchronous and its completion is signaled
- * in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * @since S60 3.0
- * @param aUserId the recipient of the message
- * @param aContent the message in UNICODE
- * @return operation code.
- * @leave KImApiErrNotRegistered observer was not registered
- * @leave KImApiErrInvalidUserId wrong User ID
- */
- virtual TInt SendPToPMessageL(
- const TDesC& aUserId,
- const TDesC16& aContent ) = 0;
-
- /**
- * Method for sending person-to-person text message using
- * directly the User IDs.
- * This method is asynchronous and its completion is signaled
- * in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * @since S60 3.0
- * @param aUserIds recipient(s) of the message
- * @param aContent the message in UNICODE
- * @return operation code.
- * @leave KImApiErrNotRegistered observer was not registered
- * @leave KImApiErrInvalidUserId wrong User ID
- */
- virtual TInt SendPToPMessageL(
- const MDesCArray& aUserIds,
- const TDesC16& aContent ) = 0;
-
- /**
- * Method for sending person-to-person binary (or 8 bit text) message
- * using directly the User IDs.
- * This method is asynchronous and its completion is signaled
- * in HandleMessageSentL() method.
- * The method will leave on error. The API specific error codes are
- * in imerrors.h file
- * @since S60 3.0
- * @param aUserIds recipient(s) of the message
- * @param aContentType MIME type of the message
- * @param aContent the message
- * @return operation code.
- *
- * NOTE: Not yet supported!
- */
- virtual TInt SendPToPMessageL(
- const MDesCArray& aUserIds,
- const TDesC& aContentType,
- const TDesC8& aContent ) = 0;
-
- };
-
-
-// CLASS DECLARATION
-/**
-* Observer interface for Instant Messaging
-* The user shall implement this interface and register it through the MImClient
-* interface to the API to be able to receive IMs
-*
-* @lib imclient.lib
-* @since S60 3.0
-*/
-class MImObserver
- {
-
- public:
-
- /**
- * This method is called when the SendPToPMessageL succeeded
- * @since S60 3.0
- * @param aOpCode operation code matching the called functions.
- * @param aErrorCode error codes.
- */
- virtual void HandleMessageSentL(
- const TInt aOpCode,
- const TInt aErrorCode ) = 0;
-
- /**
- * This method is called when the SendPToPMessageL failed for some reason.
- * If the IM was sent to more recipients the error can be a partial
- * success. In that case the detailed error codes for each user can
- * fetched separately. Please note that the aDetailedError is valid
- * during the function call. After that it gets destroyed in the API.
- * @since S60 3.0
- * @param aOpCode operation code matching the called functions.
- * @param aErrorCode error codes.
- * @param aDetailedError list of errors for each failed user ID.
- */
- virtual void HandleSendErrorL(
- const TInt aOpCode,
- const TInt aErrorCode,
- MImClientDetailedError* aDetailedError ) = 0;
-
- /**
- * This method is called when a new point-to-point text message
- * has arrived.
- * @since S60 3.0
- * @param aErrorCode error codes (to be defined)
- * @param aContactId Contact model ID of the sender
- * @param aUserId UserID of the message sender
- * @param aMessageType MIME type of the received message
- * @param aContent the message in UNICODE
- */
- virtual void HandleNewPToPMessageL(
- const TInt aErrorCode,
- const TContactItemId aContactId,
- const TDesC& aUserId,
- const TDesC& aMessageType,
- const TDesC16& aContent ) = 0;
-
- /**
- * This method is called when a new point-to-point message (8bit)
- * has arrived. The message can be text or binary data.
- * @since S60 3.0
- * @param aErrorCode error codes (to be defined)
- * @param aContactId Contact model ID of the sender
- * @param aUserId UserID of the message sender
- * @param aMessageType MIME type of the received message
- * @param aContent the message
- *
- * NOTE: Not yet supported!
- */
- virtual void HandleNewPToPMessageL(
- const TInt aErrorCode,
- const TContactItemId aContactId,
- const TDesC& aUserId,
- const TDesC& aMessageType,
- const TDesC8& aContent ) = 0;
-
- };
-
-// CLASS DECLARATION
-/**
-* Detailed errors accessor class
-* @lib imclient.lib
-* @since S60 3.0
-*/
-class MImClientDetailedError
- {
-
- public:
- /**
- * Gets the number of failed User IDs
- * @since S60 3.0
- * @return number of failed user IDs
- */
- virtual TInt Count() = 0;
-
- /**
- * Gets the failed User ID
- * @since S60 3.0
- * @param aIndex index of the user in the list
- * @return failed user ID
- */
- virtual const TDesC& UserId( TInt aIndex ) = 0;
-
- /**
- * Gets the reason of the failure. The API specific error codes are
- * defined in imerrors.h file.
- * @since S60 3.0
- * @param aIndex index of the user in the list
- * @return the fail reason
- */
- virtual TInt ErrorCode( TInt aIndex ) = 0;
-
- };
-
-#endif
-// End of File