imservices/instantmessagingcache/imcacheclient/inc/cimcacheaccesseventhandler.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 __CIMCACHEACCESSEVENTHANDLER_H__
hgs
parents:
diff changeset
    20
#define __CIMCACHEACCESSEVENTHANDLER_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( CIMCacheAccessEventHandler ): 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 CIMCacheAccessEventHandler* NewL( MIMCacheClient& aRegistrar ,
hgs
parents:
diff changeset
    43
										   MIMCacheEventHandler& aHandler );
hgs
parents:
diff changeset
    44
		/**
hgs
parents:
diff changeset
    45
		*  ~CIMCacheAccessEventHandler.
hgs
parents:
diff changeset
    46
		*/
hgs
parents:
diff changeset
    47
    	virtual ~CIMCacheAccessEventHandler();
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
		
hgs
parents:
diff changeset
    68
		
hgs
parents:
diff changeset
    69
			
hgs
parents:
diff changeset
    70
	public : // new functions
hgs
parents:
diff changeset
    71
			/**
hgs
parents:
diff changeset
    72
			*  UnRegisterObserver from server
hgs
parents:
diff changeset
    73
			*/
hgs
parents:
diff changeset
    74
			void UnRegisterObserver();
hgs
parents:
diff changeset
    75
	private:
hgs
parents:
diff changeset
    76
	
hgs
parents:
diff changeset
    77
		/**
hgs
parents:
diff changeset
    78
		* default CIMCacheAccessEventHandler
hgs
parents:
diff changeset
    79
		* @param aRegistrar ,client refence
hgs
parents:
diff changeset
    80
		* @param aHandler a handler to send data to ui client
hgs
parents:
diff changeset
    81
		*/
hgs
parents:
diff changeset
    82
		CIMCacheAccessEventHandler( MIMCacheClient& aRegistrar, 
hgs
parents:
diff changeset
    83
							  MIMCacheEventHandler& aHandler);
hgs
parents:
diff changeset
    84
		/**
hgs
parents:
diff changeset
    85
		*  default ConstructL
hgs
parents:
diff changeset
    86
		*/
hgs
parents:
diff changeset
    87
    	void ConstructL();
hgs
parents:
diff changeset
    88
    	
hgs
parents:
diff changeset
    89
   		
hgs
parents:
diff changeset
    90
        /**
hgs
parents:
diff changeset
    91
         * Gets called when data update is available.
hgs
parents:
diff changeset
    92
         * Client can then decide wether to use the old one
hgs
parents:
diff changeset
    93
         * @param aBuffer structure of SIMCacheMessageData type
hgs
parents:
diff changeset
    94
         */
hgs
parents:
diff changeset
    95
    	void GetBufferChatDataL();
hgs
parents:
diff changeset
    96
    	
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
        /**
hgs
parents:
diff changeset
    99
         * Gets called when data update is available.
hgs
parents:
diff changeset
   100
         * extract the chat data and send to client
hgs
parents:
diff changeset
   101
         * @param aChatDataBuffer ,buffer containing number of chat data
hgs
parents:
diff changeset
   102
         * @param aMore, indicate that there is still pending packets
hgs
parents:
diff changeset
   103
         */
hgs
parents:
diff changeset
   104
    	void InternalizeChatDataL( TPtr8 aChatDataBuffer , TBool& aMore );
hgs
parents:
diff changeset
   105
    	
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
        /**
hgs
parents:
diff changeset
   108
        * Gets called when data update is available.
hgs
parents:
diff changeset
   109
        * get data buffer from server
hgs
parents:
diff changeset
   110
        * @param aEventType, type of data
hgs
parents:
diff changeset
   111
        */  
hgs
parents:
diff changeset
   112
        void GetBufferedChatItemL( TIMCacheEventType aEventType );
hgs
parents:
diff changeset
   113
        
hgs
parents:
diff changeset
   114
        /**
hgs
parents:
diff changeset
   115
        * read the stream and write into buffer
hgs
parents:
diff changeset
   116
        * @param aEventType, type of data
hgs
parents:
diff changeset
   117
        * @param aChatItemBuffer structure of SIMCacheContactData type
hgs
parents:
diff changeset
   118
        */
hgs
parents:
diff changeset
   119
            
hgs
parents:
diff changeset
   120
        void InternalizeChatItemL( TIMCacheEventType aEventType, 
hgs
parents:
diff changeset
   121
                                   TPtr8 aChatItemBuffer );
hgs
parents:
diff changeset
   122
   
hgs
parents:
diff changeset
   123
	private: // data
hgs
parents:
diff changeset
   124
	
hgs
parents:
diff changeset
   125
		// doesn't own: registrar
hgs
parents:
diff changeset
   126
		MIMCacheClient& iRegistrar;
hgs
parents:
diff changeset
   127
		// owned , need to observer to server or not
hgs
parents:
diff changeset
   128
		TBool iContinueObserving ;
hgs
parents:
diff changeset
   129
		// client side observer event 
hgs
parents:
diff changeset
   130
		MIMCacheEventHandler& iAccessHandler;
hgs
parents:
diff changeset
   131
		
hgs
parents:
diff changeset
   132
    };
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
#endif      //  __CIMCACHEACCESSEVENTHANDLER_H__
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
//  END OF FILE
hgs
parents:
diff changeset
   138