phoneclientserver/callui/inc/cauiengine/cauiactiveobject.h
author hgs
Wed, 21 Jul 2010 18:26:52 +0300
changeset 33 8d5d7fcf9b59
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2004-2005 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:  Active object to handle global list query results.
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 CAUIACTIVEOBJECT_H
hgs
parents:
diff changeset
    20
#define CAUIACTIVEOBJECT_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include <e32base.h>
hgs
parents:
diff changeset
    25
#include <badesca.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// DATA TYPES
hgs
parents:
diff changeset
    29
typedef CArrayFixFlat<TInt> CCaUiTIntArray;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    33
class MCaUiReconnectQueryObserver;
hgs
parents:
diff changeset
    34
class CCoeEnv;
hgs
parents:
diff changeset
    35
class CPhCntFactory;
hgs
parents:
diff changeset
    36
class CPhCntMatcher;
hgs
parents:
diff changeset
    37
class CCaUiMessageSender;
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// CLASS DECLARATION
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
/**
hgs
parents:
diff changeset
    42
*  Active object to handle global list query results.
hgs
parents:
diff changeset
    43
*
hgs
parents:
diff changeset
    44
*  @lib CaUiEngine.lib
hgs
parents:
diff changeset
    45
*  @since 2.6
hgs
parents:
diff changeset
    46
*/
hgs
parents:
diff changeset
    47
NONSHARABLE_CLASS( CCaUiGlnActiveObject )
hgs
parents:
diff changeset
    48
:   public CActive
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
    public: // Data types
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
        /* 
hgs
parents:
diff changeset
    53
        * The reconnect query options.
hgs
parents:
diff changeset
    54
        */
hgs
parents:
diff changeset
    55
        enum TCaUiReconnectType
hgs
parents:
diff changeset
    56
            {
hgs
parents:
diff changeset
    57
            ECaUiVoiceCall = 0,  // Voice call.
hgs
parents:
diff changeset
    58
            ECaUiVideoCall = 1,  // Video call.
hgs
parents:
diff changeset
    59
  #ifdef RD_UNIFIED_EDITOR
hgs
parents:
diff changeset
    60
            ECaUiMsg       = 2   // Unified editor.
hgs
parents:
diff changeset
    61
  #else // RD_UNIFIED_EDITOR
hgs
parents:
diff changeset
    62
            ECaUiMms       = 2,  // MMS.
hgs
parents:
diff changeset
    63
            ECaUiSms       = 3   // SMS.
hgs
parents:
diff changeset
    64
  #endif // // RD_UNIFIED_EDITOR
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
        *   The editor types that can be launched.
hgs
parents:
diff changeset
    70
        *   
hgs
parents:
diff changeset
    71
        *   ECaUiEditorSMS SMS editor.
hgs
parents:
diff changeset
    72
        *   ECaUiEditorMMS MMS editor.
hgs
parents:
diff changeset
    73
        */
hgs
parents:
diff changeset
    74
        enum TCaUiEditorType
hgs
parents:
diff changeset
    75
            {
hgs
parents:
diff changeset
    76
  #ifdef RD_UNIFIED_EDITOR
hgs
parents:
diff changeset
    77
            ECaUiEditorMSG = 0
hgs
parents:
diff changeset
    78
  #else // RD_UNIFIED_EDITOR
hgs
parents:
diff changeset
    79
            ECaUiEditorSMS = 0,
hgs
parents:
diff changeset
    80
            ECaUiEditorMMS = 1
hgs
parents:
diff changeset
    81
  #endif // RD_UNIFIED_EDITOR      
hgs
parents:
diff changeset
    82
            };
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    85
        
hgs
parents:
diff changeset
    86
        /**
hgs
parents:
diff changeset
    87
        * Two-phased constructor.
hgs
parents:
diff changeset
    88
        * 
hgs
parents:
diff changeset
    89
        * @param aObserver The observer to handle query results.
hgs
parents:
diff changeset
    90
        * @param aPhCntMatcher The Phone Contact Matcher. 
hgs
parents:
diff changeset
    91
        *        Ownership not transferred. If NULL, then matcher is created 
hgs
parents:
diff changeset
    92
        *        inside CCaUiGlnActiveObject.
hgs
parents:
diff changeset
    93
        * @param aPhoneNumber Pointer to the number where dial was tried.
hgs
parents:
diff changeset
    94
        * @param aAlias The alias corresponding the number. Can be NULL.
hgs
parents:
diff changeset
    95
        * @return Constructed CCaUiGlnActiveObject instance.
hgs
parents:
diff changeset
    96
        */
hgs
parents:
diff changeset
    97
        static CCaUiGlnActiveObject* NewL( 
hgs
parents:
diff changeset
    98
            MCaUiReconnectQueryObserver& aObserver,
hgs
parents:
diff changeset
    99
            CPhCntMatcher* aPhCntMatcher,
hgs
parents:
diff changeset
   100
            const TPtrC aPhoneNumber,
hgs
parents:
diff changeset
   101
            const TPtrC aAlias );
hgs
parents:
diff changeset
   102
        
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * Destructor.
hgs
parents:
diff changeset
   105
        */
hgs
parents:
diff changeset
   106
        virtual ~CCaUiGlnActiveObject();
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    public: // New functions
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
        /**
hgs
parents:
diff changeset
   113
        * Returns reconnect query options array, that must include options
hgs
parents:
diff changeset
   114
        * in the same order and in the same locations than they are in 
hgs
parents:
diff changeset
   115
        * reconnect query. Insert only TCaUiReconnectType members.
hgs
parents:
diff changeset
   116
        * 
hgs
parents:
diff changeset
   117
        * @return Reconnect query options array.
hgs
parents:
diff changeset
   118
        */
hgs
parents:
diff changeset
   119
        CCaUiTIntArray* ReconQueryOptionsArray();
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    public: // Functions from base classes
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
        /**
hgs
parents:
diff changeset
   125
        * @see CActive::DoCancel.
hgs
parents:
diff changeset
   126
        */
hgs
parents:
diff changeset
   127
        void DoCancel();
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
        /**
hgs
parents:
diff changeset
   130
        * @see CActive::RunL.
hgs
parents:
diff changeset
   131
        */
hgs
parents:
diff changeset
   132
        void RunL();
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
        /**
hgs
parents:
diff changeset
   136
        * @see CActive::SetActive.
hgs
parents:
diff changeset
   137
        */
hgs
parents:
diff changeset
   138
        void SetActive();
hgs
parents:
diff changeset
   139
        
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    private:
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
        /**
hgs
parents:
diff changeset
   144
        * C++ constructor.
hgs
parents:
diff changeset
   145
        * 
hgs
parents:
diff changeset
   146
        * @param aObserver The observer to handle query results.
hgs
parents:
diff changeset
   147
        */
hgs
parents:
diff changeset
   148
        CCaUiGlnActiveObject( 
hgs
parents:
diff changeset
   149
            MCaUiReconnectQueryObserver& aObserver );
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
        /**
hgs
parents:
diff changeset
   152
        * By default Symbian 2nd phase constructor is private.
hgs
parents:
diff changeset
   153
        *
hgs
parents:
diff changeset
   154
        * @see CCaUiGlnActiveObject::NewL().
hgs
parents:
diff changeset
   155
        */
hgs
parents:
diff changeset
   156
        void ConstructL( 
hgs
parents:
diff changeset
   157
            CPhCntMatcher* aPhCntMatcher,
hgs
parents:
diff changeset
   158
            const TPtrC aPhoneNumber,
hgs
parents:
diff changeset
   159
            const TPtrC aAlias );
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
        /**
hgs
parents:
diff changeset
   163
        * Launch the desired editor.
hgs
parents:
diff changeset
   164
        * 
hgs
parents:
diff changeset
   165
        * @param aEditorType The editor type to be launched.
hgs
parents:
diff changeset
   166
        */
hgs
parents:
diff changeset
   167
        void LaunchEditorL( TCaUiEditorType aEditorType );
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        /**
hgs
parents:
diff changeset
   170
        * Creates message sender.
hgs
parents:
diff changeset
   171
        * 
hgs
parents:
diff changeset
   172
        */        
hgs
parents:
diff changeset
   173
        void CreateMessageSenderL();
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
    private:    // Data
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
        // The query observer.
hgs
parents:
diff changeset
   179
        MCaUiReconnectQueryObserver*    iObserver;
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        // Storage for real addresses.
hgs
parents:
diff changeset
   182
        CDesCArrayFlat*                 iRealAddress;
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        // Storage for aliases.
hgs
parents:
diff changeset
   185
        CDesCArrayFlat*                 iAliases;
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
        // Storage for reconnect query options.
hgs
parents:
diff changeset
   188
        CCaUiTIntArray*                 iReConQueryOptions; 
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
        // Phone Contact finder factory.
hgs
parents:
diff changeset
   191
        CPhCntFactory*                  iPhCntFactory;
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
        // Phone Contact matcher.
hgs
parents:
diff changeset
   194
        CPhCntMatcher*                  iPhCntMatcher;
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
        // Is CPhCntMatcher owned.
hgs
parents:
diff changeset
   197
        TBool                           iOwnMatcher;
hgs
parents:
diff changeset
   198
        
hgs
parents:
diff changeset
   199
        // Message sender
hgs
parents:
diff changeset
   200
        CCaUiMessageSender*             iMessageSender;
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
    };
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
/**
hgs
parents:
diff changeset
   205
*  Active object to handle note results.
hgs
parents:
diff changeset
   206
*
hgs
parents:
diff changeset
   207
*  @lib CaUiEngine.lib
hgs
parents:
diff changeset
   208
*  @since 2.6
hgs
parents:
diff changeset
   209
*/
hgs
parents:
diff changeset
   210
NONSHARABLE_CLASS( CCaUiNoteActiveObject )
hgs
parents:
diff changeset
   211
:   public CActive
hgs
parents:
diff changeset
   212
    {
hgs
parents:
diff changeset
   213
    public:  // Constructors and destructor
hgs
parents:
diff changeset
   214
        
hgs
parents:
diff changeset
   215
        /**
hgs
parents:
diff changeset
   216
        * Two-phased constructor.
hgs
parents:
diff changeset
   217
        * 
hgs
parents:
diff changeset
   218
        * @return Constructed CCaUiNoteActiveObject instance.
hgs
parents:
diff changeset
   219
        */
hgs
parents:
diff changeset
   220
        static CCaUiNoteActiveObject* NewL();
hgs
parents:
diff changeset
   221
        
hgs
parents:
diff changeset
   222
        /**
hgs
parents:
diff changeset
   223
        * Destructor.
hgs
parents:
diff changeset
   224
        */
hgs
parents:
diff changeset
   225
        virtual ~CCaUiNoteActiveObject();
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
    public: // Functions from base classes
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
        /**
hgs
parents:
diff changeset
   232
        * @see CActive::DoCancel.
hgs
parents:
diff changeset
   233
        */
hgs
parents:
diff changeset
   234
        void DoCancel();
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
        /**
hgs
parents:
diff changeset
   237
        * @see CActive::RunL.
hgs
parents:
diff changeset
   238
        */
hgs
parents:
diff changeset
   239
        void RunL();
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
        /**
hgs
parents:
diff changeset
   242
        * @see CActive::SetActive.
hgs
parents:
diff changeset
   243
        */
hgs
parents:
diff changeset
   244
        void SetActive();
hgs
parents:
diff changeset
   245
        
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
    private:
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
        /**
hgs
parents:
diff changeset
   250
        * C++ default constructor.
hgs
parents:
diff changeset
   251
        * 
hgs
parents:
diff changeset
   252
        */
hgs
parents:
diff changeset
   253
        CCaUiNoteActiveObject();
hgs
parents:
diff changeset
   254
    };
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
#endif      // CCAUIACTIVEOBJECT_H 
hgs
parents:
diff changeset
   257
            
hgs
parents:
diff changeset
   258
// End of File