dbgagents/trkagent/trkserver/toolsconnectionlistener.cpp
changeset 0 c6b0df440bee
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbgagents/trkagent/trkserver/toolsconnectionlistener.cpp	Tue Mar 02 10:33:16 2010 +0530
@@ -0,0 +1,141 @@
+/*
+* 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 "toolsconnectionlistener.h"
+#include <e32debug.h>
+
+//
+//----------------------------------------------------
+// CToolsConnectionListener::NewL()
+// To create the instance
+//----------------------------------------------------
+//
+CToolsConnectionListener* CToolsConnectionListener :: NewL(MTrkUsbConnectionListener* aListener)
+{
+    CToolsConnectionListener* self = new (ELeave) CToolsConnectionListener();
+    CleanupStack::PushL(self);
+    self->ConstructL(aListener);
+    CleanupStack::Pop(self);
+    return self;   
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::ConstructL()
+// 2nd phase constructor
+//----------------------------------------------------
+//
+void CToolsConnectionListener::ConstructL(MTrkUsbConnectionListener* aListener)
+{
+    User::LeaveIfError( iToolSession.Connect() );
+    iConnectionListener = aListener;
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::CToolsConnectionListener()
+// 1st phase constructor
+//----------------------------------------------------
+//
+CToolsConnectionListener::CToolsConnectionListener()
+    : CActive(EPriorityStandard),
+    iPackage(iConnStatus),
+    iConnectionListener(NULL)
+   
+{   
+    CActiveScheduler::Add(this);
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::~CToolsConnectionListener()
+// Desctructor
+//----------------------------------------------------
+//
+CToolsConnectionListener::~CToolsConnectionListener() 
+{   
+    Cancel();
+    iToolSession.Close();
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::StartListening()
+// To issue the asynchronous request
+//----------------------------------------------------
+//
+
+void CToolsConnectionListener::StartListening()
+{
+    iToolSession.UsbConnNotify(iPackage, iStatus);    
+    SetActive();
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::StartListening()
+// To stop the asynchronous request
+//----------------------------------------------------
+//
+void CToolsConnectionListener::StopListening()
+{
+    DoCancel();  
+    
+}
+//
+//----------------------------------------------------
+// CToolsConnectionListener::RunL()
+// RunL implementation
+//----------------------------------------------------
+//
+void CToolsConnectionListener::RunL()
+{
+    if(iStatus==KErrNone)
+    {
+        switch(iConnStatus)
+        {   
+            case EUsbConnected:
+            {  
+                if(iConnectionListener)
+                    iConnectionListener->ConnectionAvailable();
+                break;
+            }
+            case EUsbNotConnected:
+            {
+                if(iConnectionListener)
+                    iConnectionListener->ConnectionUnAvailable();
+                break;
+            }
+                
+            default:
+                break;
+            
+         }
+     }
+    
+    StartListening();
+       
+}
+
+//
+//----------------------------------------------------
+// CToolsConnectionListener::DoCancel()
+// 
+//----------------------------------------------------
+//
+
+void CToolsConnectionListener::DoCancel()
+{
+    iToolSession.UsbConnNotifyCancel();
+}
+