📄 smsdatagramsender.cpp
字号:
/*
* ==============================================================================
* Name : smsdatagramsender.cpp
* Part of :
* Interface :
* Description :
* Version :
*
* Copyright (c) 2007 Symbian Ltd. All rights reserved.
* ==============================================================================
*/
// INCLUDE FILES
#include "smsdatagramsender.h"
const TUint KSMSMaxBufferSize = 256;
const TUid KSMSDatagramServiceImplementationUID = {0x101FA9C3};
_LIT(KPanicSMSSender,"SMSSender");
CSmsDatagramSender* CSmsDatagramSender::NewL(MSmsDatagramSenderObserver& aMsgOvserver)
{
CSmsDatagramSender* self = new (ELeave) CSmsDatagramSender(aMsgOvserver);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop();
return self;
}
void CSmsDatagramSender::ConstructL()
{
CActiveScheduler::Add(this) ; // add to active scheduler
}
CSmsDatagramSender::CSmsDatagramSender(MSmsDatagramSenderObserver& aMsgOvserver)
: CActive(EPriorityStandard), iMsgObserver(aMsgOvserver)
{
}
CSmsDatagramSender::~CSmsDatagramSender()
{
Cancel();
delete iDatagram;
delete iSendService;
}
void CSmsDatagramSender::SendAsyncL(const TDesC8& aMessage, const TDesC8& aPhoneNumber)
{
__ASSERT_ALWAYS(!IsActive(),User::Panic(KPanicSMSSender,KErrInUse));
delete iDatagram;
iDatagram = NULL;
iDatagram = CDatagram::NewL(aMessage, aPhoneNumber);
// and now send it asynchronously
delete iSendService;
iSendService=NULL;
iSendService = CDatagramService::NewL(KSMSDatagramServiceImplementationUID);
iSendService->SendL(iDatagram, iStatus);
SetActive();
}
void CSmsDatagramSender::DoCancel()
{
delete iSendService;
iSendService=NULL;
}
void CSmsDatagramSender::RunL()
{
User::LeaveIfError(iStatus.Int());
TBuf<KSMSMaxBufferSize> sendBuf;
sendBuf.Copy(iDatagram->GetData());
iMsgObserver.MsgSentL(sendBuf);
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -