services/terminalmodeservice/src/upnptmserverdevice.cpp
branchRCL_3
changeset 29 5c72fd91570d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/services/terminalmodeservice/src/upnptmserverdevice.cpp	Tue Aug 31 16:06:48 2010 +0300
@@ -0,0 +1,180 @@
+/**
+* Copyright (c) 2010 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: CUpnpTmServerDevice class implementation.
+*
+*/
+
+// INCLUDE FILES
+#include "upnptmserverdevice.h"
+#include <upnpconnectionmanagernetworkeventprovider.h>
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "upnptmserverdeviceTraces.h"
+#endif
+
+
+
+// ============================ MEMBER FUNCTIONS ===================================
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------------------------------
+//
+CUpnpTmServerDevice* CUpnpTmServerDevice::NewL( CUpnpTmServerDeviceInfo& aDeviceInfo,
+                                                    CUpnpTmServerImpl& aTmServerImpl )
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_NEWL_ENTRY );
+    CUpnpTmServerDevice* self = new( ELeave ) CUpnpTmServerDevice();
+    CleanupStack::PushL( self );
+    self->ConstructL( aDeviceInfo, aTmServerImpl );
+    CleanupStack::Pop(self);
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_NEWL_EXIT );
+    return self;
+    }
+
+// -------------------------------------------------------------------------------------
+// CUpnpTmServerDevice::CUpnpTmServerDevice
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------------
+//
+CUpnpTmServerDevice::CUpnpTmServerDevice():iIsStarted(EFalse) 
+    {
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo,
+                                              CUpnpTmServerImpl& aTmServerImpl )
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_CONSTRUCTL_ENTRY );
+    iXmlParser = CUpnpTmServerDeviceXmlParser::NewL( aDeviceInfo );
+    iXmlParser->StartL();
+    iDescriptionProvider = CUpnpTmServerDescriptionProvider::NewL();
+    
+    iDescriptionStore = CUpnpDeviceDescriptionStore::NewL( iXmlParser->DevicePath() );
+    // creates device
+    iDevice = CUpnpDeviceImplementation::NewL( iXmlParser->DescriptionUri(), 
+                                               *iDescriptionStore, 
+                                               *iDescriptionProvider );
+    // Creates two services
+    iTmAppServerService = CUpnpTmAppServerService::NewL( *iDevice, iXmlParser->AppServerSrvPath(), aTmServerImpl );
+    iTmClientProfileService = CUpnpTmClientProfileService::NewL( *iDevice, iXmlParser->ClientProfileSrvPath(),
+                                                                                               aTmServerImpl );
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_CONSTRUCTL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::~CUpnpTmServerDevice
+// Destructor
+// ---------------------------------------------------------------------------------
+//
+CUpnpTmServerDevice::~CUpnpTmServerDevice()
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_CUPNPTMSERVERDEVICE_ENTRY );
+    delete iTmAppServerService;
+    delete iTmClientProfileService;
+    delete iDevice;
+    delete iDescriptionStore;
+    delete iDescriptionProvider;
+    delete iXmlParser;
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_CUPNPTMSERVERDEVICE_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::StartTmServerDeviceL
+// Starts the Terminal Mode Server Device if not started.
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::StartTmServerDeviceL()
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_STARTTMSERVERDEVICEL_ENTRY );
+    if ( iIsStarted )
+        {  
+        // Device is already up and running
+        OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_STARTTMSERVERDEVICEL_EXIT );
+        return;
+        }
+    
+   if ( !iDevice )
+        {
+        // Leaves if the device object is not initialised
+        User::Leave(KErrNotReady);
+        }
+    // Starts TM Server Device
+    iDevice->StartL();
+    iIsStarted = ETrue;  
+    OstTraceFunctionExit0( DUP1_CUPNPTMSERVERDEVICE_STARTTMSERVERDEVICEL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::StopTmServerDeviceL
+// Stops the Terminal Mode Server Device.
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::StopTmServerDeviceL()
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_STOPTMSERVERDEVICEL_ENTRY );
+    if ( iDevice )
+        {
+        iDevice->StopL();
+        }
+    iIsStarted = EFalse;  
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_STOPTMSERVERDEVICEL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::AppStatusUpdateL
+// Notifies the client about the application status updates
+// @param aStatusEventBuffer buffer holding the update app status information
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::AppStatusUpdateL( const TDesC8& aStatusEventBuffer )
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_APPSTATUSUPDATEL_ENTRY );
+    iTmAppServerService->AppStatusUpdateEventL(aStatusEventBuffer);
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_APPSTATUSUPDATEL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::AppListUpdateL
+// Notifies the client about the application list updates
+// @param aListEventBuffer buffer holding the update app list information
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::AppListUpdateL( const TDesC8& aListEventBuffer )
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_APPLISTUPDATEL_ENTRY );
+    iTmAppServerService->AppListUpdateEventL(aListEventBuffer);   
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_APPLISTUPDATEL_EXIT );
+    }
+
+// ---------------------------------------------------------------------------------
+// CUpnpTmServerDevice::aUnusedProfileIdBuffer
+// Notifies the client about the application list updates
+// @param aUnusedProfileIdBuffer buffer holding the update app list information
+// ---------------------------------------------------------------------------------
+//
+void CUpnpTmServerDevice::UnUsedProfileIdUpdateL( const TDesC8& aUnusedProfileIdBuffer )
+    {
+    OstTraceFunctionEntry0( CUPNPTMSERVERDEVICE_UNUSEDPROFILEIDUPDATEL_ENTRY );
+    iTmClientProfileService->UnUsedProfileIdEventL(aUnusedProfileIdBuffer);   
+    OstTraceFunctionExit0( CUPNPTMSERVERDEVICE_UNUSEDPROFILEIDUPDATEL_EXIT );
+    }
+
+// End of File