imservices/instantmessagingcache/imcacheclient/inc/cimcacheeventhandler.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:  cache message change observer
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
#ifndef __CIMCACHEEVENTHANDLER_H__
hgs
parents:
diff changeset
    20
#define __CIMCACHEEVENTHANDLER_H__
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <e32std.h>
hgs
parents:
diff changeset
    23
#include <e32base.h>
hgs
parents:
diff changeset
    24
#include <s32mem.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include <imcachedefs.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
class MIMCacheClient;
hgs
parents:
diff changeset
    29
class MIMCacheEventHandler;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
 * a class to listen to server cache message change
hgs
parents:
diff changeset
    33
 */
hgs
parents:
diff changeset
    34
NONSHARABLE_CLASS( CIMCacheEventHandler ): public CActive
hgs
parents:
diff changeset
    35
    {
hgs
parents:
diff changeset
    36
	public:
hgs
parents:
diff changeset
    37
		/**
hgs
parents:
diff changeset
    38
		* Two-phased constructor.
hgs
parents:
diff changeset
    39
		* @param aRegistrar ,client refence
hgs
parents:
diff changeset
    40
		* @param aHandler a handler to send data to ui client
hgs
parents:
diff changeset
    41
		*/
hgs
parents:
diff changeset
    42
		static CIMCacheEventHandler* NewL( MIMCacheClient& aRegistrar ,
hgs
parents:
diff changeset
    43
													 MIMCacheEventHandler& aHandler  );
hgs
parents:
diff changeset
    44
		/**
hgs
parents:
diff changeset
    45
		*  ~CIMCacheEventHandler.
hgs
parents:
diff changeset
    46
		*/
hgs
parents:
diff changeset
    47
    	virtual ~CIMCacheEventHandler();
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
    public: // From CActive
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
		/**
hgs
parents:
diff changeset
    52
		*  RunL
hgs
parents:
diff changeset
    53
		*/
hgs
parents:
diff changeset
    54
        void RunL();  
hgs
parents:
diff changeset
    55
        
hgs
parents:
diff changeset
    56
        /**
hgs
parents:
diff changeset
    57
		*  DoCancel
hgs
parents:
diff changeset
    58
		*/
hgs
parents:
diff changeset
    59
		void DoCancel();
hgs
parents:
diff changeset
    60
		
hgs
parents:
diff changeset
    61
		 /**
hgs
parents:
diff changeset
    62
          *  RunError
hgs
parents:
diff changeset
    63
          */
hgs
parents:
diff changeset
    64
		TInt RunError( TInt /* aError */);
hgs
parents:
diff changeset
    65
		
hgs
parents:
diff changeset
    66
			
hgs
parents:
diff changeset
    67
	public : // new functions
hgs
parents:
diff changeset
    68
			/**
hgs
parents:
diff changeset
    69
			*  UnRegisterObserver from server
hgs
parents:
diff changeset
    70
			*/
hgs
parents:
diff changeset
    71
			void UnRegisterObserver();
hgs
parents:
diff changeset
    72
	private:
hgs
parents:
diff changeset
    73
	
hgs
parents:
diff changeset
    74
		/**
hgs
parents:
diff changeset
    75
		* default CIMCacheEventHandler
hgs
parents:
diff changeset
    76
		* @param aRegistrar ,client refence
hgs
parents:
diff changeset
    77
		* @param aHandler a handler to send data to ui client
hgs
parents:
diff changeset
    78
		*/
hgs
parents:
diff changeset
    79
		CIMCacheEventHandler( MIMCacheClient& aRegistrar, 
hgs
parents:
diff changeset
    80
							  MIMCacheEventHandler& aHandler );
hgs
parents:
diff changeset
    81
		/**
hgs
parents:
diff changeset
    82
		*  default ConstructL
hgs
parents:
diff changeset
    83
		*/
hgs
parents:
diff changeset
    84
    	void ConstructL();
hgs
parents:
diff changeset
    85
    	
hgs
parents:
diff changeset
    86
    	/**
hgs
parents:
diff changeset
    87
    	* Gets called when data update is available.
hgs
parents:
diff changeset
    88
    	* get data buffer from server
hgs
parents:
diff changeset
    89
    	*/
hgs
parents:
diff changeset
    90
    	void GetBufferChatDataL() ;
hgs
parents:
diff changeset
    91
      
hgs
parents:
diff changeset
    92
      	/**
hgs
parents:
diff changeset
    93
    	* Gets called when data update is available.
hgs
parents:
diff changeset
    94
    	* extract the data and send to client
hgs
parents:
diff changeset
    95
    	* @param aChatDataBuffer structure of SIMCacheMessageData type
hgs
parents:
diff changeset
    96
    	* @param aMore indicate more packets pending at server side
hgs
parents:
diff changeset
    97
    	*/
hgs
parents:
diff changeset
    98
    	void InternalizeChatDataL( TPtr8 aChatDataBuffer , 
hgs
parents:
diff changeset
    99
    							   TBool& aMore );
hgs
parents:
diff changeset
   100
		
hgs
parents:
diff changeset
   101
    	/**
hgs
parents:
diff changeset
   102
    	* Gets called when data update is available.
hgs
parents:
diff changeset
   103
    	* get data buffer from server
hgs
parents:
diff changeset
   104
		* @param aEventType, type of data
hgs
parents:
diff changeset
   105
    	*/	
hgs
parents:
diff changeset
   106
        void GetBufferedChatItemL( TIMCacheEventType aEventType );
hgs
parents:
diff changeset
   107
        
hgs
parents:
diff changeset
   108
        /**
hgs
parents:
diff changeset
   109
    	* read the stream and write into buffer
hgs
parents:
diff changeset
   110
    	* @param aEventType, type of data
hgs
parents:
diff changeset
   111
    	* @param aChatItemBuffer structure of SIMCacheContactData type
hgs
parents:
diff changeset
   112
       	*/
hgs
parents:
diff changeset
   113
          	
hgs
parents:
diff changeset
   114
    	void InternalizeChatItemL( TIMCacheEventType aEventType, 
hgs
parents:
diff changeset
   115
    							   TPtr8 aChatItemBuffer );
hgs
parents:
diff changeset
   116
	
hgs
parents:
diff changeset
   117
	private: // data
hgs
parents:
diff changeset
   118
	
hgs
parents:
diff changeset
   119
			
hgs
parents:
diff changeset
   120
		// doesn't own: registrar
hgs
parents:
diff changeset
   121
		MIMCacheClient& iRegistrar;
hgs
parents:
diff changeset
   122
		// owned , need to observer to server or not
hgs
parents:
diff changeset
   123
		TBool iContinueObserving ;
hgs
parents:
diff changeset
   124
		// client side observer event 
hgs
parents:
diff changeset
   125
		MIMCacheEventHandler& iUpdateHandler;
hgs
parents:
diff changeset
   126
	
hgs
parents:
diff changeset
   127
		
hgs
parents:
diff changeset
   128
    };
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
#endif      //  __CIMCACHEEVENTHANDLER_H__
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
//  END OF FILE
hgs
parents:
diff changeset
   134