imservices/instantmessagingcache/imcacheclient/inc/cimcacheclient.h
author hgs
Wed, 03 Nov 2010 22:25:05 +0530
changeset 52 3d676fce9a4e
parent 51 61fad867f68e
permissions -rw-r--r--
201044_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  client class to connect to server
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __CIMCACHECLIENT_H__
hgs
parents:
diff changeset
    21
#define __CIMCACHECLIENT_H__
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include <e32base.h>
hgs
parents:
diff changeset
    24
#include <imcachedefs.h>
hgs
parents:
diff changeset
    25
#include "mimcacheclient.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
class MIMCacheEventHandler;
hgs
parents:
diff changeset
    28
class CIMCacheEventHandler;
hgs
parents:
diff changeset
    29
class MIMCacheEventHandler;
hgs
parents:
diff changeset
    30
class CIMCacheAccessEventHandler;
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
 * CIMCacheClient ClientServer 
hgs
parents:
diff changeset
    33
  */
hgs
parents:
diff changeset
    34
class CIMCacheClient : public CBase,
hgs
parents:
diff changeset
    35
					   public RSessionBase,
hgs
parents:
diff changeset
    36
					   public MIMCacheClient
hgs
parents:
diff changeset
    37
    {
hgs
parents:
diff changeset
    38
    
hgs
parents:
diff changeset
    39
    public:     // Constructor and destructor
hgs
parents:
diff changeset
    40
    	/*
hgs
parents:
diff changeset
    41
    	* CIMCacheClient
hgs
parents:
diff changeset
    42
       	*/
hgs
parents:
diff changeset
    43
         CIMCacheClient();
hgs
parents:
diff changeset
    44
        
hgs
parents:
diff changeset
    45
        /*
hgs
parents:
diff changeset
    46
    	* ~CIMCacheClient
hgs
parents:
diff changeset
    47
       	*/
hgs
parents:
diff changeset
    48
        ~CIMCacheClient();
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
    public:     // New methods
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
		/**
hgs
parents:
diff changeset
    54
    	* Connect
hgs
parents:
diff changeset
    55
       	*/
hgs
parents:
diff changeset
    56
        TInt Connect();      
hgs
parents:
diff changeset
    57
       
hgs
parents:
diff changeset
    58
       	/**
hgs
parents:
diff changeset
    59
    	* Register to observer converstaionitems data updates
hgs
parents:
diff changeset
    60
    	* @param aObserver the observer interface
hgs
parents:
diff changeset
    61
    	*/
hgs
parents:
diff changeset
    62
        void RegisterUpdateObserverL( MIMCacheEventHandler& aObserver );
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    	/**
hgs
parents:
diff changeset
    65
    	* Unregister a converstaionitems data update observer
hgs
parents:
diff changeset
    66
    	* @param aObserver the observer interface
hgs
parents:
diff changeset
    67
    	*/
hgs
parents:
diff changeset
    68
        void UnRegisterUpdateObserver( MIMCacheEventHandler& aObserver );
hgs
parents:
diff changeset
    69
		/**
hgs
parents:
diff changeset
    70
    	* Register to observer converstaionitems data access
hgs
parents:
diff changeset
    71
    	* @param aObserver the observer interface
hgs
parents:
diff changeset
    72
    	*/
hgs
parents:
diff changeset
    73
        void RegisterAccessObserverL( MIMCacheEventHandler& aObserver );
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    	/**
hgs
parents:
diff changeset
    76
    	* Unregister a converstaionitems data access observer
hgs
parents:
diff changeset
    77
    	* @param aObserver the observer interface
hgs
parents:
diff changeset
    78
    	*/
hgs
parents:
diff changeset
    79
        void UnRegisterAccessObserver( MIMCacheEventHandler& aObserver);
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
		/**
hgs
parents:
diff changeset
    82
    	* start the transaction and perform the operation
hgs
parents:
diff changeset
    83
    	* @param aOperationType , operation to perform
hgs
parents:
diff changeset
    84
    	*/
hgs
parents:
diff changeset
    85
        TInt StartTransactionL( EIMCacheOperations aOperationType );
hgs
parents:
diff changeset
    86
        
hgs
parents:
diff changeset
    87
		/**
hgs
parents:
diff changeset
    88
    	* start the transaction and perform the operation 
hgs
parents:
diff changeset
    89
    	* @param aText ,text to send to server
hgs
parents:
diff changeset
    90
		* @param aOperationType operation to perform
hgs
parents:
diff changeset
    91
    	*/
hgs
parents:
diff changeset
    92
		void StartTransactionL( EIMCacheOperations aOperationType,
hgs
parents:
diff changeset
    93
								const TDesC& aText
hgs
parents:
diff changeset
    94
								) ;
hgs
parents:
diff changeset
    95
									   
hgs
parents:
diff changeset
    96
		/**
hgs
parents:
diff changeset
    97
    	* start the transaction and perform the operation 
hgs
parents:
diff changeset
    98
    	* @param aServiceId service id to use
hgs
parents:
diff changeset
    99
		* @param aUserId user id to use
hgs
parents:
diff changeset
   100
		* @param aOperationType operation to perform
hgs
parents:
diff changeset
   101
    	*/
hgs
parents:
diff changeset
   102
		void StartTransactionL(	EIMCacheOperations aOperationType ,
hgs
parents:
diff changeset
   103
								TInt aServiceId,
hgs
parents:
diff changeset
   104
								const TDesC& aText
hgs
parents:
diff changeset
   105
								);
hgs
parents:
diff changeset
   106
        
hgs
parents:
diff changeset
   107
       	/**
hgs
parents:
diff changeset
   108
    	* start the transaction and perform the operation 
hgs
parents:
diff changeset
   109
    	* @param aServiceId service id to use
hgs
parents:
diff changeset
   110
		* @param aSender user id to use
hgs
parents:
diff changeset
   111
		* @param aRecipient,recipient user id
hgs
parents:
diff changeset
   112
		* @param aOperationType operation to perform
hgs
parents:
diff changeset
   113
    	*/						
hgs
parents:
diff changeset
   114
		void StartTransactionL( EIMCacheOperations aOperationType,
hgs
parents:
diff changeset
   115
								TInt aServiceId,
hgs
parents:
diff changeset
   116
								const TDesC& aText1 ,
hgs
parents:
diff changeset
   117
						   	  	const TDesC& aText2
hgs
parents:
diff changeset
   118
						   		) ;
hgs
parents:
diff changeset
   119
									   		
hgs
parents:
diff changeset
   120
		 
hgs
parents:
diff changeset
   121
		/**
hgs
parents:
diff changeset
   122
    	* to get the all unread message count from server
hgs
parents:
diff changeset
   123
    	* @param , aOwnUserId logged in user id
hgs
parents:
diff changeset
   124
    	* @return number of unread msg count
hgs
parents:
diff changeset
   125
    	*/
hgs
parents:
diff changeset
   126
		TInt GetInformationL(EIMCacheOperations aOperationType , TInt aServiceId,const TDesC& aBuddyId );
hgs
parents:
diff changeset
   127
		
hgs
parents:
diff changeset
   128
	   /**
hgs
parents:
diff changeset
   129
    	* to get the count from server
hgs
parents:
diff changeset
   130
        * @param aOperationType operation to perform
hgs
parents:
diff changeset
   131
    	* @param aServiceId, service id used
hgs
parents:
diff changeset
   132
    	* @param , aOwnUserId logged in user id
hgs
parents:
diff changeset
   133
    	* @return number of all unread msg count
hgs
parents:
diff changeset
   134
    	*/
hgs
parents:
diff changeset
   135
        TInt GetInformationL(EIMCacheOperations aOperationType, TInt aServiceId );	
hgs
parents:
diff changeset
   136
      
hgs
parents:
diff changeset
   137
		
hgs
parents:
diff changeset
   138
		/**
hgs
parents:
diff changeset
   139
    	* to get the list of availabe chats from server
hgs
parents:
diff changeset
   140
       	* @param aServiceId, service id used
hgs
parents:
diff changeset
   141
       	* @return list buffer
hgs
parents:
diff changeset
   142
    	*/
hgs
parents:
diff changeset
   143
	    TPtr8 GetChatListL( const TInt& aServiceId = -1);
hgs
parents:
diff changeset
   144
									   										   		
hgs
parents:
diff changeset
   145
private: 
hgs
parents:
diff changeset
   146
		
hgs
parents:
diff changeset
   147
		/**
hgs
parents:
diff changeset
   148
    	* CreateArgumentsL pack the given parameters 
hgs
parents:
diff changeset
   149
    	* @param aServiceId service id to use
hgs
parents:
diff changeset
   150
		* @param aUserId user id to use
hgs
parents:
diff changeset
   151
		* @param aText,a text to send 
hgs
parents:
diff changeset
   152
		* @return TIpcArgs, packed arguments
hgs
parents:
diff changeset
   153
	   	*/									   		
hgs
parents:
diff changeset
   154
		TIpcArgs CreateArgumentsL( TInt aServiceId, const TDesC& aText1  ,
hgs
parents:
diff changeset
   155
									   const TDesC& aText2  );
hgs
parents:
diff changeset
   156
									   
hgs
parents:
diff changeset
   157
	   	/**
hgs
parents:
diff changeset
   158
    	* CreateArgumentsL pack the given parameters  
hgs
parents:
diff changeset
   159
    	* @param aServiceId service id to use
hgs
parents:
diff changeset
   160
		* @param aUserId user id to use
hgs
parents:
diff changeset
   161
		* @return TIpcArgs, packed arguments
hgs
parents:
diff changeset
   162
    	*/	
hgs
parents:
diff changeset
   163
        TIpcArgs CreateArgumentsL( TInt aServiceId ,
hgs
parents:
diff changeset
   164
								  const TDesC& aText  );
hgs
parents:
diff changeset
   165
		
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
public: // MIMCacheClient
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
		/**
hgs
parents:
diff changeset
   172
    	* Registeres the cache update observer to server
hgs
parents:
diff changeset
   173
    	* @param aStatus status message to regisetr
hgs
parents:
diff changeset
   174
		* @param aRight,right is operations
hgs
parents:
diff changeset
   175
    	*/
hgs
parents:
diff changeset
   176
        void RegisterObserverToServerL( TRequestStatus& aStatus,EIMCacheOperations aRight ) ;
hgs
parents:
diff changeset
   177
        
hgs
parents:
diff changeset
   178
       
hgs
parents:
diff changeset
   179
        /**
hgs
parents:
diff changeset
   180
    	* unRegisteres the cache update  observer to server
hgs
parents:
diff changeset
   181
    	* @param aStatus status message to regisetr
hgs
parents:
diff changeset
   182
		* @param aRight,right is operations
hgs
parents:
diff changeset
   183
    	*/
hgs
parents:
diff changeset
   184
        void UnRegisterObserverToServerL(  TRequestStatus& aStatus, EIMCacheOperations aRight ) ;
hgs
parents:
diff changeset
   185
        
hgs
parents:
diff changeset
   186
        /**
hgs
parents:
diff changeset
   187
         * cancels any outstanding requests pending from the server
hgs
parents:
diff changeset
   188
         * @param aStatus status message to regisetr
hgs
parents:
diff changeset
   189
         * @param aRight,right is operations
hgs
parents:
diff changeset
   190
         */
hgs
parents:
diff changeset
   191
        void CancelRequestL( TRequestStatus& aStatus, EIMCacheOperations aRight);
hgs
parents:
diff changeset
   192
         
hgs
parents:
diff changeset
   193
        /**
hgs
parents:
diff changeset
   194
        * Gets called when data update is available.
hgs
parents:
diff changeset
   195
        * Client can then decide wether to use the old one
hgs
parents:
diff changeset
   196
        * @param aRight, operations
hgs
parents:
diff changeset
   197
        * @param abuuferptr 
hgs
parents:
diff changeset
   198
        */
hgs
parents:
diff changeset
   199
        TPtr8 GetBufferedDataL(EIMCacheOperations aOperationType );
hgs
parents:
diff changeset
   200
       
hgs
parents:
diff changeset
   201
	private:
hgs
parents:
diff changeset
   202
		
hgs
parents:
diff changeset
   203
		 // owned , a array for all client who has 
hgs
parents:
diff changeset
   204
		 // register update data change event 
hgs
parents:
diff changeset
   205
		 CIMCacheEventHandler* iUpdateObserver;
hgs
parents:
diff changeset
   206
		 // owned , a array for all client who has 
hgs
parents:
diff changeset
   207
		 // register update data change event 
hgs
parents:
diff changeset
   208
		 CIMCacheAccessEventHandler* iAccessObserver;
hgs
parents:
diff changeset
   209
		 //owned buffer to get chats from server.
hgs
parents:
diff changeset
   210
		 HBufC8* iChatBuffer;
hgs
parents:
diff changeset
   211
		
hgs
parents:
diff changeset
   212
    };
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
#endif      //  __CIMCACHECLIENT_H__
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
//  END OF FILE
hgs
parents:
diff changeset
   218