First cut of thread pools in fshell. Not fully working yet.
Removed 4 overloads of CCommandBase::RunCommand[L] that are no longer used at all, and changed one more to not be exported as it's only used internally to iocli.dll.
Added a thread pool (CThreadPool) to fshell so that thread commands no longer have to spawn a new thread every time they run. As part of this, CCommandWrapperBase now derives from CActive so that CThreadCommand can use its CActive-ness. CThreadCommand rejigged quite a bit to use CThreadPool (via MTaskRunner interface).
// wsp_log.cpp
//
// Copyright (c) 2004 - 2010 Accenture. All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the "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:
// Accenture - Initial contribution
//
#include "wsp_log.h"
#ifdef WSP_LOGGING
#include <comms-infras/commsdebugutility.h>
_LIT8(KSubSystem, "fshell");
_LIT8(KComponent, "winsockprt");
RFileLogger& Logger()
{
return *(static_cast<RFileLogger*>(Dll::Tls()));
}
TInt WspLog::Open()
{
RFileLogger* logger = new RFileLogger();
if (logger == NULL)
{
return KErrNoMemory;
}
TInt err = logger->Connect();
if (err == KErrNone)
{
err = logger->SetLogTags(KSubSystem(), KComponent());
if (err == KErrNone)
{
Dll::SetTls(logger);
}
}
return err;
}
void WspLog::Close()
{
RFileLogger* logger = &(Logger());
logger->Close();
delete logger;
Dll::SetTls(NULL);
}
void WspLog::Write(const TDesC& aDes)
{
Logger().Write(aDes);
}
void WspLog::Printf(TRefByValue<const TDesC> aFmt, ...)
{
VA_LIST list;
VA_START(list, aFmt);
Logger().WriteFormat(aFmt, list);
}
void WspLog::Printf(TRefByValue<const TDesC8> aFmt, ...)
{
VA_LIST list;
VA_START(list, aFmt);
Logger().WriteFormat(aFmt, list);
}
void WspLog::HexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen)
{
Logger().HexDump(aHeader, aMargin, aPtr, aLen);
}
void WspLog::WriteRawInbound(const TDesC8& aDes)
{
Logger().Write(_L("In-bound data:"));
Logger().HexDump(aDes);
}
void WspLog::WriteRawOutbound(const TDesC8& aDes)
{
Logger().Write(_L("Out-bound data:"));
Logger().HexDump(aDes);
}
#endif // _DEBUG