diff -r 000000000000 -r 094583676ce7 IMPSengine/datautils/src/impsutils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IMPSengine/datautils/src/impsutils.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,257 @@ +/* +* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* logger for imps client. +* +*/ + + +// INCLUDE FILES +#include +#ifdef _DEBUG +#include +#endif +#include "impsutils.h" +#include "impsservercommon.h" +#include "impsservices.h" +#include "ImpsVariantAPI.h" + + +// ================= MEMBER FUNCTIONS ======================= + + + +//********************************** +// CImpsClientLogger +//********************************** +const TInt KLogBufferLength = 356; +//_LIT(KLogDir, "impsc"); +//_LIT(KLogFile, "impsc.txt"); + +EXPORT_C void CImpsClientLogger::Log(TRefByValue aFmt,...) + { + VA_LIST list; + VA_START(list, aFmt); + + // Print to log file + TBuf buf; + buf.FormatList(aFmt, list); + +#ifdef _DEBUG + _LIT(KLogDir, "impsc"); + _LIT(KLogFile, "impsc.txt"); + // Write to log file + RFileLogger::Write(KLogDir, KLogFile, EFileLoggingModeAppend, buf); + RDebug::RawPrint( buf ); +#endif + + } + + +//********************************** +// CImpsSettingFile +//********************************** + +EXPORT_C CImpsSettingFile* CImpsSettingFile::NewL( + RFs& aFs ) + { + CImpsSettingFile* self = new (ELeave) CImpsSettingFile( aFs ); + return self; + } + +EXPORT_C CImpsSettingFile::~CImpsSettingFile() + { + if ( iOpen ) + { + iReader.Close(); + } + iOpen = EFalse; + } + +CImpsSettingFile::CImpsSettingFile( RFs& aFs) +: iFs( aFs ), + iOpen( EFalse ) + { + + } + +EXPORT_C void CImpsSettingFile::OpenL(TDesC& aResFile) + { + // open a file + iFileName = aResFile; + + TInt myError = iReader.Open( iFs, + iFileName, + EFileShareReadersOnly ); + + User::LeaveIfError( myError ); + iOpen = ETrue; + + } + +EXPORT_C TPtrC8 CImpsSettingFile::KeyValueL( const TDesC8& aKey ) + { + + TPtrC8 myKey; + TPtrC8 myValue; + TBool getIt(EFalse); + TInt err = 0; + + // Reset the reader + OpenL( iFileName ); + + // Start to search + while ( !getIt) + { + TRAP ( err, ReadRowL( myKey, myValue )); + if ( err != KErrNone ) + { + User::Leave( KErrNotFound ); + } + if ( !myKey.CompareF( aKey )) + { + return myValue; + } + } + return TPtrC8(); + } + +void CImpsSettingFile::ReadRowL( TPtrC8& aKey, TPtrC8& aValue ) + { + // READ ONE ROW + TChar delim( 10 ); + iReader.ReadL( iRowBuffer, delim); + TInt length = iRowBuffer.Length(); + if ( length > 2 ) + { + // DROP CR+LF FROM THE END OF LINE + iRowBuffer.Delete( length - 2, 2 ); + + TInt pos = 0; + pos = iRowBuffer.Find( _L8("=") ); + if ( pos > 0 ) + { + aKey.Set( iRowBuffer.Left( pos ) ); + // Cut off separator + aValue.Set( iRowBuffer.Mid( pos + 1 ) ); + } + } + } + +//********************************** +// impsService +//********************************** + +EXPORT_C GLDEF_C TImpsEventType impsService( const CImpsVariant* /*aVariant*/, + TImpsMessageType aMessage ) + { + TImpsEventType event(EImpsEventNone); + // Notice: update this table when new methods supported + + + switch ( aMessage ) + { + case EImpsLoginReq: + case EImpsLoginRes: + case EImpsLogoutReq: + case EImpsDisconnect: + case EImpsClientCapabilityReq: // this is not mistake, + // part of login procedure + case EImpsServiceReq: // Same here. + event = EImpsEventServerLogin; + break; + // IM + case EImpsSendMessageReq: + case EImpsSendMessageRes: + case EImpsGetMessageReq: + case EImpsNewMessage: + case EImpsMessageDelivered: + case EImpsGetBlockedListReq: + case EImpsGetBlockedListRes: + case EImpsBlockEntityReq: + case EImpsDeliveryReportReq: + event = EImpsEventMessage; + break; + // Presence + case EImpsSubscribePresenceReq: + case EImpsUnsubscribePresenceReq: + case EImpsGetPresenceReq: + case EImpsGetPresenceRes: + case EImpsUpdatePresenceReq: + case EImpsPresenceNotification: + case EImpsCreateAttrListReq: + case EImpsPureData: + case EImpsGetWatcherListReq: + case EImpsGetWatcherListRes: + case EImpsPresenceAuthReq: + case EImpsPresenceAuthUser: + case EImpsCancelAuthReq: + case EImpsGetListReq: + case EImpsGetListRes: + case EImpsCreateListReq: + case EImpsDeleteListReq: + case EImpsListManageReq: + case EImpsListManageRes: + case EImpsDeleteAttrListReq: + case EImpsGetAttrListReq: + case EImpsGetAttrListRes: + event = EImpsEventPresence; + break; + // Group + case EImpsCreateGroupReq: + case EImpsDeleteGroupReq: + case EImpsJoinGroupReq: + case EImpsJoinGroupRes: + case EImpsLeaveGroupReq: + case EImpsLeaveGroupRes: + case EImpsGroupMembersReq: + case EImpsGroupMembersRes: + case EImpsAddGroupMembersReq: + case EImpsRemoveGroupMembersReq: + case EImpsGroupMemberAccessReq: + case EImpsGroupPropertiesReq: + case EImpsGroupPropertiesRes: + case EImpsSetGroupPropertiesReq: + case EImpsGroupRejectListReq: + case EImpsGroupRejectListRes: + case EImpsSubsGroupNoticeReq: + case EImpsSubsGroupNoticeRes: + case EImpsGroupChangeNotice: + case EImpsSubsGroupNoticeUnset: + case EImpsSubsGroupNoticeGet: + case EImpsSubsGroupNoticeSet: + case EImpsNewUsers: + case EImpsLeftUsers: + event = EImpsEventGroup; + break; + // Fundamental + case EImpsSearchReq: + case EImpsStopSearchReq: + case EImpsSearchRes: + case EImpsInviteReq: + case EImpsInviteRes: + case EImpsInviteUserReq: + case EImpsInviteUserRes: + case EImpsCancelInviteReq: + case EImpsCancelInviteUserReq: + event = EImpsEventCommon; + break; + default: + event = EImpsEventNone; + } + return event; + } + +// End of File +