convergedcallengine/cce/inc/ccceobserverasynchroniser.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
equal deleted inserted replaced
-1:000000000000 0:ff3b6d0fd310
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Asynchronises cce observer calls 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CCCEOBSERVERASYNCHRONISER_H
       
    20 #define CCCEOBSERVERASYNCHRONISER_H
       
    21 
       
    22 #include <e32base.h>
       
    23 #include "mcceobserver.h"
       
    24 #include "mccessobserver.h"
       
    25 #include "mcceconferencecallobserver.h"
       
    26 #include "mccedtmfobserver.h"
       
    27 #include "mcceextensionobserver.h"
       
    28 
       
    29 
       
    30 NONSHARABLE_CLASS(CCCEObserverAsynchroniser) : public CActive,  
       
    31                                     MCCEObserver,  
       
    32                                     MCCESsObserver, 
       
    33                                     MCCEConferenceCallObserver, 
       
    34                                     MCCEDtmfObserver, 
       
    35                                     MCCEExtensionObserver
       
    36     {
       
    37     
       
    38 public:
       
    39     
       
    40     /**
       
    41     * Two-phased constructor
       
    42     * 
       
    43     */
       
    44     static CCCEObserverAsynchroniser* NewL();
       
    45    
       
    46     /**
       
    47     * Two-phased constructor
       
    48     * Leaves pointer in cleanup stack
       
    49     */
       
    50     static CCCEObserverAsynchroniser* NewLC();
       
    51 
       
    52     /**
       
    53      * Destructor
       
    54      * 
       
    55      */
       
    56     ~CCCEObserverAsynchroniser();
       
    57     
       
    58     void SetMCCEObserver(MCCEObserver* aObserver);
       
    59     
       
    60     void SetMCCESsObserver(MCCESsObserver* aObserver);
       
    61     
       
    62     void SetMCCEConferenceCallObserver(const MCCEConferenceCallObserver* aObserver);
       
    63     
       
    64     void SetMCCEDtmfObserver(const MCCEDtmfObserver* aObserver);
       
    65     
       
    66     void SetMCCEExtensionObserver(const MCCEExtensionObserver* aObserver);
       
    67    
       
    68    
       
    69     MCCEObserver& GetMCCEObserver();
       
    70     
       
    71     MCCESsObserver& GetMCCESsObserver();
       
    72     
       
    73     MCCEConferenceCallObserver& GetMCCEConferenceCallObserver();
       
    74     
       
    75     MCCEDtmfObserver& GetMCCEDtmfObserver();
       
    76     
       
    77     MCCEExtensionObserver& GetMCCEExtensionObserver();
       
    78     
       
    79     /**
       
    80     * From CActive
       
    81     */
       
    82     void RunL();
       
    83    
       
    84     /**
       
    85     * From CActive
       
    86     */
       
    87     TInt RunError(TInt aError);
       
    88    
       
    89     /**
       
    90     * From CActive
       
    91     */
       
    92     void DoCancel();      
       
    93    
       
    94     /**
       
    95     * From MCCEObserver
       
    96     */
       
    97     void IncomingCall( MCCECall& aCall );
       
    98 
       
    99     /**
       
   100     * From MCCEObserver
       
   101     */
       
   102     void MOCallCreated( MCCECall& aCall );
       
   103 
       
   104     /**
       
   105     * From MCCEObserver
       
   106     */
       
   107 	void DataPortName( TName& aPortName );
       
   108 
       
   109     /**
       
   110     * From MCCEObserver
       
   111     */
       
   112     void ConferenceCallCreated( MCCEConferenceCall& aConferenceCall );
       
   113 
       
   114     /**
       
   115     * From MCCESsObserver
       
   116     */
       
   117 	void BarringEventOccurred( const MCCESsObserver::TCCESsBarringEvent aBarringEvent );
       
   118 								  
       
   119     /**
       
   120     * From MCCESsObserver
       
   121     */
       
   122 	void CLIEventOccurred( const MCCESsObserver::TCCESsCLIEvent aCallLineEvent );
       
   123 								  
       
   124 
       
   125     /**
       
   126     * From MCCESsObserver
       
   127     */
       
   128 	void CallForwardEventOccurred( 
       
   129 						const MCCESsObserver::TCCESsCallForwardEvent aCallForwardEvent,
       
   130 						const TDesC& aRemoteAddress );
       
   131 
       
   132     /**
       
   133     * From MCCESsObserver
       
   134     */
       
   135 	void CallCugEventOccurred( const MCCESsObserver::TCCESsCugEvent aCugEvent );
       
   136 
       
   137     /**
       
   138     * From MCCESsObserver
       
   139     */
       
   140 	void NotifyCurrentActiveALSLine( TInt aLine );
       
   141 
       
   142     /**
       
   143     * From MCCEConferenceCallObserver
       
   144     */
       
   145     void CallEventOccurred( 
       
   146                  const MCCEConferenceCallObserver::TCCEConferenceCallEvent aEvent,
       
   147                  MCCECall* aReferredCall=NULL  );
       
   148 
       
   149     /**
       
   150     * From MCCEConferenceCallObserver
       
   151     */
       
   152     void CallStateChanged( 
       
   153                  const MCCEConferenceCallObserver::TCCEConferenceCallState aState );
       
   154 
       
   155 
       
   156     /**
       
   157     * From MCCEConferenceCallObserver
       
   158     */
       
   159     void CallCapsChanged( 
       
   160                  const MCCEConferenceCallObserver::TCCEConferenceCallCaps aCaps );
       
   161      
       
   162     /**
       
   163     * From MCCEConferenceCallObserver
       
   164     */
       
   165     void ErrorOccurred( TCCPConferenceCallError aError  );
       
   166 
       
   167 	/**
       
   168     * From MCCEConferenceCallObserver
       
   169     */
       
   170 	void CallDurationChanged( const TTimeIntervalSeconds aDuration );
       
   171    
       
   172     /**
       
   173     * From MCCEDtmfObserver
       
   174     */	
       
   175 	void HandleDTMFEvent( const MCCEDtmfObserver::TCCEDtmfEvent aEvent, 
       
   176                                   const TInt aError, 
       
   177                                   const TChar aTone );
       
   178     /**
       
   179     * From MCCEExtensionObserver
       
   180     */                                  
       
   181     void HandleExtensionEvents( TUint32 aServiceId,
       
   182     	TInt aEvent,
       
   183         TInt aStatus );
       
   184         
       
   185 private:
       
   186     
       
   187     enum TEventType
       
   188         {
       
   189         EIncomingCall = 0,
       
   190         EMOCallCreated,
       
   191         EDataPortName,
       
   192         EConferenceCallCreated,
       
   193         EBarringEventOccurred,
       
   194         ECLIEventOccurred,
       
   195         ECallForwardEventOccurred,
       
   196         ECallCugEventOccurred,
       
   197         ENotifyCurrentActiveALSLine,
       
   198         ECallEventOccurred,
       
   199         ECallStateChanged,
       
   200         ECallCapsChanged,
       
   201         EErrorOccurred,
       
   202         ECallDurationChanged,
       
   203         EHandleDTMFEvent,
       
   204         EHandleExtensionEvents           
       
   205         };
       
   206         
       
   207     class TEventStorage
       
   208     {
       
   209     public:
       
   210         TEventType iEventType;
       
   211         MCCECall* iCall;
       
   212         MCCEConferenceCall* iConferenceCall;
       
   213         const TDesC* iDescriptor;
       
   214         TInt iInt1;
       
   215         TInt iInt2;
       
   216         TChar iChar;
       
   217         TUint32 iServiceId;
       
   218         TTimeIntervalSeconds iDuration;
       
   219         TName iTName;
       
   220     };
       
   221     
       
   222     /**
       
   223     * Constructor
       
   224     */
       
   225     CCCEObserverAsynchroniser();
       
   226  
       
   227     /** 
       
   228     * Leaving stuff in constructor 
       
   229     */
       
   230     void ConstructL();
       
   231     
       
   232     void AddEvent(TEventStorage aEvent);
       
   233     
       
   234     RArray<TEventStorage> iEvents;
       
   235    
       
   236     TBool iIsRuning;
       
   237     
       
   238     MCCEObserver* iCCEObserver;
       
   239    
       
   240     MCCESsObserver* iCCESsObserver;
       
   241    
       
   242     MCCEConferenceCallObserver* iCCEConferenceCallObserver;
       
   243   
       
   244     MCCEDtmfObserver* iCCEDtmfObserver;
       
   245    
       
   246     MCCEExtensionObserver* iCCEExtensionObserver;
       
   247     
       
   248     };
       
   249 
       
   250 #endif // CCCEOBSERVERASYNCHRONISER_H