diff -r 238255e8b033 -r 84d9eb65b26f messagingapp/msgutils/unidatamodel/univcaldataplugin/src/univcaldataplugin_p.cpp --- a/messagingapp/msgutils/unidatamodel/univcaldataplugin/src/univcaldataplugin_p.cpp Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,319 +0,0 @@ -/* - * Copyright (c) 2009 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: - * - */ - -//SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "debugtraces.h" - -#include -#include -#include - -#include "convergedmessage.h" -#include "convergedmessageaddress.h" -#include "univcaldataplugin_p.h" -#include "sessioneventhandler.h" - -#define KBioUidValue 0x10001262 -const TUid KBioUidValueUid = -{KBioUidValue}; - - -_LIT(KUnixEpoch, "19700000:000000.000000"); - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::~UniVCalDataPluginPrivate -// @see header -//--------------------------------------------------------------- -UniVCalDataPluginPrivate::~UniVCalDataPluginPrivate() -{ - q_ptr = NULL; - if (iMsvEntry) - { - delete iMsvEntry; - } - - delete iBioClientMtm; - delete iMtmReg; - delete iSessionHandler; - delete iMSession; - -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::UniVCalDataPluginPrivate -// @see header -//--------------------------------------------------------------- -UniVCalDataPluginPrivate::UniVCalDataPluginPrivate(UniVCalDataPlugin* plugin) : - q_ptr(plugin), iMSession(NULL), iMtmReg(NULL), iBioClientMtm(NULL), - iMsvEntry(NULL), iSessionHandler(NULL) -{ - iSessionHandler = new SessionEventHandler(); - // Create a new messaging server session.. - iMSession = CMsvSession::OpenSyncL(*iSessionHandler); - iSessionHandler->start(); - done = EFalse; -} - -void UniVCalDataPluginPrivate::initL() -{ - iMtmReg = CClientMtmRegistry::NewL(*iMSession); - iBioClientMtm = (CBIOClientMtm*) iMtmReg->NewMtmL(KBioUidValueUid); - - attachmentProcessed = EFalse; - done = ETrue; - -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::reset -// @see header -//--------------------------------------------------------------- -void UniVCalDataPluginPrivate::reset() -{ -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::setMessageId -// @see header -//--------------------------------------------------------------- -int UniVCalDataPluginPrivate::setMessageId(int mId) -{ - TInt error = KErrNone; - TRAP(error, setMessageIdL(mId)); - return error; -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::setMessageIdL -// @see header -//--------------------------------------------------------------- -void UniVCalDataPluginPrivate::setMessageIdL(int mId) -{ - if (done == EFalse) - { - initL(); - } - iMessageId = (TMsvId) mId; - iBioClientMtm->SwitchCurrentEntryL(iMessageId); - - iMsvEntry = CMsvEntry::NewL(iBioClientMtm->Session(), - iMessageId, - TMsvSelectionOrdering()); - - iBioClientMtm->LoadMessageL(); -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::body -// @see header -//--------------------------------------------------------------- -void UniVCalDataPluginPrivate::body(QString& aBodyText) -{ - - CRichText& textBody = iBioClientMtm->Body(); - TInt len = textBody.DocumentLength(); - HBufC* buf = HBufC::NewL(len); - TPtr bufPtr = buf->Des(); - textBody.ExtractSelectively(bufPtr, 0, len, CPlainText::EExtractAll); - aBodyText = S60QConversions::s60DescToQString(*buf); - delete buf; -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::messageSize -// @see header -//--------------------------------------------------------------- -qint32 UniVCalDataPluginPrivate::messageSize() -{ - return iBioClientMtm->Entry().Entry().iSize; -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::toRecipientList -// @see header -//--------------------------------------------------------------- -void UniVCalDataPluginPrivate::toRecipientList( - ConvergedMessageAddressList& mAddressList) -{ - TPtrC name; - TPtrC address; - - CPlainText* pText = CPlainText::NewL(); - CleanupStack::PushL(pText); - - CSmsHeader* smsHeader = CSmsHeader::NewL(CSmsPDU::ESmsSubmit, *pText); - CleanupStack::PushL(smsHeader); - - CMsvStore* store = iMsvEntry->ReadStoreL(); - CleanupStack::PushL(store); - - smsHeader->RestoreL(*store); - - for (TInt id = 0; id < smsHeader->Recipients().Count(); ++id) - { - CSmsNumber* rcpt = smsHeader->Recipients()[id]; - name.Set(rcpt->Name()); - address.Set(rcpt->Address()); - - ConvergedMessageAddress - * messageAddress = - new ConvergedMessageAddress(S60QConversions::s60DescToQString(address), - S60QConversions::s60DescToQString(name)); - mAddressList.append(messageAddress); - } - CleanupStack::PopAndDestroy(3, pText); - -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::fromAddress -// @see header -//--------------------------------------------------------------- -void UniVCalDataPluginPrivate::fromAddress(QString& messageAddress) -{ - CPlainText* pText = CPlainText::NewL(); - CleanupStack::PushL(pText); - - CSmsHeader* smsHeader = CSmsHeader::NewL(CSmsPDU::ESmsDeliver, *pText); - CleanupStack::PushL(smsHeader); - - CMsvStore* store = iMsvEntry->ReadStoreL(); - CleanupStack::PushL(store); - - smsHeader->RestoreL(*store); - - messageAddress - = S60QConversions::s60DescToQString(smsHeader->FromAddress()); - CleanupStack::PopAndDestroy(3, pText); -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::timeStamp -// @see header -//--------------------------------------------------------------- -int UniVCalDataPluginPrivate::timeStamp() -{ - QDateTime retTimeStamp; - TTime timeStamp = iBioClientMtm->Entry().Entry().iDate; - TTime unixEpoch(KUnixEpoch); - TTimeIntervalSeconds seconds; - timeStamp.SecondsFrom(unixEpoch, seconds); - return seconds.Int(); -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::attachmentList -// @see header -//--------------------------------------------------------------- -RFile UniVCalDataPluginPrivate::attachmentL() -{ - if (attachmentProcessed) - { - - CMsvStore* store1 = iMsvEntry->ReadStoreL(); - CleanupStack::PushL(store1); - MMsvAttachmentManager& attachMan = store1->AttachmentManagerL(); - RFile file = attachMan.GetAttachmentFileL(0); - CleanupStack::PopAndDestroy(store1); - return file; - } - - CMsvEntrySelection* selection = new (ELeave) CMsvEntrySelection; - CleanupStack::PushL(selection); - - selection->AppendL(iMessageId); - - TBuf8<1> aParameter; - CMsvOperationWait* wait = CMsvOperationWait::NewLC(); - wait->iStatus = KRequestPending; - wait->Start(); - - CMsvOperation* operation = - iBioClientMtm->InvokeAsyncFunctionL(KBiosMtmParse, - *selection, - aParameter, - wait->iStatus); - - CActiveScheduler::Start(); - - CMsvStore* store = iMsvEntry->ReadStoreL(); - CleanupStack::PushL(store); - MMsvAttachmentManager& attachMan = store->AttachmentManagerL(); - RFile file = attachMan.GetAttachmentFileL(0); - - delete operation; - CleanupStack::PopAndDestroy(3,selection); - attachmentProcessed = ETrue; - return file; - -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::attachmentCount -// @see header -//--------------------------------------------------------------- - -int UniVCalDataPluginPrivate::attachmentCount() -{ - if (!attachmentProcessed) - { - RFile file = attachmentL(); - file.Close(); - } - - CMsvStore* store = iMsvEntry->ReadStoreL(); - CleanupStack::PushL(store); - - MMsvAttachmentManager& attachMan = store->AttachmentManagerL(); - int count = attachMan.AttachmentCount(); - CleanupStack::PopAndDestroy(store); - - return count; -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::messagePriority -// @see header -//--------------------------------------------------------------- - -MsgPriority UniVCalDataPluginPrivate::messagePriority() -{ - - MsgPriority priority = (MsgPriority) iMsvEntry->Entry().Priority(); - return priority; -} - -//--------------------------------------------------------------- -// UniVCalDataPluginPrivate::session -// @see header -//--------------------------------------------------------------- -CMsvSession* UniVCalDataPluginPrivate::session() -{ - return iMSession; -} -