--- a/telephonyserverplugins/multimodetsy/hayes/SCOMM.CPP Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/multimodetsy/hayes/SCOMM.CPP Thu May 06 15:10:38 2010 +0100
@@ -1,212 +1,212 @@
-// Copyright (c) 1997-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:
-// Comms reader and writer mixin
-//
-//
-
-#include "ATSTD.H"
-#include "SCOMM.H"
-
-MComm::MComm()
- {
- iCommReader = NULL;
- iCommWriter = NULL;
- }
-
-MComm::~MComm()
- {
- delete iCommReader;
- delete iCommWriter;
- iCommPort.Close();
- iCommServer.Close();
- }
-
-TInt MComm::CommOpen(const TDesC& aDll, const TDesC& aName, TCommAccess aMode)
- {
- TInt err;
- if (err = iCommServer.Connect(), err!=KErrNone)
- return err;
- if (aDll.Length()>0)
- {
- if (err = iCommServer.LoadCommModule(aDll), err!=KErrNone)
- {
- iCommServer.Close();
- return err;
- }
- }
- if (err = iCommPort.Open(iCommServer, aName, ECommExclusive), err!=KErrNone)
- // if any other TSY (or other app) is using comm port, we want to return gracefully
- // with error
- {
- iCommServer.Close();
- return err;
- }
- if (aMode==ECommShared)
- {
- iCommPort.Close();
- if (err = iCommPort.Open(iCommServer, aName, aMode), err!=KErrNone)
- {
- iCommServer.Close();
- return err;
- }
- }
- return KErrNone;
- }
-
-TInt MComm::CommOpen(const TDesC& aName, TCommAccess aMode)
- {
- TInt err;
- if (err = iCommServer.Connect(), err!=KErrNone)
- return err;
- if (err = iCommPort.Open(iCommServer, aName, ECommExclusive), err!=KErrNone)
- // if any other TSY (or other app) is using comm port, we want to return gracefully
- // with error
- {
- iCommServer.Close();
- return err;
- }
- if (aMode==ECommShared)
- {
- iCommPort.Close();
- if (err = iCommPort.Open(iCommServer, aName, aMode), err!=KErrNone)
- {
- iCommServer.Close();
- return err;
- }
- }
- return KErrNone;
- }
-
-void MComm::CommClose()
- {
- iCommReader->Cancel();
- iCommWriter->Cancel();
- iCommPort.Close();
- iCommServer.Close();
- }
-
-void MComm::CommConstructL(TInt aReadPriority, TInt aWritePriority)
- {
- iCommReader = new (ELeave) CCommReader(this, aReadPriority);
- iCommWriter = new (ELeave) CCommWriter(this, aWritePriority);
- };
-
-void MComm::CommWrite(const TDesC8& aDes)
- {
- __ASSERT_ALWAYS(iCommWriter!=NULL, Panic(EATCommand_NotConstructed));
- iCommPort.Write(iCommWriter->StatusRef(), aDes);
- iCommWriter->Activate();
- }
-
-void MComm::CommWriteReady()
- {
- __ASSERT_ALWAYS(iCommWriter!=NULL, Panic(EATCommand_NotConstructed));
- iCommPort.Write(iCommWriter->StatusRef(), TPtrC8(NULL, 0));
- iCommWriter->Activate();
- }
-
-void MComm::CommRead(TDes8& aDes)
- {
- __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
- iCommPort.Read(iCommReader->StatusRef(), aDes, aDes.Length());
- iCommReader->Activate();
- }
-
-void MComm::CommReadOneOrMore(TDes8& aDes)
- {
- __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
- iCommPort.ReadOneOrMore(iCommReader->StatusRef(), aDes);
- iCommReader->Activate();
- }
-
-void MComm::CommReadReady()
- {
- __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
-// TRequestStatus aStatus;
-// iCommPort.Read(aStatus,iBuf,0);
-// User::WaitForRequest(aStatus);
-// JoeF 26.11.99. IrComm.Csy can't handle a read into a zero-length buffer and needs fixing. The
-// above lines have been removed from the TSY as a temporary workaround only, until a proper fix
-// can be implemented in IrComm.Csy
- }
-
-void MComm::CommCancel()
- {
- if (iCommWriter)
- iCommWriter->Cancel();
- if (iCommReader)
- iCommReader->Cancel();
- }
-
-void MComm::CommWriteCancel()
- {
- if (iCommWriter)
- iCommWriter->Cancel();
- }
-
-void MComm::CommReadCancel()
- {
- if (iCommReader)
- iCommReader->Cancel();
- }
-
-//
-// CCommWriter
-//
-CCommWriter::CCommWriter(MComm* aComm, TInt aPriority)
- : CActive(aPriority), iComm(aComm)
- {
- __DECLARE_NAME(_S("CCommWriter"));
- CActiveScheduler::Add(this);
- }
-
-CCommWriter::~CCommWriter()
- {
- Cancel();
- }
-
-void CCommWriter::RunL()
- {
- iComm->CommWriteComplete(iStatus.Int());
- }
-
-void CCommWriter::DoCancel()
- {
- iComm->iCommPort.WriteCancel();
- }
-
-//
-// CCommReader
-//
-CCommReader::CCommReader(MComm* aComm, TInt aPriority)
- : CActive(aPriority), iComm(aComm)
- {
- __DECLARE_NAME(_S("CCommReader"));
- CActiveScheduler::Add(this);
- }
-
-CCommReader::~CCommReader()
- {
- Cancel();
- }
-
-void CCommReader::RunL()
- {
- iComm->CommReadComplete(iStatus.Int());
- }
-
-void CCommReader::DoCancel()
- {
- iComm->iCommPort.ReadCancel();
- }
+// Copyright (c) 1997-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:
+// Comms reader and writer mixin
+//
+//
+
+#include "ATSTD.H"
+#include "SCOMM.H"
+
+MComm::MComm()
+ {
+ iCommReader = NULL;
+ iCommWriter = NULL;
+ }
+
+MComm::~MComm()
+ {
+ delete iCommReader;
+ delete iCommWriter;
+ iCommPort.Close();
+ iCommServer.Close();
+ }
+
+TInt MComm::CommOpen(const TDesC& aDll, const TDesC& aName, TCommAccess aMode)
+ {
+ TInt err;
+ if (err = iCommServer.Connect(), err!=KErrNone)
+ return err;
+ if (aDll.Length()>0)
+ {
+ if (err = iCommServer.LoadCommModule(aDll), err!=KErrNone)
+ {
+ iCommServer.Close();
+ return err;
+ }
+ }
+ if (err = iCommPort.Open(iCommServer, aName, ECommExclusive), err!=KErrNone)
+ // if any other TSY (or other app) is using comm port, we want to return gracefully
+ // with error
+ {
+ iCommServer.Close();
+ return err;
+ }
+ if (aMode==ECommShared)
+ {
+ iCommPort.Close();
+ if (err = iCommPort.Open(iCommServer, aName, aMode), err!=KErrNone)
+ {
+ iCommServer.Close();
+ return err;
+ }
+ }
+ return KErrNone;
+ }
+
+TInt MComm::CommOpen(const TDesC& aName, TCommAccess aMode)
+ {
+ TInt err;
+ if (err = iCommServer.Connect(), err!=KErrNone)
+ return err;
+ if (err = iCommPort.Open(iCommServer, aName, ECommExclusive), err!=KErrNone)
+ // if any other TSY (or other app) is using comm port, we want to return gracefully
+ // with error
+ {
+ iCommServer.Close();
+ return err;
+ }
+ if (aMode==ECommShared)
+ {
+ iCommPort.Close();
+ if (err = iCommPort.Open(iCommServer, aName, aMode), err!=KErrNone)
+ {
+ iCommServer.Close();
+ return err;
+ }
+ }
+ return KErrNone;
+ }
+
+void MComm::CommClose()
+ {
+ iCommReader->Cancel();
+ iCommWriter->Cancel();
+ iCommPort.Close();
+ iCommServer.Close();
+ }
+
+void MComm::CommConstructL(TInt aReadPriority, TInt aWritePriority)
+ {
+ iCommReader = new (ELeave) CCommReader(this, aReadPriority);
+ iCommWriter = new (ELeave) CCommWriter(this, aWritePriority);
+ };
+
+void MComm::CommWrite(const TDesC8& aDes)
+ {
+ __ASSERT_ALWAYS(iCommWriter!=NULL, Panic(EATCommand_NotConstructed));
+ iCommPort.Write(iCommWriter->StatusRef(), aDes);
+ iCommWriter->Activate();
+ }
+
+void MComm::CommWriteReady()
+ {
+ __ASSERT_ALWAYS(iCommWriter!=NULL, Panic(EATCommand_NotConstructed));
+ iCommPort.Write(iCommWriter->StatusRef(), TPtrC8(NULL, 0));
+ iCommWriter->Activate();
+ }
+
+void MComm::CommRead(TDes8& aDes)
+ {
+ __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
+ iCommPort.Read(iCommReader->StatusRef(), aDes, aDes.Length());
+ iCommReader->Activate();
+ }
+
+void MComm::CommReadOneOrMore(TDes8& aDes)
+ {
+ __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
+ iCommPort.ReadOneOrMore(iCommReader->StatusRef(), aDes);
+ iCommReader->Activate();
+ }
+
+void MComm::CommReadReady()
+ {
+ __ASSERT_ALWAYS(iCommReader!=NULL, Panic(EATCommand_NotConstructed));
+// TRequestStatus aStatus;
+// iCommPort.Read(aStatus,iBuf,0);
+// User::WaitForRequest(aStatus);
+// JoeF 26.11.99. IrComm.Csy can't handle a read into a zero-length buffer and needs fixing. The
+// above lines have been removed from the TSY as a temporary workaround only, until a proper fix
+// can be implemented in IrComm.Csy
+ }
+
+void MComm::CommCancel()
+ {
+ if (iCommWriter)
+ iCommWriter->Cancel();
+ if (iCommReader)
+ iCommReader->Cancel();
+ }
+
+void MComm::CommWriteCancel()
+ {
+ if (iCommWriter)
+ iCommWriter->Cancel();
+ }
+
+void MComm::CommReadCancel()
+ {
+ if (iCommReader)
+ iCommReader->Cancel();
+ }
+
+//
+// CCommWriter
+//
+CCommWriter::CCommWriter(MComm* aComm, TInt aPriority)
+ : CActive(aPriority), iComm(aComm)
+ {
+ __DECLARE_NAME(_S("CCommWriter"));
+ CActiveScheduler::Add(this);
+ }
+
+CCommWriter::~CCommWriter()
+ {
+ Cancel();
+ }
+
+void CCommWriter::RunL()
+ {
+ iComm->CommWriteComplete(iStatus.Int());
+ }
+
+void CCommWriter::DoCancel()
+ {
+ iComm->iCommPort.WriteCancel();
+ }
+
+//
+// CCommReader
+//
+CCommReader::CCommReader(MComm* aComm, TInt aPriority)
+ : CActive(aPriority), iComm(aComm)
+ {
+ __DECLARE_NAME(_S("CCommReader"));
+ CActiveScheduler::Add(this);
+ }
+
+CCommReader::~CCommReader()
+ {
+ Cancel();
+ }
+
+void CCommReader::RunL()
+ {
+ iComm->CommReadComplete(iStatus.Int());
+ }
+
+void CCommReader::DoCancel()
+ {
+ iComm->iCommPort.ReadCancel();
+ }