diff -r d5f04de580b7 -r b74061f7f3d2 mmtestenv/mmtestfw/Source/TestFrameworkClient/Log.cpp --- a/mmtestenv/mmtestfw/Source/TestFrameworkClient/Log.cpp Wed Mar 31 23:56:23 2010 +0300 +++ b/mmtestenv/mmtestfw/Source/TestFrameworkClient/Log.cpp Wed Apr 14 17:32:53 2010 +0300 @@ -47,251 +47,6 @@ /** * - * Global : start a server - * NOTE. Function is global static as only one server will ever run at any time - * (there may be multiple client sessions) - * - * @return "TInt" - * Error code (KErrNone if successful) - * - * @xxxx - * - */ -GLDEF_C TInt StartServer() -// Start the server process/thread which lives in an (EPOC)EXE object - { - const TUidType serverUid(KNullUid, KNullUid, KTestFrameworkServerUid3); - - -// EPOC is easy, we just create a new server process. Simultaneous launching -// of two such processes should be detected when the second one attempts to -// create the server object, failing with KErrAlreadyExists. - - RProcess server; - TInt r = server.Create(KTestFrameworkServerImg, KNullDesC, serverUid); - - if (r != KErrNone) - return r; - - - TRequestStatus rendezvous; - server.Rendezvous(rendezvous); - - if (rendezvous!=KRequestPending) - { - server.Kill(0); - } - else - { - server.Resume(); - } - - - User::WaitForRequest(rendezvous); // wait for start or death - - // we can't use the 'exit reason' if the server panicked as this - // is the panic 'reason' and may be '0' which cannot be distinguished - // from KErrNone - if (rendezvous!=KErrNone) - { - server.Close(); - } - - // server started (at last). Cancel and consume the death-notification - // before reporting success - return rendezvous.Int(); - } - -/** - * - * Constructor for RTestFrameworkClientSession - * - * @xxxx - * - */ -RTestFrameworkClientSession::RTestFrameworkClientSession() - { - } - -/** - * - * Client session : connect to server. - * Will start a new server session if no server exists - * - * @return "TInt" - * Error code (KErrNone if connect successful) - * - * @xxxx - * - */ -TInt RTestFrameworkClientSession::Connect() - { - // NOTE : this loop is ugly and can probably be rewritten to be more graceful - const TInt KNumRetries = 2; - - TInt retry = KNumRetries; - for (;;) - { - TInt r = CreateSession(KTestFrameworkServerName, TVersion(KTestFrameworkServerMajorVersionNumber, - KTestFrameworkServerMinorVersionNumber, - KTestFrameworkServerBuildVersionNumber)); - if (r == KErrNone) - { -#ifdef __IPC_V2_PRESENT__ - r = ShareAuto(); -#else - r = Share(RSessionBase::EAutoAttach); -#endif - if (r!=KErrNone) - Close(); - return r; - } - if (r != KErrNotFound && r != KErrServerTerminated) - { - return r; - } - if (--retry == 0) - return r; - r = StartServer(); - if (r != KErrNone && r != KErrAlreadyExists) - return r; - } - } - -/** - * - * Request creation of an input window. - * NOTE. For initialisation of input console only - unlikely to - * be required by user - * - * @param "TRectBuf& aAllocatedWindow" - * Window dimensions - * - * @param "TRequestStatus& aReqStat" - * Request status - * - * @xxxx - * - */ -void RTestFrameworkClientSession::CreateInputWindow(TRectBuf& aAllocatedWindow, TRequestStatus& aReqStat) - { - SendReceiveResult(ECreateInputWindow, aAllocatedWindow, aReqStat); - } - -/** - * - * Request window change notifications - * NOTE. For initialisation of input console only - unlikely to - * be required by user - * - * @param "TRectBuf& aNewWindow" - * New window dimensions - * - * @param "TRequestStatus& aReqStat" - * Request status - * - * @xxxx - * - */ -void RTestFrameworkClientSession::NotifyIfWindowChange(TRectBuf& aNewWindow, TRequestStatus& aReqStat) - { - SendReceiveResult(ENotifyIfWindowChange, aNewWindow, aReqStat); - } - -/** - * - * Cancel window change notifications - * NOTE. For initialisation of input console only - unlikely to - * be required by user - * - * @return "TInt" - * SendReceive error code - * - * @xxxx - * - */ -TInt RTestFrameworkClientSession::CancelNotifyIfWindowChange() - { - return SendReceive(ECancelNotifyIfWindowChange); - } - - -/** - * - * Open a log server session - * - * @param "const TDesC& aLogName" - * The log name - * - * @param "TInt aLogMode" - * The log mode (a bitmask of TTestFrameworkLogMode) - * - * @xxxx - * - */ -void RTestFrameworkClientSession::OpenLog(const TDesC& aLogName, TInt aLogMode) - { - (void) SendReceive(EOpenLog, aLogName, aLogMode); - } - -/** - * - * Write message string to log server session - * - * @param "const TDesC& aMsg" - * The message string - * - * @param "TInt aLogMode" - * The log mode (a bitmask of TTestFrameworkLogMode) - * - * @xxxx - * - */ -void RTestFrameworkClientSession::WriteLog(const TDesC& aMsg, TInt aLogMode) - { - (void) SendReceive(EWriteLog, aMsg, aLogMode); - } - -/** - * - * Send close log message to server - * - * @xxxx - * - */ -void RTestFrameworkClientSession::CloseLog() - { - SendReceive(ECloseLog); - } - -/** - * - * Retrieve log status from server - * - * @return "TInt" - * The log status (a bitmask of TTestFrameworkLogMode) - * - * @xxxx - * - */ -TInt RTestFrameworkClientSession::LogStatus() - { - TInt res = 0; - TPckgBuf pckg; - TInt r = SendReceiveResult(ELogStatus, pckg); - if (r != KErrNone) - { - // RTestFrameworkClientSession does not log - - // we can however return 0 to indicate an error (no outputs) - res = 0; - } - else - res = pckg(); - return res; - } - -/** - * * Static constructor for CLog. * *