📄 smallservsession.cpp
字号:
//
// PGPServSession.cpp
//
#include "SmallServSession.h"
#include "sserv.h"
#include "configservercmds.h"
#include "socketlistener.h"
#include "in_sock.h"
CSmallServSession::CSmallServSession()
{
}
CSmallServSession* CSmallServSession::NewL(const CServer& aServer)
{
CSmallServSession* object = new (ELeave) CSmallServSession();
CleanupStack::PushL(object);
object->ConstructL(aServer);
CleanupStack::Pop();
return object;
}
CSmallServSession::~CSmallServSession()
{
((CSmallServServer*) Server())->DecrementSessions();
}
void CSmallServSession::ConstructL(const CServer& aServer)
{
CreateL(aServer);
((CSmallServServer*) Server())->IncrementSessions();
}
void CSmallServSession::ServiceL(const RMessage& aMessage)
{
TRAPD(err,DispatchMessageL(aMessage));
}
// service a client request; test the opcode and then do appropriate servicing
void CSmallServSession::DispatchMessageL(const RMessage &aMessage)
{
switch (aMessage.Function())
{
case KStartHTTPServer:
StartHTTPServerL();
break;
case KStopHTTPServer:
StopHTTPServerL();
break;
// requests we don't understand at all are a different thing,
// so panic the client here, this function also completes the message
default:
PanicClient(aMessage, EConfigServerBadRequest);
return;
}
}
// panic the client
void CSmallServSession::PanicClient(const RMessage &aMessage, TConfigServerPanics aPanic) const
{
aMessage.Panic(KConfigServer,aPanic);
}
void CSmallServSession::StartHTTPServerL()
{
_LIT(KTCP, "tcp");
TInetAddr addr(Message().Int0(), Message().Int1());
CSocketListener* listen = CSocketListener::NewLC(*((CSmallServServer*) Server()));
listen->StartListeningL(KTCP, addr, 10);
((CSmallServServer*) Server())->AddListener(*listen);
Message().Complete(KErrNone);
CleanupStack::Pop();
}
void CSmallServSession::StopHTTPServerL()
{
((CSmallServServer*) Server())->CancelAllItems();
Message().Complete(KErrNone);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -