IMPSengine/datautils/src/impsutils.cpp
changeset 0 094583676ce7
equal deleted inserted replaced
-1:000000000000 0:094583676ce7
       
     1 /*
       
     2 * Copyright (c) 2002-2005 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: 
       
    15 * logger for imps client.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include    <e32std.h>
       
    22 #ifdef _DEBUG
       
    23 #include    <flogger.h>
       
    24 #endif
       
    25 #include    "impsutils.h"
       
    26 #include    "impsservercommon.h"
       
    27 #include    "impsservices.h"
       
    28 #include    "ImpsVariantAPI.h"
       
    29 
       
    30 
       
    31 // ================= MEMBER FUNCTIONS =======================
       
    32 
       
    33 
       
    34 
       
    35 //**********************************
       
    36 // CImpsClientLogger
       
    37 //**********************************
       
    38 const TInt KLogBufferLength = 356;
       
    39 //_LIT(KLogDir, "impsc");
       
    40 //_LIT(KLogFile, "impsc.txt");
       
    41 
       
    42 EXPORT_C void CImpsClientLogger::Log(TRefByValue<const TDesC> aFmt,...)
       
    43     {
       
    44     VA_LIST list;
       
    45     VA_START(list, aFmt);
       
    46 
       
    47     // Print to log file
       
    48     TBuf<KLogBufferLength> buf;
       
    49     buf.FormatList(aFmt, list);
       
    50 
       
    51 #ifdef _DEBUG
       
    52     _LIT(KLogDir, "impsc");
       
    53     _LIT(KLogFile, "impsc.txt");
       
    54     // Write to log file
       
    55     RFileLogger::Write(KLogDir, KLogFile, EFileLoggingModeAppend, buf);
       
    56     RDebug::RawPrint( buf );    
       
    57 #endif
       
    58 
       
    59     }
       
    60 
       
    61 
       
    62 //**********************************
       
    63 // CImpsSettingFile
       
    64 //**********************************
       
    65 
       
    66 EXPORT_C CImpsSettingFile* CImpsSettingFile::NewL( 
       
    67     RFs& aFs )
       
    68     {
       
    69     CImpsSettingFile* self = new (ELeave) CImpsSettingFile( aFs );
       
    70     return self;
       
    71     }
       
    72 
       
    73 EXPORT_C CImpsSettingFile::~CImpsSettingFile()
       
    74     {
       
    75     if ( iOpen )
       
    76         {
       
    77         iReader.Close();
       
    78         }
       
    79     iOpen = EFalse;
       
    80     }
       
    81 
       
    82 CImpsSettingFile::CImpsSettingFile( RFs& aFs)
       
    83 : iFs( aFs ),
       
    84   iOpen( EFalse )
       
    85     {
       
    86 
       
    87     }
       
    88 
       
    89 EXPORT_C void CImpsSettingFile::OpenL(TDesC& aResFile)
       
    90     {
       
    91     // open a file
       
    92     iFileName = aResFile;
       
    93 
       
    94     TInt myError = iReader.Open( iFs, 
       
    95                              iFileName, 
       
    96                              EFileShareReadersOnly );
       
    97 
       
    98     User::LeaveIfError( myError );
       
    99     iOpen = ETrue;
       
   100     
       
   101     }
       
   102 
       
   103 EXPORT_C TPtrC8 CImpsSettingFile::KeyValueL( const TDesC8& aKey )
       
   104     {
       
   105 
       
   106     TPtrC8 myKey;
       
   107     TPtrC8 myValue;
       
   108     TBool getIt(EFalse);
       
   109     TInt err = 0;
       
   110 
       
   111     // Reset the reader
       
   112     OpenL( iFileName );
       
   113 
       
   114     // Start to search
       
   115     while ( !getIt) 
       
   116         {
       
   117         TRAP ( err, ReadRowL( myKey, myValue ));
       
   118         if ( err != KErrNone )
       
   119             {
       
   120             User::Leave( KErrNotFound );
       
   121             }
       
   122         if ( !myKey.CompareF( aKey ))
       
   123             {
       
   124             return myValue;
       
   125             }
       
   126         }
       
   127     return TPtrC8();
       
   128     }
       
   129 
       
   130 void CImpsSettingFile::ReadRowL( TPtrC8& aKey, TPtrC8& aValue )
       
   131     {
       
   132     // READ ONE ROW
       
   133     TChar delim( 10 );
       
   134     iReader.ReadL( iRowBuffer, delim);
       
   135     TInt length = iRowBuffer.Length();
       
   136     if ( length > 2 )
       
   137         {
       
   138         // DROP CR+LF FROM THE END OF LINE
       
   139         iRowBuffer.Delete( length - 2, 2 );
       
   140 
       
   141         TInt pos = 0;
       
   142         pos = iRowBuffer.Find( _L8("=") );
       
   143         if ( pos > 0 )
       
   144             {
       
   145             aKey.Set( iRowBuffer.Left( pos ) );
       
   146             // Cut off separator
       
   147             aValue.Set( iRowBuffer.Mid( pos + 1 ) );
       
   148             }
       
   149         }
       
   150     }
       
   151 
       
   152 //**********************************
       
   153 // impsService
       
   154 //**********************************
       
   155 
       
   156 EXPORT_C GLDEF_C TImpsEventType impsService( const CImpsVariant* /*aVariant*/,
       
   157     TImpsMessageType aMessage )
       
   158     {
       
   159     TImpsEventType event(EImpsEventNone);
       
   160     // Notice: update this table when new methods supported
       
   161 
       
   162 
       
   163     switch ( aMessage )
       
   164         {
       
   165         case EImpsLoginReq:
       
   166         case EImpsLoginRes:
       
   167         case EImpsLogoutReq:
       
   168         case EImpsDisconnect:
       
   169         case EImpsClientCapabilityReq:   // this is not mistake,
       
   170                                          // part of login procedure
       
   171         case EImpsServiceReq:            // Same here.
       
   172             event = EImpsEventServerLogin;
       
   173             break;
       
   174         // IM
       
   175         case EImpsSendMessageReq:
       
   176         case EImpsSendMessageRes:
       
   177         case EImpsGetMessageReq:
       
   178         case EImpsNewMessage:
       
   179         case EImpsMessageDelivered:
       
   180         case EImpsGetBlockedListReq:
       
   181         case EImpsGetBlockedListRes:
       
   182         case EImpsBlockEntityReq:
       
   183         case EImpsDeliveryReportReq:
       
   184             event = EImpsEventMessage;
       
   185             break;
       
   186         // Presence
       
   187         case EImpsSubscribePresenceReq:
       
   188         case EImpsUnsubscribePresenceReq:
       
   189         case EImpsGetPresenceReq:
       
   190         case EImpsGetPresenceRes:
       
   191         case EImpsUpdatePresenceReq:
       
   192         case EImpsPresenceNotification:
       
   193         case EImpsCreateAttrListReq:
       
   194         case EImpsPureData:
       
   195         case EImpsGetWatcherListReq:
       
   196         case EImpsGetWatcherListRes:
       
   197         case EImpsPresenceAuthReq:
       
   198         case EImpsPresenceAuthUser:
       
   199         case EImpsCancelAuthReq:
       
   200         case EImpsGetListReq:
       
   201         case EImpsGetListRes:
       
   202         case EImpsCreateListReq:
       
   203         case EImpsDeleteListReq:
       
   204         case EImpsListManageReq:
       
   205         case EImpsListManageRes:
       
   206         case EImpsDeleteAttrListReq:
       
   207         case EImpsGetAttrListReq:
       
   208         case EImpsGetAttrListRes:
       
   209             event = EImpsEventPresence;
       
   210             break;
       
   211         // Group
       
   212         case EImpsCreateGroupReq:
       
   213         case EImpsDeleteGroupReq:
       
   214         case EImpsJoinGroupReq:
       
   215         case EImpsJoinGroupRes:
       
   216         case EImpsLeaveGroupReq:
       
   217         case EImpsLeaveGroupRes:
       
   218         case EImpsGroupMembersReq:
       
   219         case EImpsGroupMembersRes:
       
   220         case EImpsAddGroupMembersReq:
       
   221         case EImpsRemoveGroupMembersReq:
       
   222         case EImpsGroupMemberAccessReq:
       
   223         case EImpsGroupPropertiesReq:
       
   224         case EImpsGroupPropertiesRes:
       
   225         case EImpsSetGroupPropertiesReq:
       
   226         case EImpsGroupRejectListReq:
       
   227         case EImpsGroupRejectListRes:
       
   228         case EImpsSubsGroupNoticeReq:
       
   229         case EImpsSubsGroupNoticeRes:
       
   230         case EImpsGroupChangeNotice:
       
   231         case EImpsSubsGroupNoticeUnset:  
       
   232         case EImpsSubsGroupNoticeGet: 
       
   233         case EImpsSubsGroupNoticeSet:   
       
   234         case EImpsNewUsers:
       
   235         case EImpsLeftUsers:    
       
   236             event = EImpsEventGroup;
       
   237             break;
       
   238         // Fundamental
       
   239         case EImpsSearchReq:
       
   240         case EImpsStopSearchReq:
       
   241         case EImpsSearchRes:
       
   242         case EImpsInviteReq:
       
   243         case EImpsInviteRes:
       
   244         case EImpsInviteUserReq:
       
   245         case EImpsInviteUserRes:
       
   246         case EImpsCancelInviteReq:
       
   247         case EImpsCancelInviteUserReq:
       
   248             event = EImpsEventCommon;
       
   249             break;
       
   250         default:
       
   251             event = EImpsEventNone;
       
   252         }
       
   253     return event;
       
   254     }
       
   255   
       
   256 //  End of File  
       
   257