📄 gdploop.cpp
字号:
// gdploop.cpp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
#include "gdploop.h"
#include <ImplementationProxy.h>
#include <ecom.h>
// game datagram protocol - loopback
CGdpLoopback::CGdpLoopback()
{
}
CGdpLoopback::~CGdpLoopback()
{
delete iBuffer;
delete iAsyncSendComplete;
delete iAsyncInformHandler;
REComSession::DestroyedImplementation(iDtor_ID_Key);
}
void CGdpLoopback::OpenL(MGdpPacketHandler* aHandler) // start up, and set handler for packets received
{
iHandler=aHandler;
iAsyncSendComplete = new (ELeave) CAsyncCallBack(TCallBack(DelayedSendComplete, this), EPriorityLow);
iAsyncInformHandler = new (ELeave) CAsyncCallBack(TCallBack(DelayedInformHandler, this), EPriorityLow);
}
void CGdpLoopback::SendL(const TDesC8& /*aToAddress*/, const TDesC8& aData) // send packet
{
delete iBuffer;
iBuffer = NULL;
iBuffer = aData.AllocL();
iAsyncSendComplete->CallBack();
}
TInt CGdpLoopback::ReceiveAll() // do a pull if necessary
{
return KErrNone;
}
TInt CGdpLoopback::GetMaxPacketLength() const
{
return KMaxTInt;
}
TInt CGdpLoopback::IsNetworked() const
{
return EFalse;
}
TInt CGdpLoopback::DelayedSendComplete(TAny* aObject)
{
((CGdpLoopback*)aObject)->DoSendComplete();
return KErrNone;
}
void CGdpLoopback::DoSendComplete()
{
iHandler->SendComplete(KErrNone);
iAsyncInformHandler->CallBack();
}
TInt CGdpLoopback::DelayedInformHandler(TAny* aObject)
{
((CGdpLoopback*)aObject)->DoInformHandler();
return KErrNone;
}
void CGdpLoopback::DoInformHandler()
{
_LIT8(KNullAddress,"");
iHandler->GdpHandleL(KNullAddress, *iBuffer);
}
CGdpSession* CGdpLoopback::NewL()
{
return new (ELeave) CGdpLoopback();
}
// Define the interface UIDs
const TImplementationProxy ImplementationTable[] =
{
{{0x101f8b53}, CGdpLoopback::NewL},
};
EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
{
aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
return ImplementationTable;
}
TInt E32Dll(TDllReason)
{
return KErrNone;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -