diff -r 000000000000 -r c6b0df440bee dbgagents/trkagent/dbgtrccomm/test/dummytraceserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbgagents/trkagent/dbgtrccomm/test/dummytraceserver.cpp Tue Mar 02 10:33:16 2010 +0530 @@ -0,0 +1,151 @@ +/* +* 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: +* +*/ + +#include "dummytraceserver.h" + +_LIT8(KTRACEMSG, "Test trace server message: %d\n"); + +// +// +// CDummyTraceServer implementation +// +// + +CDummyTraceServer* CDummyTraceServer::NewLC(CConsoleIO* aConsoleIO) +{ + CDummyTraceServer* self = new(ELeave) CDummyTraceServer(aConsoleIO); + CleanupStack::PushL(self); + self->ConstructL(); + + return self; +} + +CDummyTraceServer::CDummyTraceServer(CConsoleIO* aConsoleIO) + : CActive(EPriorityLow), + iConsoleIO(aConsoleIO), + iMessageId(0) + +{ + CActiveScheduler::Add(this); +} + +void CDummyTraceServer::ConstructL() +{ + User::LeaveIfError(iTimer.CreateLocal()); +} + +CDummyTraceServer::~CDummyTraceServer() +{ + +} + +void CDummyTraceServer::Start() +{ + + TInt err = iAcmPort.Connect(); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Connect failed: %d"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Successfully the DbgTrc Comms server\n")); + + + err = iAcmPort.Open(); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Opening port failed: %d\n"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Successfully opened the DbgTrc Comm Port\n")); + + + TAcmConfig config; + err = iAcmPort.GetAcmConfig(config); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Unable to get port configuration: %d\n"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Current ACM port number: %d\n"), config().iPortNumber); + + err = iAcmPort.RegisterProtocolID(EOstProtTraceCore, EFalse); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Unable to register protocol: %d\n"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Registered the protocol id: %d\n"), EOstProtTraceCore); + + Activate(); + + iConsoleIO->PrintToScreen(_L("Started sending dummy traces\n")); +} + +void CDummyTraceServer::SendMessage() +{ + TBuf8<100> msg; + TRequestStatus status; + + msg.Format(KTRACEMSG, iMessageId++); + iAcmPort.WriteMessage(status, msg, EFalse); + User::WaitForRequest(status); +} + +void CDummyTraceServer::Activate() +{ + iTimer.After(iStatus, KPeriod); + SetActive(); +} + + + +void CDummyTraceServer::RunL() +{ + // now send the message + SendMessage(); + // reactivate the timer + Activate(); +} + +void CDummyTraceServer::DoCancel() +{ + iTimer.Cancel(); + + Cancel(); + iTimer.Close(); + Deque(); + + TInt err = iAcmPort.UnRegisterProtocolID(EOstProtTraceCore); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Unable to unregister protocol: %d\n"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Successfuly unregistered the protocol id: %d\n"), EOstProtTraceCore); + + + err = iAcmPort.Close(); + if (err != KErrNone) + { + iConsoleIO->PrintToScreen(_L("Unable to close the port: %d\n"), err); + return; + } + iConsoleIO->PrintToScreen(_L("Successfuly closed the port\n")); + +} +