deviceupdatesui/deviceupdates/inc/nsmldmsyncutil.h
author hgs
Fri, 19 Mar 2010 04:28:07 +0530
changeset 33 7464c1e21dae
permissions -rw-r--r--
201008_internal
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     1
/*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     3
* All rights reserved.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     8
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     9
* Initial Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    11
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    12
* Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    13
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    14
* Description:  Utility classes.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    15
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    16
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    17
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    18
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    19
#ifndef NSMLDMSYNCUTIL_H
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    20
#define NSMLDMSYNCUTIL_H
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    21
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    22
// INCLUDES
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    23
#include <e32base.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    24
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    25
// CLASS DECLARATION
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    26
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    27
/**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    28
* TUtil
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    29
* 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    30
* This class contains general utility functions. 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    31
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    32
NONSHARABLE_CLASS (TUtil)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    33
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    34
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    35
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    36
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    37
        * Panic
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    38
        * @param aReason.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    39
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    40
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    41
        static void Panic( TInt aReason );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    42
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    43
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    44
        * String copy tool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    45
        * @param aTarget.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    46
        * @param aSource.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    47
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    48
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    49
		static void StrCopy( TDes& aTarget, const TDesC& aSource );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    50
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    51
        * String copy tool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    52
        * @param aTarget.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    53
        * @param aSource.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    54
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    55
        */      		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    56
		static void StrCopy( TDes& aTarget, const TDesC8& aSource );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    57
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    58
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    59
        * String copy tool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    60
        * @param aTarget.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    61
        * @param aSource.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    62
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    63
        */      		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    64
		static void StrCopy( TDes8& aTarget, const TDesC& aSource );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    65
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    66
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    67
        * String append tool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    68
        * @param aTarget.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    69
        * @param aSource.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    70
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    71
        */      		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    72
		static void StrAppend( TDes& aTarget, const TDesC& aSource );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    73
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    74
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    75
        * String insert tool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    76
        * @param aTarget.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    77
        * @param aSource.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    78
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    79
        */      		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    80
		static void StrInsert( TDes& aTarget, const TDesC& aSource );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    81
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    82
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    83
        * Convert string to int
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    84
        * @param aText.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    85
        * @param aNum.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    86
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    87
        */		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    88
		static TInt StrToInt( const TDesC& aText, TInt& aNum );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    89
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    90
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    91
        * Check whether textline is empty
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    92
        * @param aText.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    93
        * @return ETrue if empty
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    94
        */				
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    95
		static TBool IsEmpty( const TDesC& aText );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    96
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    97
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    98
        * URI Parser
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    99
        * @param aURI
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   100
        * @param aAddress
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   101
        * @param aPort
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   102
        * @param aDocName
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   103
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   104
        */						
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   105
        static void ParseURIL( const TDesC& aURI, 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   106
                               TDes& aAddress, 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   107
                               TDes& aPort, 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   108
                               TDes& aDocName );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   109
      
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   110
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   111
        * Returns formatted sync time
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   112
        * @param aLastSync
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   113
        * @return Sync time
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   114
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   115
        static HBufC* SyncTimeLC( TTime aLastSync );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   116
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   117
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   118
        * Get data as text
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   119
        * @param 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   120
        * @return 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   121
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   122
        static void GetDateTextL( TDes& aText, TTime aDateTime );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   123
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   124
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   125
        * Get time as text 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   126
        * @param 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   127
        * @return 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   128
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   129
		static void GetTimeTextL( TDes& aText, TTime aDateTime );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   130
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   131
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   132
        * Get data and time as text
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   133
        * @param 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   134
        * @return 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   135
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   136
		static void GetDateTimeTextL( TDes& aText, TTime aDateTime );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   137
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   138
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   139
        * Check if SettingEnforcement is set
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   140
        * @param 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   141
        * @return Boolean
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   142
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   143
		static TBool SettingEnforcementStateL();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   144
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   145
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   146
        * Check if SettingEnforcement is set (non-leaving)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   147
        * @param 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   148
        * @return Boolean
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   149
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   150
		static TBool SettingEnforcementState();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   151
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   152
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   153
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   154
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   155
        * Check if sync has happened today
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   156
        * @param atime
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   157
        * @return Boolean
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   158
        */    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   159
        static TBool IsToday( TTime aTime );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   160
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   161
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   162
        * Convert time to hometime
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   163
        * @param aUniversalTime
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   164
        * @return TTIme
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   165
        */            
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   166
        static TTime ConvertUniversalToHomeTime( const TTime& aUniversalTime );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   167
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   168
	};
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   169
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   170
/**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   171
*  TStr contains descriptor operations with range checking.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   172
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   173
NONSHARABLE_CLASS (TStr)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   174
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   175
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   176
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   177
        * C++ default constructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   178
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   179
        TStr(const TDesC& aStr);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   180
       
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   181
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   182
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   183
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   184
        * @param aPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   185
        * @param aLen
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   186
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   187
        */        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   188
        TPtrC Mid( TInt aPos, TInt aLen );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   189
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   190
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   191
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   192
        * @param aPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   193
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   194
        */                
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   195
        TPtrC Mid( TInt aPos );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   196
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   197
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   198
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   199
        * @param aPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   200
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   201
        */                
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   202
        TPtrC Left( TInt aPos );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   203
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   204
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   205
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   206
        * @param aPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   207
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   208
        */               
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   209
        TPtrC Right( TInt aPos );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   210
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   211
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   212
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   213
        * @param aStartPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   214
        * @param aEndPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   215
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   216
        */               
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   217
        TPtrC SubStr( TInt aStartPos, TInt aEndPos );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   218
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   219
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   220
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   221
        * @param aStartPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   222
        * @param aEndPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   223
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   224
        */           
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   225
        TPtrC SubStrEx( TInt aStartPos, TInt aEndPos );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   226
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   227
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   228
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   229
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   230
        */           
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   231
        TInt LastPos();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   232
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   233
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   234
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   235
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   236
        */           
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   237
        TInt Len();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   238
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   239
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   240
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   241
        * @param aPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   242
        * @param aChar
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   243
        * @return TBool
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   244
        */           
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   245
        TBool Compare( TInt aPos, TChar aChar );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   246
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   247
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   248
        * String manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   249
        * @param aStartPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   250
        * @param aChar
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   251
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   252
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   253
        TInt Find( TInt aPos, TChar aChar );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   254
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   255
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   256
        // reference to descriptor
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   257
		const TDesC& iStr;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   258
    };
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   259
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   260
/**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   261
*  TURIParser is used for parsing URI.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   262
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   263
NONSHARABLE_CLASS (TURIParser)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   264
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   265
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   266
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   267
        * C++ default constructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   268
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   269
        TURIParser( const TDesC& aStr );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   270
       
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   271
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   272
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   273
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   274
        * @param aText
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   275
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   276
        */    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   277
        void GetUriWithoutPort( TDes& aText );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   278
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   279
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   280
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   281
        * @param aText
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   282
        * @param aPort
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   283
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   284
        */            
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   285
        void GetUri( TDes& aText, const TInt aPort );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   286
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   287
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   288
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   289
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   290
        */            
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   291
        TInt Port();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   292
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   293
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   294
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   295
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   296
        */            
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   297
        TInt DefaultPort();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   298
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   299
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   300
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   301
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   302
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   303
        */          
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   304
        TPtrC ParseHttp();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   305
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   306
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   307
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   308
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   309
        */              
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   310
        TPtrC ParseAddress();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   311
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   312
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   313
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   314
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   315
        */              
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   316
        TPtrC ParseDocument();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   317
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   318
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   319
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   320
        * @param aPortNumber
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   321
        * @return TInt
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   322
        */              
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   323
        TInt ParsePort(TInt& aPortNumber);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   324
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   325
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   326
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   327
        * @return TPtrC
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   328
        */              
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   329
        TPtrC ParsePort();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   330
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   331
     private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   332
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   333
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   334
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   335
        * @param aStartPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   336
        * @param aEndPos
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   337
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   338
        */          
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   339
        void GetHttpPos(TInt& aStartPos, TInt& aEndPos);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   340
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   341
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   342
        * URI manipulating tools
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   343
        * @return NOne
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   344
        */             
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   345
        void SkipHttp();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   346
  
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   347
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   348
        // reference to original URI text
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   349
		const TDesC& iOriginalStr;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   350
		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   351
		// pointer to original URI text
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   352
		TPtrC iPtr;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   353
		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   354
		//reference to Boolean variable which tells about Slash in URI
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   355
		TBool iSlash;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   356
    };
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   357
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   358
/**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   359
* MNSmlDMActiveCallerObserver
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   360
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   361
* MNSmlDMActiveCallerObserver is for observing CNSmlDMActiveCaller.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   362
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   363
class MNSmlDMActiveCallerObserver
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   364
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   365
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   366
	    virtual void HandleActiveCallL() = 0;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   367
    };
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   368
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   369
/**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   370
* CNSmlDMActiveCaller
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   371
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   372
* CNSmlDMActiveCaller is used for generating a call from active scheduler.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   373
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   374
NONSHARABLE_CLASS (CNSmlDMActiveCaller) : public CActive
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   375
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   376
    public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   377
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   378
        * Two-phased constructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   379
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   380
        static CNSmlDMActiveCaller* NewL(MNSmlDMActiveCallerObserver* aObserver);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   381
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   382
	    /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   383
        * Destructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   384
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   385
        virtual ~CNSmlDMActiveCaller();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   386
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   387
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   388
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   389
        * C++ default constructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   390
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   391
	    CNSmlDMActiveCaller(MNSmlDMActiveCallerObserver* aObserver);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   392
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   393
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   394
        * By default Symbian 2nd phase constructor is private.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   395
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   396
	    void ConstructL();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   397
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   398
	public:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   399
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   400
        * Calls observer using active object framework.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   401
        * @param aCallId.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   402
		* @param aMilliseconds Delay before observer is called.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   403
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   404
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   405
		void Start( TInt aCallId, TInt aMilliseconds = 0 );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   406
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   407
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   408
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   409
        * From CActive. Called when asynchronous request completes.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   410
        * @param None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   411
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   412
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   413
	    void RunL();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   414
       
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   415
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   416
        * From CActive. Called when RunL Leaves.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   417
        * @param None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   418
        * @return error
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   419
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   420
        TInt RunError( TInt aError );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   421
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   422
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   423
        * From CActive. Cancels asynchronous request.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   424
        * @param None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   425
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   426
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   427
	    void DoCancel();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   428
        
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   429
        /**
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   430
        * Make active scheduler call RunL.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   431
        * @param None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   432
        * @return None
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   433
        */
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   434
		void CompleteSelf();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   435
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   436
    private:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   437
		// call that is passed to observer
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   438
		TInt iCallId;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   439
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   440
		// timer
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   441
		RTimer iTimer;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   442
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   443
		// observer that gets called
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   444
		MNSmlDMActiveCallerObserver* iObserver;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   445
    };
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   446
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   447
#endif  // NSMLDMSYNCUTIL_H
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   448
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   449
// End of File