# HG changeset patch # User Pat Downey # Date 1283340420 -3600 # Node ID 594d15129e2c8a1463cb68846df0e9e82a0e3f20 # Parent 5c72fd91570dee9f27d3a01fe5d5e126e7edf803 Revert incorrect RCL_3 drop: Revision: 201029 Kit: 201035 diff -r 5c72fd91570d -r 594d15129e2c group/bld.inf --- a/group/bld.inf Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* 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: Build information for srvdiscovery -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -#include "../upnp/group/bld.inf" -#include "../services/group/bld.inf" -#include "../servicediscoveryandcontrol/pnp/group/bld.inf" - - -PRJ_TESTMMPFILES \ No newline at end of file diff -r 5c72fd91570d -r 594d15129e2c layers.sysdef.xml --- a/layers.sysdef.xml Tue Aug 31 16:06:48 2010 +0300 +++ b/layers.sysdef.xml Wed Sep 01 12:27:00 2010 +0100 @@ -1,14 +1,13 @@ - - + ]> - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r 5c72fd91570d -r 594d15129e2c package_definition.xml --- a/package_definition.xml Tue Aug 31 16:06:48 2010 +0300 +++ b/package_definition.xml Wed Sep 01 12:27:00 2010 +0100 @@ -1,46 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + diff -r 5c72fd91570d -r 594d15129e2c package_map.xml --- a/package_map.xml Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ - diff -r 5c72fd91570d -r 594d15129e2c services/group/bld.inf --- a/services/group/bld.inf Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/** -* 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: This file provides the information required for building the -* whole of terminalmodeservice_plat and terminalmodeservice. -* -*/ - - -// Export domain headers -#include "../terminalmodeservice_plat/group/bld.inf" - - -// terminalmodeservice -#include "../terminalmodeservice/group/bld.inf" - -// End of file diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/bwins/terminalmodeserviceu.def --- a/services/terminalmodeservice/bwins/terminalmodeserviceu.def Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -EXPORTS - ?SetResourceStatusL@CUpnpRemotableApp@@QAEXABVTDesC8@@@Z @ 1 NONAME ; void CUpnpRemotableApp::SetResourceStatusL(class TDesC8 const &) - ?StopL@CUpnpTmServer@@QAEXXZ @ 2 NONAME ; void CUpnpTmServer::StopL(void) - ?NewL@CUpnpTmServer@@SAPAV1@AAVCUpnpTmServerDeviceInfo@@AAVMUpnpTmServerObserver@@@Z @ 3 NONAME ; class CUpnpTmServer * CUpnpTmServer::NewL(class CUpnpTmServerDeviceInfo &, class MUpnpTmServerObserver &) - ?AddTmInfoElementL@CUpnpTmInfoElement@@QAEXABVTDesC8@@0@Z @ 4 NONAME ; void CUpnpTmInfoElement::AddTmInfoElementL(class TDesC8 const &, class TDesC8 const &) - ?SetXmlSignatureL@CUpnpTmServer@@QAEXABVTDesC8@@@Z @ 5 NONAME ; void CUpnpTmServer::SetXmlSignatureL(class TDesC8 const &) - ?SetAppDescriptionL@CUpnpRemotableApp@@QAEXABVTDesC8@@@Z @ 6 NONAME ; void CUpnpRemotableApp::SetAppDescriptionL(class TDesC8 const &) - ?RegisterAppL@CUpnpTmServer@@QAEXPAVCUpnpRemotableApp@@@Z @ 7 NONAME ; void CUpnpTmServer::RegisterAppL(class CUpnpRemotableApp *) - ?NewL@CUpnpTerminalModeIcon@@SAPAV1@ABVTDesC16@@HHHABVTDesC8@@@Z @ 8 NONAME ; class CUpnpTerminalModeIcon * CUpnpTerminalModeIcon::NewL(class TDesC16 const &, int, int, int, class TDesC8 const &) - ?NewL@CUpnpTmClientIconPref@@SAPAV1@I@Z @ 9 NONAME ; class CUpnpTmClientIconPref * CUpnpTmClientIconPref::NewL(unsigned int) - ?SetDeviceInfoL@CUpnpTmServerDeviceInfo@@QAEXABVTDesC8@@@Z @ 10 NONAME ; void CUpnpTmServerDeviceInfo::SetDeviceInfoL(class TDesC8 const &) - ?AddDeviceIconL@CUpnpTmServerDeviceInfo@@QAEXPAVCUpnpTerminalModeIcon@@@Z @ 11 NONAME ; void CUpnpTmServerDeviceInfo::AddDeviceIconL(class CUpnpTerminalModeIcon *) - ?UpdateAppListL@CUpnpTmServer@@QAEXABV?$RArray@I@@@Z @ 12 NONAME ; void CUpnpTmServer::UpdateAppListL(class RArray const &) - ?AddIconL@CUpnpRemotableApp@@QAEXPAVCUpnpTerminalModeIcon@@@Z @ 13 NONAME ; void CUpnpRemotableApp::AddIconL(class CUpnpTerminalModeIcon *) - ?CreateTmInfoElementL@CUpnpRemotableApp@@QAEAAVCUpnpTmInfoElement@@W4TTerminalModeInfoType@2@@Z @ 14 NONAME ; class CUpnpTmInfoElement & CUpnpRemotableApp::CreateTmInfoElementL(enum CUpnpTmInfoElement::TTerminalModeInfoType) - ?UnRegisterApp@CUpnpTmServer@@QAEHI@Z @ 15 NONAME ; int CUpnpTmServer::UnRegisterApp(unsigned int) - ?StartL@CUpnpTmServer@@QAEXXZ @ 16 NONAME ; void CUpnpTmServer::StartL(void) - ?NewL@CUpnpRemotableApp@@SAPAV1@IABVTDesC8@@@Z @ 17 NONAME ; class CUpnpRemotableApp * CUpnpRemotableApp::NewL(unsigned int, class TDesC8 const &) - ?UpdateUnusedProfileIdsL@CUpnpTmServer@@QAEXABV?$RArray@I@@@Z @ 18 NONAME ; void CUpnpTmServer::UpdateUnusedProfileIdsL(class RArray const &) - ?GetRemotableApp@CUpnpTmServer@@QAEAAVCUpnpRemotableApp@@IAAH@Z @ 19 NONAME ; class CUpnpRemotableApp & CUpnpTmServer::GetRemotableApp(unsigned int, int &) - ?UpdateAppStatusL@CUpnpTmServer@@QAEXABV?$RArray@I@@@Z @ 20 NONAME ; void CUpnpTmServer::UpdateAppStatusL(class RArray const &) - ?UnRegisterApps@CUpnpTmServer@@QAEHABV?$RArray@I@@@Z @ 21 NONAME ; int CUpnpTmServer::UnRegisterApps(class RArray const &) - ?RegisterAppsL@CUpnpTmServer@@QAEXABV?$RPointerArray@VCUpnpRemotableApp@@@@@Z @ 22 NONAME ; void CUpnpTmServer::RegisterAppsL(class RPointerArray const &) - ?NewL@CUpnpTmServerDeviceInfo@@SAPAV1@K@Z @ 23 NONAME ; class CUpnpTmServerDeviceInfo * CUpnpTmServerDeviceInfo::NewL(unsigned long) - ?SetBtAddressL@CUpnpTmServerDeviceInfo@@QAEXABVTDesC8@@@Z @ 24 NONAME ; void CUpnpTmServerDeviceInfo::SetBtAddressL(class TDesC8 const &) - ?SetMimeTypeL@CUpnpTmClientIconPref@@QAEXABVTDesC8@@@Z @ 25 NONAME ; void CUpnpTmClientIconPref::SetMimeTypeL(class TDesC8 const &) - ?SetAllowedProfileIdListL@CUpnpRemotableApp@@QAEXABV?$RArray@I@@@Z @ 26 NONAME ; void CUpnpRemotableApp::SetAllowedProfileIdListL(class RArray const &) - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/eabi/terminalmodeserviceu.def --- a/services/terminalmodeservice/eabi/terminalmodeserviceu.def Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -EXPORTS - _ZN13CUpnpTmServer12RegisterAppLEP17CUpnpRemotableApp @ 1 NONAME - _ZN13CUpnpTmServer13RegisterAppsLERK13RPointerArrayI17CUpnpRemotableAppE @ 2 NONAME - _ZN13CUpnpTmServer13UnRegisterAppEj @ 3 NONAME - _ZN13CUpnpTmServer14UnRegisterAppsERK6RArrayIjE @ 4 NONAME - _ZN13CUpnpTmServer14UpdateAppListLERK6RArrayIjE @ 5 NONAME - _ZN13CUpnpTmServer15GetRemotableAppEjRi @ 6 NONAME - _ZN13CUpnpTmServer16SetXmlSignatureLERK6TDesC8 @ 7 NONAME - _ZN13CUpnpTmServer16UpdateAppStatusLERK6RArrayIjE @ 8 NONAME - _ZN13CUpnpTmServer23UpdateUnusedProfileIdsLERK6RArrayIjE @ 9 NONAME - _ZN13CUpnpTmServer4NewLER23CUpnpTmServerDeviceInfoR21MUpnpTmServerObserver @ 10 NONAME - _ZN13CUpnpTmServer5StopLEv @ 11 NONAME - _ZN13CUpnpTmServer6StartLEv @ 12 NONAME - _ZN17CUpnpRemotableApp18SetAppDescriptionLERK6TDesC8 @ 13 NONAME - _ZN17CUpnpRemotableApp18SetResourceStatusLERK6TDesC8 @ 14 NONAME - _ZN17CUpnpRemotableApp20CreateTmInfoElementLEN18CUpnpTmInfoElement21TTerminalModeInfoTypeE @ 15 NONAME - _ZN17CUpnpRemotableApp24SetAllowedProfileIdListLERK6RArrayIjE @ 16 NONAME - _ZN17CUpnpRemotableApp4NewLEjRK6TDesC8 @ 17 NONAME - _ZN17CUpnpRemotableApp8AddIconLEP21CUpnpTerminalModeIcon @ 18 NONAME - _ZN18CUpnpTmInfoElement17AddTmInfoElementLERK6TDesC8S2_ @ 19 NONAME - _ZN21CUpnpTerminalModeIcon4NewLERK7TDesC16iiiRK6TDesC8 @ 20 NONAME - _ZN21CUpnpTmClientIconPref12SetMimeTypeLERK6TDesC8 @ 21 NONAME - _ZN21CUpnpTmClientIconPref4NewLEj @ 22 NONAME - _ZN23CUpnpTmServerDeviceInfo13SetBtAddressLERK6TDesC8 @ 23 NONAME - _ZN23CUpnpTmServerDeviceInfo14AddDeviceIconLEP21CUpnpTerminalModeIcon @ 24 NONAME - _ZN23CUpnpTmServerDeviceInfo14SetDeviceInfoLERK6TDesC8 @ 25 NONAME - _ZN23CUpnpTmServerDeviceInfo4NewLEm @ 26 NONAME - _ZTI13CUpnpTmServer @ 27 NONAME - _ZTI17CUpnpRemotableApp @ 28 NONAME - _ZTI17CUpnpTmServerImpl @ 29 NONAME - _ZTI18CUpnpAppFilterInfo @ 30 NONAME - _ZTI18CUpnpTmIconMapping @ 31 NONAME - _ZTI18CUpnpTmInfoElement @ 32 NONAME - _ZTI19CUpnpTmServerDevice @ 33 NONAME - _ZTI21CUpnpTerminalModeIcon @ 34 NONAME - _ZTI21CUpnpTmClientIconPref @ 35 NONAME - _ZTI22CUpnpRemotableAppStore @ 36 NONAME - _ZTI22CUpnpSvgImageConverter @ 37 NONAME - _ZTI22CUpnpTmFilteredAppList @ 38 NONAME - _ZTI23CUpnpTmAppServerService @ 39 NONAME - _ZTI23CUpnpTmServerDeviceInfo @ 40 NONAME - _ZTI25CUpnpIconConversionActive @ 41 NONAME - _ZTI27CUpnpTmClientProfileService @ 42 NONAME - _ZTI28CUpnpTmServerDeviceXmlParser @ 43 NONAME - _ZTI29CUpnpIconFileServeTransaction @ 44 NONAME - _ZTI32CUpnpTmServerDescriptionProvider @ 45 NONAME - _ZTV13CUpnpTmServer @ 46 NONAME - _ZTV17CUpnpRemotableApp @ 47 NONAME - _ZTV17CUpnpTmServerImpl @ 48 NONAME - _ZTV18CUpnpAppFilterInfo @ 49 NONAME - _ZTV18CUpnpTmIconMapping @ 50 NONAME - _ZTV18CUpnpTmInfoElement @ 51 NONAME - _ZTV19CUpnpTmServerDevice @ 52 NONAME - _ZTV21CUpnpTerminalModeIcon @ 53 NONAME - _ZTV21CUpnpTmClientIconPref @ 54 NONAME - _ZTV22CUpnpRemotableAppStore @ 55 NONAME - _ZTV22CUpnpSvgImageConverter @ 56 NONAME - _ZTV22CUpnpTmFilteredAppList @ 57 NONAME - _ZTV23CUpnpTmAppServerService @ 58 NONAME - _ZTV23CUpnpTmServerDeviceInfo @ 59 NONAME - _ZTV25CUpnpIconConversionActive @ 60 NONAME - _ZTV27CUpnpTmClientProfileService @ 61 NONAME - _ZTV28CUpnpTmServerDeviceXmlParser @ 62 NONAME - _ZTV29CUpnpIconFileServeTransaction @ 63 NONAME - _ZTV32CUpnpTmServerDescriptionProvider @ 64 NONAME - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/group/bld.inf --- a/services/terminalmodeservice/group/bld.inf Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/** -* 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: This file provides the information required for building the -* whole of a TM Service and its test component. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../rom/terminalmodeservice.iby CORE_MW_LAYER_IBY_EXPORT_PATH(terminalmodeservice.iby) - -PRJ_MMPFILES -terminalmodeservice.mmp - -PRJ_TESTMMPFILES -#include "../tsrc/upnptmservertest/group/bld.inf" diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/group/terminalmodeservice.mmp --- a/services/terminalmodeservice/group/terminalmodeservice.mmp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/** -* 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: This is the project specification file for Terminal Mode Service. -* -*/ - - -TARGET terminalmodeservice.dll -TARGETTYPE dll -UID 0x1000008d 0x2002D1B8 - -CAPABILITY CAP_GENERAL_DLL - -USERINCLUDE ../inc -USERINCLUDE ../traces - -MW_LAYER_SYSTEMINCLUDE - -SOURCEPATH ../src - -SOURCE upnptmserver.cpp -SOURCE upnptmserverimpl.cpp -SOURCE upnptmserverdeviceinfo.cpp -SOURCE upnpremotableapp.cpp -SOURCE upnptminfoelement.cpp -SOURCE upnptmserverdescriptionprovider.cpp -SOURCE upnpterminalmodeicon.cpp -SOURCE upnptmclienticonpref.cpp -SOURCE upnptmserverdevice.cpp -SOURCE upnptmserverdevicexmlparser.cpp -SOURCE upnptmappserverservice.cpp -SOURCE upnptmclientprofileservice.cpp -SOURCE upnpremotableappstore.cpp -SOURCE upnptmfilteredapplist.cpp -SOURCE upnptmiconmapping.cpp -SOURCE upnpappfilterinfo.cpp -SOURCE upnpiconfileservetransaction.cpp -SOURCE upnpsvgimageconverter.cpp -SOURCE upnpiconconversionactive.cpp - -LIBRARY upnpserviceframework.lib -LIBRARY dlnawebserver.lib -LIBRARY upnpipserversutils.lib -LIBRARY upnpconnectionmanagersession.lib -LIBRARY insock.lib -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY xmlframework.lib -LIBRARY charconv.lib -LIBRARY bafl.lib -LIBRARY etelmm.lib -LIBRARY etel.lib -LIBRARY esock.lib -LIBRARY svgengine.lib -LIBRARY imageconversion.lib -LIBRARY fbscli.lib -LIBRARY gdi.lib - -DEFFILE terminalmodeservice.def - -#ifdef ENABLE_ABIV2_MODE -DEBUGGABLE_UDEBONLY -#endif - -SMPSAFE - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpappfilterinfo.h --- a/services/terminalmodeservice/inc/upnpappfilterinfo.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/** -* 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: CUpnpAppFilterInfo class declaration -* -*/ - -#ifndef __UPNPAPPFILTERINFO_H__ -#define __UPNPAPPFILTERINFO_H__ - -// Include Files -#include -#include "terminalmodeconsts.h" - -// Literals -_LIT8(KProtocolId, "protocolID"); -_LIT8(KFormat, "format"); -_LIT8(KRemotingDirection, "direction"); -_LIT8(KAppCategory, "appCategory"); -_LIT8(KTrustLevel, "trustLevel"); -_LIT8(KContCategory, "contentCategory"); -_LIT8(KContentRules, "contentRules"); -_LIT8(KAudioType, "audioType"); - -/** - * This class stores the parsed information provided in the AppListingFilter - * input argument of the GetApplicationList action. - * Provides internal setter and getter methods. - * Maintains a structure which holds the information such as which all optional - * elements are needed in the response and which all applications should go - * in the response. - */ -class CUpnpAppFilterInfo : public CBase - { -public: - static CUpnpAppFilterInfo* NewL(); - ~CUpnpAppFilterInfo(); - - /* - * Method is used to set the value for each key provided in the filter string as an input - * Returns error if the there is a mismatch of the key or key is not as per the GetApplicationList schema - * The default parameter( aDisplayInfoFlag ) is provided only to distinguish the child element "trustLevel" ( child element) - * of displayInfo element from "trustLevel" of appInfo element. - */ - void SetFilterInfoL( const TDesC8& aKey, const TDesC8& aValue, - TTerminalModeErrorCode& aErr, TBool aDisplayInfoFlag = EFalse ); - // inlined Getter methods - inline const TDesC8& AppName()const; - inline const TDesC8& AppDescription()const; - inline const TDesC8& MimeType()const; - inline const TDesC8& Width()const; - inline const TDesC8& Height()const; - inline const TDesC8& Depth()const; - inline const TDesC8& AllowedProfileIdList()const; - inline const TDesC8& ProtocolId()const; - inline const TDesC8& Format()const; - inline const TDesC8& Direction()const; - inline const TDesC8& AppCategory()const; - inline const TDesC8& AppTrustLevel()const; - inline const TDesC8& ContentCategory()const; - inline const TDesC8& ContentRules()const; - inline const TDesC8& ContentTrustLevel()const; - inline const TDesC8& AudioType()const; - inline const TDesC8& ResourceStatus()const; - inline const TDesC8& Signature()const; - -private: - CUpnpAppFilterInfo( ); - -private: - HBufC8* iAppName; - HBufC8* iAppDesc; - HBufC8* iMimeType; - HBufC8* iWidth; - HBufC8* iHeight; - HBufC8* iDepth; - HBufC8* iAllowedIdList; - HBufC8* iProtocolId; - HBufC8* iFormat; - HBufC8* iDirection; - HBufC8* iAppCategory; - HBufC8* iAppTrustLevel; - HBufC8* iContCategory; - HBufC8* iContentRules; - HBufC8* iContTrustLevel; - HBufC8* iAudioType; - HBufC8* iRscStatus; - HBufC8* iSignature; - }; - -#include "upnpappfilterinfo.inl" - -#endif //__UPNPAPPFILTERINFO_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpappfilterinfo.inl --- a/services/terminalmodeservice/inc/upnpappfilterinfo.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/** -* 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: -* -*/ - -#ifndef __UPNPAPPFILTERINFO_INL__ -#define __UPNPAPPFILTERINFO_INL__ - - -// ----------------------------------------------------------------------------- -// CAppFilterInfo::AppName -// @return Returns the application name -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AppName()const - { - if ( iAppName ) - { - return *iAppName; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::AppDescription -// @return Returns the app description -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AppDescription()const - { - if ( iAppDesc ) - { - return *iAppDesc; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::MimeType -// @return Returns the mimetype of the icon -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::MimeType()const - { - if ( iMimeType ) - { - return *iMimeType; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Width -// @param[out] aFlag True or false -// @return Returns the width value of the icon -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Width()const - { - if ( iWidth ) - { - return *iWidth; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Height -// @param[out] aFlag True or false -// @return Returns the height value of the icon -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Height()const - { - if ( iHeight ) - { - return *iHeight; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Depth -// @return Returns the depth value of the icon -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Depth()const - { - if ( iDepth ) - { - return *iDepth; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::AllowedProfileId -// @return Returns the depth value of the icon -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AllowedProfileIdList()const - { - if ( iAllowedIdList ) - { - return *iAllowedIdList; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::ProtocolId -// @return Returns the protocol name -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::ProtocolId()const - { - if ( iProtocolId ) - { - return *iProtocolId; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Format -// @return Returns the format of remoting info element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Format()const - { - if ( iFormat ) - { - return *iFormat; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Direction -// @return Returns the direction of remoting info -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Direction()const - { - if ( iDirection) - { - return *iDirection; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::AppCategory -// @return Returns the category of application for appInfo element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AppCategory()const - { - if ( iAppCategory ) - { - return *iAppCategory; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::AppTrustLevel -// @return Returns the trust level of application for appInfo element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AppTrustLevel()const - { - if ( iAppTrustLevel ) - { - return *iAppTrustLevel; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::ContentCategory -// @return Returns the category of the content for display info element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::ContentCategory()const - { - if ( iContCategory ) - { - return *iContCategory; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::ContentCategory -// @return Returns the content rules for display info element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::ContentRules()const - { - if ( iContentRules ) - { - return *iContentRules; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::ContentTrustLevel -// @return Returns the trust level of the for display info element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::ContentTrustLevel()const - { - if ( iContTrustLevel ) - { - return *iContTrustLevel; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::AudioType -// @return Returns the type of audio for audio info element -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::AudioType()const - { - if ( iAudioType ) - { - return *iAudioType; - } - return KNullDesC8(); - } -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::ResourceStatus -// @return Returns the protocol name -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::ResourceStatus()const - { - if ( iRscStatus ) - { - return *iRscStatus; - } - return KNullDesC8(); - } - -// ----------------------------------------------------------------------------- -// CUpnpAppFilterInfo::Signature -// @return Returns the protocol name -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpAppFilterInfo::Signature()const - { - if ( iSignature ) - { - return *iSignature; - } - return KNullDesC8(); - } - -#endif //__UPNPAPPFILTERINFO_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpiconconversionactive.h --- a/services/terminalmodeservice/inc/upnpiconconversionactive.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/** -* 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: CUpnpIconConversionActive class declaration. -* -*/ - -#ifndef __UPNPICONCONVERSIONACTIVE_H__ -#define __UPNPICONCONVERSIONACTIVE_H__ - -// Include Files -#include - -/** - * Class encapsulates an active object (AO) which handles the actual image conversion - * in the new thread created. - */ -class CUpnpIconConversionActive: public CActive - { -public: - static CUpnpIconConversionActive* NewL( RFile& aBitmapFile ); - ~CUpnpIconConversionActive(); - - void Convert( CFbsBitmap& aBitmap ); - TInt FetchError(); - void RunL(); - void DoCancel(); - -private : - CUpnpIconConversionActive(); - void ConstructL( RFile& aBitmapFile ); - -private: - /** - * CImageEncoder class provides functions that convert image data held - * in CFbsBitmap objects into well know formats( "bitmap" in this case ) - */ - CImageEncoder* iEncoder; - }; - -#endif //__UPNPICONCONVERSIONACTIVE_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpiconfileservetransaction.h --- a/services/terminalmodeservice/inc/upnpiconfileservetransaction.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/** -* 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: CUpnpIconFileServeTransaction class declaration -* -*/ - -#ifndef __UPNPICONFILESERVETRANSACTION_H_ -#define __UPNPICONFILESERVETRANSACTION_H_ - -#include - -/** -* Class derives from CUpnpHttpServerTransaction base class. It sets the actual filepath -* which have to be served for http-get request -*/ -class CUpnpIconFileServeTransaction: public CUpnpHttpServerTransaction - { -public: - ~CUpnpIconFileServeTransaction(); - - static CUpnpIconFileServeTransaction* NewL( const TDesC& aOutFilePath, RFs& aIconSession ); - -public: - virtual void OnCallbackL( TUpnpHttpServerEvent aEvent ); - -protected: - CUpnpIconFileServeTransaction( RFs& aIconSession ); - void ConstructL( const TDesC& aOutFilePath ); - -private: - void DoCallbackL( TUpnpHttpServerEvent aEvent ); - -private: - RBuf iOutFilePath; - RFs& iIconFileSession ; - }; - -#endif // __UPNPICONFILESERVETRANSACTION_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpremotableappstore.h --- a/services/terminalmodeservice/inc/upnpremotableappstore.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/** -* 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: CUpnpRemotableAppStore class declaration -* -*/ - -#ifndef __UPNPREMOTABLEAPPSTORE_H__ -#define __UPNPREMOTABLEAPPSTORE_H__ - -#include "upnpremotableapp.h" - -/** -* Container class for all the remotable applications which have been registered -* with the terminal mode service. It provides an easy access to the list of remotable apps -*/ -class CUpnpRemotableAppStore : public CBase - { -public: - static CUpnpRemotableAppStore* NewL(); - void AddRemotableAppL( CUpnpRemotableApp* aApp ); - TInt RemoveRemotableApp( TUint aAppId ); - ~CUpnpRemotableAppStore(); - CUpnpRemotableApp& FetchRemotableApp( TInt aAppIndex )const; - const RArray& AppIdArray()const; - -private: - CUpnpRemotableAppStore(); - -private: - RPointerArray iRemotableAppArray; - RArray iAppIdArray; - }; - - -#endif // __UPNPREMOTABLEAPPSTORE_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnpsvgimageconverter.h --- a/services/terminalmodeservice/inc/upnpsvgimageconverter.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/** -* 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: CUpnpSvgImageConverter class declaration. -* -*/ - -#ifndef __UPNPSVGIMAGECONVERTER_H__ -#define __UPNPSVGIMAGECONVERTER_H__ - -// Include Files -#include - -/** - * CUpnpSvgImageConverter class acts as an intermediate between the invoker and the - * actual converter.Class encapsulates svg to bitmap conversion process. - * Does all the pre-processing needed before invoking actual conversion API. - * It takes svg file as an input and provides bmp ( converted ) file as an output. - * This class is responsible for creating a new thread and allocating resources to it. - * The icon file conversion happens in the new thread being created. - */ -class CUpnpSvgImageConverter : public CBase - { -public: - /** - * Two-phased constructor - * @param aIconWidth width of the requested icon - * @param aIconHeight height of the requested icon - */ - static CUpnpSvgImageConverter* NewL( TInt aIconWidth, TInt aIconHeight ); - /** - * Prepares the DOM for given SVG file, creates a new thread and returns - * the converted icon(bmp) file path - */ - void ConvertToBitmapL( const TDesC& aSvgFile, RBuf& aBitmapFile ); - ~CUpnpSvgImageConverter(); - CFbsBitmap& BitmapObject()const; - //static thread method serving as thread's main function - static TInt ImageConverter( TAny* aParam ); - //Leaving variant of thread function - static void ImageConverterL( CUpnpSvgImageConverter& aSvgConverter ); - -private: - // Constructors - CUpnpSvgImageConverter( ); - void ConstructL( TInt aIconWidth, TInt aIconHeight ); - // Thread creation method - void StartThreadL( ); - // "Getter" method to fetch file path - const TDesC& Filepath( )const; - -private: - RFbsSession iFbsSession; - RFs iFileSession; - CFbsBitmap* iMask; - CSvgEngineInterfaceImpl* iSvgModule; - RBuf iBitMapFilePath; - CFbsBitmap* iBitmap; - }; - -#endif // __UPNPSVGIMAGECONVERTER_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmappserverservice.h --- a/services/terminalmodeservice/inc/upnptmappserverservice.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/** -* 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: CUpnpTmAppServerService class declaration -* -*/ - -#ifndef __UPNPTMAPPSERVERSERVICE_H__ -#define __UPNPTMAPPSERVERSERVICE_H__ - - -// Include Files -#include -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CUPnPTmServerDevice; -class CUpnpTmServerImpl; - - -// CLASS DECLARATION - -/** -* TerminalMode Application Server Service class. It encapsulates all the major actions -* needed for accessing and controlling the remotable apps from the Control Point. -* -*/ - -class CUpnpTmAppServerService: public CUpnpServiceImplementation, - public MUpnpHttpServerTransactionCreator, - public MUpnpHttpServerObserver - { -public: // Constructors and destructors - - /** - * Two-phased constructor. - * @param aService Parent service - */ - static CUpnpTmAppServerService* NewL( CUpnpDevice& aUpnpDevice, const TDesC& aDescriptionPath , - CUpnpTmServerImpl& aTmServerImpl ); - - /** - * Destructor function called automatically from the destructor of a - * derived class - **/ - ~CUpnpTmAppServerService(); - -public: //from CUpnpServiceImplementation - /** - * This functions is a entry point for actions. See coments in base class - */ - void ActionReceivedLD( CUpnpAction* aAction ); - void AppStatusUpdateEventL( const TDesC8& aStatusUpdateBuffer ); - void AppListUpdateEventL( const TDesC8& aListUpdateBuffer ); - -public: //from MUpnpHttpServerTransactionCreator - void NewTransactionL( const TDesC8& aMethod, const TDesC8& aUri, - const TInetAddr& aSender, CUpnpHttpServerTransaction*& aResultTrans ); - -private: //From MUpnpHttpServerObserver - void HttpEventLD( CUpnpHttpMessage* aMessage ); - -private: - TUpnpErrorCode GetAppListActionL( CUpnpAction* aAction ); - TUpnpErrorCode LaunchAppActionL( CUpnpAction* aAction ); - TUpnpErrorCode TerminateAppActionL( CUpnpAction* aAction ); - TUpnpErrorCode GetAppStatusActionL( CUpnpAction* aAction ); - -private: // Constructors - - /** - * C++ default constructor. - */ - CUpnpTmAppServerService( CUpnpDevice& aUpnpDevice, CUpnpTmServerImpl& aTmServerImpl ); - - /** - * Second phase of the constructor. - * Initialises a DOM tree. - * By default Symbian 2nd phase constructor is private. - * @param service Parent service - */ - void ConstructL(const TDesC& aDescriptionPath ); - - void ConstructHttpL( ); - TInt ConvertDescriptorToInt( const TDesC8& aDes, TUint& aErr ); - -private: - CUpnpHttpServerSession* iHttpServerSession; - CUpnpDevice& iUpnpDevice; - CUpnpTmServerImpl& iTmServerImpl; - }; - -#endif // __UPNPTMAPPSERVERSERVICE_H__ - -// End Of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmclientprofileservice.h --- a/services/terminalmodeservice/inc/upnptmclientprofileservice.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/** -* 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: CUpnpTmClientProfileService class declaration -* -*/ - -#ifndef __UPNPTMCLIENTPROFILESERVICE_H__ -#define __UPNPTMCLIENTPROFILESERVICE_H__ - - -// Include Files -#include -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CUPnPTmServerDevice; -class CUpnpTmServerImpl; - -// CLASS DECLARATION - -/** - * TerminalMode Client Profile Service class. It encapsulates all the actions related to the client - * profile and their related state variables. - */ -class CUpnpTmClientProfileService: public CUpnpServiceImplementation - { -public: // Constructors and destructors - /** - * Two-phased constructor. - * @param aService Parent service - */ - static CUpnpTmClientProfileService* NewL( CUpnpDevice& aUpnpDevice, const TDesC& aDescriptionPath , - CUpnpTmServerImpl& aTmServerImpl ); - - /** - * Destructor function called automatically from the destructor of a - * derived class - **/ - ~CUpnpTmClientProfileService(); - -public: //from CUpnpServiceImplementation - /** - * This functions is a entry point for actions. See coments in base class - */ - void ActionReceivedLD( CUpnpAction* aAction ); - - void UnUsedProfileIdEventL(const TDesC8& aUnusedProfileIdBuffer); - -private: - // Actions supported by the client profile service - TUpnpErrorCode GetMaxNumProfilesActionL( CUpnpAction* aAction ); - TUpnpErrorCode SetClientProfileActionL( CUpnpAction* aAction ); - TUpnpErrorCode GetClientProfileActionL( CUpnpAction* aAction ); - -private: // Constructors - /** - * C++ default constructor. - */ - CUpnpTmClientProfileService( CUpnpDevice& aUpnpDevice, - CUpnpTmServerImpl& aTmServerImp ); - /** - * Second phase of the constructor. - * Initialises a DOM tree. - * By default Symbian 2nd phase constructor is private. - * @param service Parent service - */ - void ConstructL(const TDesC& aDescriptionPath ); - -private: - CUpnpHttpServerSession* iHttpServerSession; - CUpnpDevice& iUpnpDevice; - CUpnpTmServerImpl& iTmServerImpl; - }; - -#endif // __UPNPTMCLIENTPROFILESERVICE_H__ - -// End Of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmfilteredapplist.h --- a/services/terminalmodeservice/inc/upnptmfilteredapplist.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/** -* 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: CUpnpTmFilteredAppList class declaration -* -*/ - -#ifndef __UPNPTMFILTEREDAPPLIST_H__ -#define __UPNPTMFILTEREDAPPLIST_H__ - - -//System Includes -#include - -//User Includes -#include "upnpterminalmodeicon.h" -#include "upnpremotableappstore.h" -#include "upnpappfilterinfo.h" - -//Forward Declaration -class CUpnpTmServerImpl; - - -/** - * Constructs the filtered GetApplicationList action Response. - * Applies the AppListingFilter criteria while creating the soap - * response buffer. - * - */ -class CUpnpTmFilteredAppList : public CBase - { -public: - static CUpnpTmFilteredAppList* NewL( CUpnpTmServerImpl& aTmServerImpl ); - - ~CUpnpTmFilteredAppList(); - void ParseAppFilterStringL( const TDesC8& aAppFilter, TTerminalModeErrorCode& aErr ); - void ConstructFilteredGetAppListResponseL( TInt aAppIndex ); - const TDesC8& SignatureElement()const; - -private: - CUpnpTmFilteredAppList( CUpnpTmServerImpl& aTmServerImpl ); - void ConstructL( ); - - TBool TerminalModeInfoMatchingL( const CUpnpTmInfoElement& aTmInfoElement )const; - TBool TmInfoElementMatchingL( const CUpnpTmInfoElement& aTmInfoElement,TInt aIndex )const; - void IconMatchingL( TInt aAppIndex ); - void ConstructFilteredResponseL( TInt aAppIndex ); - TBool IconLookUp( CUpnpTerminalModeIcon& aIcon ); - const TDesC8& RemoveWhiteSpace( TPtrC8& aData ); - -private: - CUpnpAppFilterInfo* iFilterInfo; - CUpnpTmServerImpl& iTmServerImpl; - }; - -#endif // __UPNPTMFILTEREDAPPLIST_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmiconmapping.h --- a/services/terminalmodeservice/inc/upnptmiconmapping.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/** -* 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: CUpnpTmIconMapping class declaration. -* -*/ - -#ifndef __UPNPTMICONMAPPING_H__ -#define __UPNPTMICONMAPPING_H__ - -// Include Files -#include -#include -#include "upnptmclienticonpref.h" - -// Constants -const TInt KExpectedMaxIconParms = 20; - -/** - * Class maintains a mapping between application icon filepath and its URL. It also - * determines whether the conversion is needed for a particular requested - * application icon( http request ) and finalizes the dimensions of the icon which needs - * to be served - */ -class CUpnpTmIconMapping : public CBase - { -public: - static CUpnpTmIconMapping* NewL( ); - ~CUpnpTmIconMapping(); - -public: - void AddIconFileInfoL( const TDesC8& aUrl, const TDesC& aPath, TInt aWidth, TInt aHeight ); - TInt GetSvgIconPath( const TDesC8& aUrl,RBuf& aSvgFilePath ); - TBool IsConversionNeeded( TInt aIndex, const CUpnpTmClientIconPref& aClientIconPref, - TInt& aIconWidth, TInt& aIconHeight ); - -private: - CUpnpTmIconMapping(); - void ConstructL(); - -private: - CDesC8Array* iFileUrlArray; - CDesCArray* iFilePathArray; - RArray iWidthArray; - RArray iHeightArray; - }; - -#endif // __UPNPTMICONMAPPING_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmserverdescriptionprovider.h --- a/services/terminalmodeservice/inc/upnptmserverdescriptionprovider.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/** -* 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: CUpnpTmServerDescriptionProvider class declaration -* -*/ - -#ifndef __UPNPTMSERVERDESCRIPTIONPROVIDER_H__ -#define __UPNPTMSERVERDESCRIPTIONPROVIDER_H__ - -// Include Files -#include -#include -#include -#include -#include - -const TUint KForwardSlash = '/'; - -/** - * CUpnpTmServerDescriptionProvider - * Provides description of device and its services, and icons. - */ -class CUpnpTmServerDescriptionProvider : public CBase, - public MUpnpDeviceDescriptionProvider - { -public: - // Destructor. - ~CUpnpTmServerDescriptionProvider(); - - // Two-phased constructor. - static CUpnpTmServerDescriptionProvider* NewL(); - -private: // from MUpnpDeviceDescriptionProvider - - virtual TInt OnDeviceDescription( CUpnpDeviceDescriptionRequest& aRequest ); - - virtual TInt OnServiceDescription( CUpnpDeviceDescriptionRequest& aRequest ); - - virtual TInt OnIcon( CUpnpDeviceDescriptionRequest& aRequest ); - - virtual TInt GetFile( const TDesC8& aUri, RFile& aFile ); - -private: - // Constructor for performing 1st stage construction - CUpnpTmServerDescriptionProvider(); - - //Default constructor for performing 2nd stage construction - void ConstructL(); - - /** - * Main function to service requests. - * @param aRequest request to service - * @return error code - */ - TInt OnRequest( CUpnpDeviceDescriptionRequest& aRequest ); - - void OnRequestL( const TDesC8& aUrlPath, const TDesC8& aFileName ); - -private: - // File server session used to open file - RFs iFs; - TBuf iFilePath; - }; - -#endif // __UPNPTMSERVERDESCRIPTIONPROVIDER_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmserverdevice.h --- a/services/terminalmodeservice/inc/upnptmserverdevice.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/** -* 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 declaration -* -*/ - -#ifndef __UPNPTMSERVERDEVICE_H__ -#define __UPNPTMSERVERDEVICE_H__ - -// System Includes -#include -#include -#include - -// User Includes -#include "upnptmappserverservice.h" -#include "upnptmclientprofileservice.h" -#include "upnptmserverdevicexmlparser.h" -#include "upnptmserverdescriptionprovider.h" - - -// CLASS DECLARATION - -// UPnP Terminal Mode Server Device container. - -class CUpnpTmServerDevice : public CBase - { -public: - // Two-phased constructor. - static CUpnpTmServerDevice* NewL( CUpnpTmServerDeviceInfo& aDeviceInfo, - CUpnpTmServerImpl& aTmServerImpl ); - // Destructor. - ~CUpnpTmServerDevice(); - -public: - // Starts TM Server - Device, Service - void StartTmServerDeviceL(); - // Stops TM Server - Device, Service - void StopTmServerDeviceL(); - //Event handling methods invoked by CUpnpTmServerImpl object - void AppStatusUpdateL( const TDesC8& aStatusEventBuffer ); - void AppListUpdateL( const TDesC8& aListEventBuffer ); - void UnUsedProfileIdUpdateL( const TDesC8& aUnusedProfileIdBuffer ); - -private: - // Constructor - CUpnpTmServerDevice(); - // Perform the second phase construction of a CUpnpTmServerDevice object - void ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo,CUpnpTmServerImpl& aTmServerImpl ); - -private: - // iDevice TerminalMode Server Device - CUpnpDeviceImplementation* iDevice; - CUpnpTmAppServerService* iTmAppServerService; - CUpnpTmClientProfileService* iTmClientProfileService; - // Provides files for description part - CUpnpTmServerDescriptionProvider* iDescriptionProvider; - // Services device description - CUpnpDeviceDescriptionStore* iDescriptionStore; - CUpnpTmServerDeviceXmlParser* iXmlParser; - TBool iIsStarted; - }; - -#endif //__UPNPTMSERVERDEVICE_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmserverdevicexmlparser.h --- a/services/terminalmodeservice/inc/upnptmserverdevicexmlparser.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/** -* 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: CUpnpTmServerDeviceXmlParser class declaration -* -*/ - -#ifndef __UPNPTMSERVERDEVICEXMLPARSER_H__ -#define __UPNPTMSERVERDEVICEXMLPARSER_H__ - -// System Includes -#include -#include -#include -#include -#include -#include - -// User Include -#include "upnptmserverdeviceinfo.h" - -// Constants -const TUint KBufSize = 20480; -const TUint KMaxBufLength = 255; -const TUint KDirectorySeparator = '\\'; - -using namespace Xml; - -/** - * This class takes the root device content as xml formatted buffer which serves as placeholders - * for many element values as an input and then constructs the complete device description - * xml file and service xml files which are published over the network - */ -class CUpnpTmServerDeviceXmlParser: public CBase, - public MContentHandler - { -public: - static CUpnpTmServerDeviceXmlParser* NewL( CUpnpTmServerDeviceInfo& aDeviceInfo ); - ~CUpnpTmServerDeviceXmlParser(); - void StartL(); - inline const TDesC& DevicePath(); - inline const TDesC& AppServerSrvPath(); - inline const TDesC& ClientProfileSrvPath(); - inline const TDesC8& DescriptionUri(); - -private: - CUpnpTmServerDeviceXmlParser( CUpnpTmServerDeviceInfo& aDeviceInfo ); - void ConstructL( ); - void DeleteDirectory(); - -private: // From MContentHandler - void OnStartDocumentL(const RDocumentParameters& aDocParam, TInt aErrorCode); - void OnEndDocumentL(TInt aErrorCode); - void OnStartElementL(const RTagInfo& aElement, const RAttributeArray& aAttributes, TInt aErrorCode); - void OnEndElementL(const RTagInfo& aElement, TInt aErrorCode); - void OnContentL(const TDesC8& aBytes, TInt aErrorCode); - void OnStartPrefixMappingL(const RString& aPrefix, const RString& aUri, TInt aErrorCode); - void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode); - void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode); - void OnSkippedEntityL(const RString& aName, TInt aErrorCode); - void OnProcessingInstructionL(const TDesC8& aTarget, const TDesC8& aData, TInt aErrorCode); - inline void OnError(TInt aErrorCode); - inline TAny* GetExtendedInterface(const TInt32 aUid); - -private: - RBuf8 iAppServerSrvDescription; - RBuf8 iClientProfSrvDescription; - RBuf8 iReadBuf; - RBuf8 iDeviceDescription; - CParser* iParser; - RBuf iDescFilePath; - RBuf iAppServerSrvFilePath; - RBuf iClientProfSrvFilePath; - RBuf8 iDescriptionUri; - RFs iFs; - RBuf iDeviceDir; - RBuf iIconDirectory; - RMobilePhone iPhone; - RTelServer iEtelSrv; - RMobilePhone::TMobilePhoneIdentityV1 iPhoneId; - CUpnpTmServerDeviceInfo& iDeviceInfo; - CFileMan* iFileMan; - }; - -#include "upnptmserverdevicexmlparser.inl" - -#endif //__UPNPTMSERVERDEVICEXMLPARSER_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmserverdevicexmlparser.inl --- a/services/terminalmodeservice/inc/upnptmserverdevicexmlparser.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/** -* 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: CUpnpTmServerDeviceXmlParser INL file. -* -*/ - -#ifndef __UPNPTMSERVERDEVICEXMLPARSER_INL__ -#define __UPNPTMSERVERDEVICEXMLPARSER_INL__ - - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnError -// ----------------------------------------------------------------------------- -// -inline void CUpnpTmServerDeviceXmlParser::OnError(TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::GetExtendedInterface -// ----------------------------------------------------------------------------- -// -inline TAny* CUpnpTmServerDeviceXmlParser::GetExtendedInterface(const TInt32 /*aUid*/) - { - return NULL; - } - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::DevicePath -// @return Returns the device description filepath -// ----------------------------------------------------------------------------- -// -inline const TDesC& CUpnpTmServerDeviceXmlParser::DevicePath() - { - return iDescFilePath; - } - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::AppServerSrvPath -// @return Returns TmAppServerService filepath -// ----------------------------------------------------------------------------- -// -inline const TDesC& CUpnpTmServerDeviceXmlParser::AppServerSrvPath() - { - return iAppServerSrvFilePath; - } - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::ClientProfileSrvPath -// @return Returns TmClientProfileService filepath -// ----------------------------------------------------------------------------- -// -inline const TDesC& CUpnpTmServerDeviceXmlParser::ClientProfileSrvPath() - { - return iClientProfSrvFilePath; - } - -// ----------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::DescriptionUri -// @return Returns the device description URI -// ----------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTmServerDeviceXmlParser::DescriptionUri() - { - return iDescriptionUri; - } - -#endif // __UPNPREMOTEUIDEVICEXMLPARSER_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/inc/upnptmserverimpl.h --- a/services/terminalmodeservice/inc/upnptmserverimpl.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/** -* 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: CUpnpTmServerImpl class declaration -* -*/ - -#ifndef __UPNPTMSERVERIMPL_H__ -#define __UPNPTMSERVERIMPL_H__ - -// System Includes -#include -#include -#include - -// User Includes -#include "upnptmserver.h" -#include "upnptminfoelement.h" -#include "upnptmserverdevice.h" -#include "upnpremotableappstore.h" -#include "upnptmfilteredapplist.h" -#include "upnptmiconmapping.h" -#include "upnpsvgimageconverter.h" - -//Literals -_LIT8(KStartApp, "<app>"); -_LIT8(KEndApp, "</app>"); -_LIT8(KStartIconList, "<iconList>"); -_LIT8(KEndIconList, "</iconList>"); -_LIT8(KStartNameDesc, "<description>"); -_LIT8(KEndNameDesc, "</description>"); -_LIT8(KWildCard, "*"); -_LIT8(KAtToken, "@"); - -//Constants -const TUint KActionBufferLength = 1000; - -/** - * Implementation class ( body ) for CUpnpTmServer class - * - */ -class CUpnpTmServerImpl : public CBase - { -public: - static CUpnpTmServerImpl* NewL( CUpnpTmServerDeviceInfo& aDeviceInfo, - MUpnpTmServerObserver& aTmServerObserver ); - - virtual ~CUpnpTmServerImpl(); - - void RegisterAppL( CUpnpRemotableApp* aRemotableApp ); - void RegisterAppsL(const RPointerArray& aRemotableAppList); - TInt UnRegisterApp( TUint aAppId ); - TInt UnRegisterApps( const RArray& aAppIdArray ); - - void SetXmlSignatureL( const TDesC8& aSignature ); - const TDesC8& XmlSignature()const; - // Start and Stop methods - void StartDeviceL(); - void StopDeviceL(); - CUpnpRemotableApp& GetRemotableApp( TUint aAppId, TInt& aErr ); - void GenerateUrlComponents( CUpnpHttpServerSession& aHttpServerSession ); - const TDesC8& ConvertIntToDescriptor( TInt aIntVal ); - -public: - //Action handling methods - const TDesC8& GetApplicationListL( const TDesC8& aAppListFilter, - TUint aProfileId, TTerminalModeErrorCode& aErr ); - TTerminalModeErrorCode LaunchApp( TUint aAppId, TUint aProfileId, RBuf8& aUrl ); - TTerminalModeErrorCode TerminateApp( TUint aAppId, TUint aProfileId ); - void GetAppStatusL( const TDesC8& aAppIdBuffer,RBuf8& aStatusType, - TTerminalModeErrorCode& aErr ); - TTerminalModeErrorCode GetMaxNumProfiles( TUint& aNumMaxProfiles ); - TTerminalModeErrorCode SetClientProfile( TUint aProfileId, const TDesC8& aInputClientProfile, - RBuf8& aResultProfile ); - TTerminalModeErrorCode GetClientProfile( TUint aProfileId, RBuf8& aClientProfile ); - - //Event Notification methods - void UpdateAppStatusL( const RArray& aUpdatedAppIdList ); - void UpdateAppListL( const RArray& aUpdatedAppIdList ); - void UpdateUnusedProfileIdsL( const RArray& aUnusedProfileIdList ); - - // Application icon fetching method - void GetIconInfoL( const TDesC8& aUrl, CUpnpHttpServerTransaction*& aResultTrans ); - -private: - CUpnpTmServerImpl( MUpnpTmServerObserver& aTmServerObserver ); - void ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo ); - void RestoreIap(); - - void AppendDataL( const TDesC8& aData ); - TTerminalModeErrorCode AuthorizeApp( TUint aAppId ); - void ConstructActionResponseBufferL( TInt aAppIndex ); - void ConstructLeadingSoapBufferL( TInt aAppIndex ); - void SetRemotableAppIconInfoL( const CUpnpTerminalModeIcon& aTmIcon ); - void SetAllowedProfileIdListL( TInt aAppIndex ); - void SetTerminalModeInfoElementL( const CUpnpTmInfoElement& aTmInfoElement ); - void SetResourceStatusL( TInt aAppIndex ); - void CreateGetAppStatusResponseL( TUint aAppId, TTerminalModeErrorCode& aErr ); - void CreateEventMessageL( const RArray& aIdList ); - friend class CUpnpTmFilteredAppList; - -private: - CUpnpTmServerDevice* iTmServerDevice; - MUpnpTmServerObserver& iTmServerObserver; - RBuf8 iResponseBuf; - TBuf8 iAddrBuf; - TBuf8 iPortBuf; - RBuf8 iXmSignature; - CUpnpRemotableAppStore* iAppStore; - RFs iIconFileSession; - CUpnpTmFilteredAppList* iFilteredAppList; - TBuf8 iBufVal; - CUpnpSettings* iIapSetting; - TInt iIapId; // Original IAP ID used by DLNA - TUint iProfileId; - // Mapping between application icon filepath and its URL - CUpnpTmIconMapping* iIconMapping; - }; - -#endif // __UPNPTMSERVERIMPL_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/rom/terminalmodeservice.iby --- a/services/terminalmodeservice/rom/terminalmodeservice.iby Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/** -* 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: IBY file for Terminal Mode Service subsystem -* -*/ - - -#ifndef __TERMINALMODESERVICE_IBY__ -#define __TERMINALMODESERVICE_IBY__ - - -file=ABI_DIR\BUILD_DIR\terminalmodeservice.dll \sys\bin\terminalmodeservice.dll - - - -#endif // __TERMINALMODESERVICE_IBY__ - -// End of File \ No newline at end of file diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpappfilterinfo.cpp --- a/services/terminalmodeservice/src/upnpappfilterinfo.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/** -* 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: CUpnpAppFilterInfo class implementation -* -*/ - - -// INCLUDE FILES -#include "upnpappfilterinfo.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpappfilterinfoTraces.h" -#endif - -//Literals -_LIT8(KAppName, "name"); -_LIT8(KAppDesc, "description"); -_LIT8(KMimeType, "mimetype"); -_LIT8(KWidth, "width"); -_LIT8(KHeight, "height"); -_LIT8(KDepth, "depth"); -_LIT8(KAllowedProfileIds, "allowedProfileIDs"); -_LIT8(KRscStatus, "resourceStatus"); -_LIT8(KSignature, "signature"); - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpAppFilterInfo::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpAppFilterInfo* CUpnpAppFilterInfo::NewL( ) - { - OstTraceFunctionEntry0( CUPNPAPPFILTERINFO_NEWL_ENTRY ); - return ( new (ELeave) CUpnpAppFilterInfo() ); - } - -// --------------------------------------------------------------------------------- -// CUpnpAppFilterInfo::CUpnpAppFilterInfo -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpAppFilterInfo::CUpnpAppFilterInfo( ) - { - iAppName = NULL; - iAppDesc = NULL; - iMimeType = NULL; - iWidth = NULL; - iHeight = NULL; - iDepth = NULL; - iAllowedIdList = NULL; - iProtocolId = NULL; - iFormat = NULL; - iDirection = NULL; - iAppCategory = NULL; - iAppTrustLevel = NULL; - iContCategory = NULL; - iContentRules = NULL; - iContTrustLevel = NULL; - iAudioType = NULL; - iRscStatus = NULL; - iSignature = NULL; - } - -// --------------------------------------------------------------------------------- -// CUpnpAppFilterInfo::~CUpnpAppFilterInfo -// C++ default destructor -// --------------------------------------------------------------------------------- -// -CUpnpAppFilterInfo::~CUpnpAppFilterInfo() - { - OstTraceFunctionEntry0( CUPNPAPPFILTERINFO_CUPNPAPPFILTERINFO_ENTRY ); - delete iAppName; - delete iAppDesc; - delete iMimeType; - delete iWidth; - delete iHeight; - delete iDepth; - delete iAllowedIdList; - delete iProtocolId; - delete iFormat; - delete iDirection; - delete iAppCategory; - delete iAppTrustLevel; - delete iContCategory; - delete iContentRules; - delete iContTrustLevel; - delete iAudioType; - delete iRscStatus; - delete iSignature; - OstTraceFunctionExit0( CUPNPAPPFILTERINFO_CUPNPAPPFILTERINFO_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpAppFilterInfo::SetFilterInfoL -// It compares the key with the individual elements and if it matches with none then it -// returns invalid argument as an error. -// @param aKey Key name -// @param aValue Value of the key -// @param aDisplayInfoFlag True if info type is displayInfo, false otherwise. -// Default is false. It is used to distinguish "trustLevel" element -// of appInfo and displayInfo. -// @param aErr Terminal Mode error code -// --------------------------------------------------------------------------------- -// -void CUpnpAppFilterInfo::SetFilterInfoL( const TDesC8& aKey, const TDesC8& aValue, - TTerminalModeErrorCode& aErr, TBool aDisplayInfoFlag ) - { - OstTraceFunctionEntry0( CUPNPAPPFILTERINFO_SETFILTERINFOL_ENTRY ); - aErr = ETerminalModeInvalidArgument; - if ( aKey.Compare(KAppName) == KErrNone ) - { - delete iAppName; - iAppName = NULL; - iAppName = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KAppDesc) == KErrNone ) - { - delete iAppDesc; - iAppDesc = NULL; - iAppDesc = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KMimeType) == KErrNone ) - { - delete iMimeType; - iMimeType = NULL; - iMimeType = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KWidth) == KErrNone ) - { - delete iWidth; - iWidth = NULL; - iWidth = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KHeight) == KErrNone ) - { - delete iHeight; - iHeight = NULL; - iHeight = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KDepth) == KErrNone ) - { - delete iDepth; - iDepth = NULL; - iDepth = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KAllowedProfileIds) == KErrNone ) - { - delete iAllowedIdList; - iAllowedIdList = NULL; - iAllowedIdList = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KProtocolId) == KErrNone ) - { - delete iProtocolId; - iProtocolId = NULL; - iProtocolId = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KFormat) == KErrNone ) - { - delete iFormat; - iFormat = NULL; - iFormat = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KRemotingDirection) == KErrNone ) - { - delete iDirection; - iDirection = NULL; - iDirection = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KAppCategory) == KErrNone ) - { - delete iAppCategory; - iAppCategory = NULL; - iAppCategory = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if (( aKey.Compare(KTrustLevel) == KErrNone ) && ( !aDisplayInfoFlag )) - { - delete iAppTrustLevel; - iAppTrustLevel = NULL; - iAppTrustLevel = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KContCategory) == KErrNone ) - { - delete iContCategory; - iContCategory = NULL; - iContCategory = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KContentRules) == KErrNone ) - { - delete iContentRules; - iContentRules = NULL; - iContentRules = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if (( aKey.Compare(KTrustLevel) == KErrNone ) && ( aDisplayInfoFlag )) - { - delete iContTrustLevel; - iContTrustLevel = NULL; - iContTrustLevel = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KAudioType) == KErrNone ) - { - delete iAudioType; - iAudioType = NULL; - iAudioType = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KRscStatus) == KErrNone ) - { - delete iRscStatus; - iRscStatus = NULL; - iRscStatus = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - else if ( aKey.Compare(KSignature) == KErrNone ) - { - delete iSignature; - iSignature = NULL; - iSignature = aValue.AllocL(); - aErr = ETerminalModeSuccess; - } - OstTraceFunctionExit0( CUPNPAPPFILTERINFO_SETFILTERINFOL_EXIT ); - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpiconconversionactive.cpp --- a/services/terminalmodeservice/src/upnpiconconversionactive.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/** -* 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: CUpnpIconConversionActive class implementation. -* -*/ - -#include "upnpiconconversionactive.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpiconconversionactiveTraces.h" -#endif - -// Literal -_LIT8(KBmpMimeType, "image/bmp"); - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpIconConversionActive* CUpnpIconConversionActive::NewL( RFile& aBitmapFile ) - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_NEWL_ENTRY ); - CUpnpIconConversionActive* self = new (ELeave) CUpnpIconConversionActive( ); - CleanupStack::PushL(self); - self->ConstructL( aBitmapFile ); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::CUpnpIconConversionActive -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------------- -// -CUpnpIconConversionActive::CUpnpIconConversionActive( ) - :CActive(EPriorityStandard) - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_ENTRY ); - CActiveScheduler::Add(this); - OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpIconConversionActive::ConstructL( RFile& aBitmapFile ) - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CONSTRUCTL_ENTRY ); - // Provides access to the ICL (image conversion library) encoders. - iEncoder = CImageEncoder::FileNewL( aBitmapFile,KBmpMimeType()); - OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::~CUpnpIconConversionActive -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpIconConversionActive::~CUpnpIconConversionActive() - { - OstTraceFunctionEntry0( DUP1_CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_ENTRY ); - Cancel(); - delete iEncoder; - OstTraceFunctionExit0( DUP1_CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::Convert -// Place where actual image conversion is invoked. -// Its an asynchronous conversion. -// @param aBitmap Reference to Bitmap object -// --------------------------------------------------------------------------------- -// -void CUpnpIconConversionActive::Convert( CFbsBitmap& aBitmap ) - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CONVERT_ENTRY ); - TRequestStatus* status = &iStatus; - // Converts image data held in CFbsBitmap object - iEncoder->Convert( status,aBitmap); //Actual conversion API - SetActive(); - OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CONVERT_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::RunL -// Event handler. Stops the active scheduler. -// --------------------------------------------------------------------------------- -// -void CUpnpIconConversionActive::RunL() - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_RUNL_ENTRY ); - CActiveScheduler::Stop(); - OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_RUNL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::DoCancel -// --------------------------------------------------------------------------------- -// -void CUpnpIconConversionActive::DoCancel() - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpIconConversionActive::FetchError -// Returns the completion status. -// @return Returns completion code. -// --------------------------------------------------------------------------------- -// -TInt CUpnpIconConversionActive::FetchError() - { - OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_FETCHERROR_ENTRY ); - return ( iStatus.Int() ); - } diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpiconfileservetransaction.cpp --- a/services/terminalmodeservice/src/upnpiconfileservetransaction.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/** -* 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: CUpnpIconFileServeTransaction implementation. -* -*/ - - -#include "upnpiconfileservetransaction.h" -#include -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpiconfileservetransactionTraces.h" -#endif - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpIconFileServeTransaction* CUpnpIconFileServeTransaction::NewL( const TDesC& aOutFilePath, - RFs& aIconFileSession ) - - { - OstTraceFunctionEntry0( CUPNPICONFILESERVETRANSACTION_NEWL_ENTRY ); - CUpnpIconFileServeTransaction* self = - new (ELeave) CUpnpIconFileServeTransaction( aIconFileSession ); - CleanupStack::PushL( self ); - self->ConstructL( aOutFilePath ); - CleanupStack::Pop( self ); - OstTraceFunctionExit0( CUPNPICONFILESERVETRANSACTION_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpIconFileServeTransaction::ConstructL( const TDesC& aOutFilePath ) - { - OstTraceFunctionEntry0( CUPNPICONFILESERVETRANSACTION_CONSTRUCTL_ENTRY ); - iOutFilePath.CreateL( aOutFilePath ); - OstTraceFunctionExit0( CUPNPICONFILESERVETRANSACTION_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::CUpnpIconFileServeTransaction -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpIconFileServeTransaction::CUpnpIconFileServeTransaction( RFs& aIconFileSession ) - :iIconFileSession( aIconFileSession ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::~CUpnpIconFileServeTransaction -// Default Destructor -// --------------------------------------------------------------------------------- -// -CUpnpIconFileServeTransaction::~CUpnpIconFileServeTransaction() - { - OstTraceFunctionEntry0( CUPNPICONFILESERVETRANSACTION_CUPNPICONFILESERVETRANSACTION_ENTRY ); - iOutFilePath.Close(); - OstTraceFunctionExit0( CUPNPICONFILESERVETRANSACTION_CUPNPICONFILESERVETRANSACTION_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::OnCallbackL -// Handler for transaction event. -// Method is invoked when a particular event arrives. -// In case of leave,it traps the error and returns the http error code. -// @param aEvent Server event -// --------------------------------------------------------------------------------- -// -void CUpnpIconFileServeTransaction::OnCallbackL( TUpnpHttpServerEvent aEvent ) - { - OstTraceFunctionEntry0( CUPNPICONFILESERVETRANSACTION_ONCALLBACKL_ENTRY ); - TRAPD( err, DoCallbackL( aEvent ) ); - if ( err != KErrNone ) - { - SetHttpCode( err ); - } - OstTraceFunctionExit0( CUPNPICONFILESERVETRANSACTION_ONCALLBACKL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpIconFileServeTransaction::DoCallbackL -// Method is used to set the data source file and respective http error codes. -// @param aEvent Server event -// --------------------------------------------------------------------------------- -// -void CUpnpIconFileServeTransaction::DoCallbackL( TUpnpHttpServerEvent aEvent ) - { - OstTraceFunctionEntry0( CUPNPICONFILESERVETRANSACTION_DOCALLBACKL_ENTRY ); - switch ( aEvent ) - { - case EOnRequestStart: - { - RFile file; - if ( file.Open( iIconFileSession,iOutFilePath,EFileShareReadersOnly | EFileRead ) == KErrNone ) - { - CleanupClosePushL(file); - // Sets the file which have to be served in response to http request - SetDataSourceL( file ); - CleanupStack::Pop(&file); - } - else - { - // if the error occurs set the error code in http response - SetHttpCode( -EHttpNotFound ); - } - }break; - case EOnComplete: - break; - case EOnResponseStart: - { - SetHttpCode( KErrNone ); - } break; - default: - break; - } - OstTraceFunctionExit0( CUPNPICONFILESERVETRANSACTION_DOCALLBACKL_EXIT ); - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpremotableapp.cpp --- a/services/terminalmodeservice/src/upnpremotableapp.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/** -* 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: CUpnpRemotableApp class implementation. -* -*/ - -#include "upnpremotableapp.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpremotableappTraces.h" -#endif - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::NewL -// Two-phased constructor. -// @param aAppId App ID of the remotable app -// @param aAppName Name of the remotable app -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpRemotableApp* CUpnpRemotableApp::NewL( TUint aAppId ,const TDesC8& aAppName ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_NEWL_ENTRY ); - CUpnpRemotableApp* self = new (ELeave) CUpnpRemotableApp(aAppId); - CleanupStack::PushL(self); - self->ConstructL( aAppName ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::CUpnpRemotableApp -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------------- -// -CUpnpRemotableApp::CUpnpRemotableApp( TUint aAppId ):iAppId(aAppId) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpRemotableApp::ConstructL( const TDesC8& aAppname ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_CONSTRUCTL_ENTRY ); - iAppName.CreateL(aAppname); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::~CUpnpRemotableApp -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpRemotableApp::~CUpnpRemotableApp() - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_CUPNPREMOTABLEAPP_ENTRY ); - iTmInfoElementList.ResetAndDestroy(); - iTmInfoElementList.Close(); - iProfileIdList.Close(); - iIconList.ResetAndDestroy(); - iIconList.Close(); - iAppName.Close(); - iAppDescription.Close(); - iResourceStatus.Close(); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_CUPNPREMOTABLEAPP_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::AddIconL -// Method is used to add an icon element to the application. -// @param aIcon Pointer to TerminalMode icon object -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpRemotableApp::AddIconL(CUpnpTerminalModeIcon* aIcon) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_ADDICONL_ENTRY ); - iIconList.AppendL(aIcon); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_ADDICONL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::SetAppDescriptionL -// Method is used to add the description of the application -// @param aDescription Description of the aapplication -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpRemotableApp::SetAppDescriptionL( const TDesC8& aDescription ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_SETAPPDESCRIPTIONL_ENTRY ); - iAppDescription.Close(); - iAppDescription.CreateL(aDescription); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_SETAPPDESCRIPTIONL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::SetAllowedProfileIdListL -// Method is used to set the list of allowed profile IDs for the application. -// @param aProfileIdList Reference to the list of allowed profile IDs. -// A copy of the list is maintained. -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpRemotableApp::SetAllowedProfileIdListL( const RArray& aProfileIdList ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_SETALLOWEDPROFILEIDLISTL_ENTRY ); - iProfileIdList.Close(); - /** - * Create a copy of the profile ID list. - * Only distinct and unique profile IDs are copied into the array. - */ - for ( TInt i(0); i < aProfileIdList.Count(); i++ ) - { - OstTrace1( TRACE_NORMAL, CUPNPREMOTABLEAPP_SETALLOWEDPROFILEIDLISTL, "CUpnpRemotableApp::SetAllowedProfileIdListL;aProfileIdList[i]=%d", aProfileIdList[i] ); - if ( iProfileIdList.Find(aProfileIdList[i]) == KErrNotFound ) - { - iProfileIdList.AppendL(aProfileIdList[i]); - } - } - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_SETALLOWEDPROFILEIDLISTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::CreateTmInfoElementL -// Method is used to create a terminal mode info for the application and -// it gets appended to the terminal mode list. -// @param aTerminalModeInfoType Terminal Mode Info Type -// @return Returns the reference to the CUpnpTerminalModeInfo object -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpTmInfoElement& CUpnpRemotableApp::CreateTmInfoElementL( - CUpnpTmInfoElement::TTerminalModeInfoType aTerminalModeInfoType ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_CREATETERMINALMODEINFOL_ENTRY ); - CUpnpTmInfoElement* tmInfoElement = CUpnpTmInfoElement::NewL(aTerminalModeInfoType); - CleanupStack::PushL(tmInfoElement); - iTmInfoElementList.AppendL(tmInfoElement); - CleanupStack::Pop(tmInfoElement); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_CREATETERMINALMODEINFOL_EXIT ); - return *tmInfoElement; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::SetResourceStatusL -// Method is used to define the current status of the resource. -// @param aResourceStatus Status of the resource -// “free” – Resource is free. Can be used by the Terminal Mode client. (default) -// “busy” – Resource already used. Resource assignment can be overridden by -// a client’s invocation LaunchApplication action. -// “NA” – Resource already used. Resource assignment cannot be overridden by a -// LaunchApplication action invoked by a client. -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpRemotableApp::SetResourceStatusL( const TDesC8& aResourceStatus ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPP_SETRESOURCESTATUSL_ENTRY ); - iResourceStatus.Close(); - iResourceStatus.CreateL(aResourceStatus); - OstTraceFunctionExit0( CUPNPREMOTABLEAPP_SETRESOURCESTATUSL_EXIT ); - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpremotableappstore.cpp --- a/services/terminalmodeservice/src/upnpremotableappstore.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/** -* 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: -* -*/ - - -// INCLUDE FILES -#include "upnpremotableappstore.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpremotableappstoreTraces.h" -#endif - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpRemotableAppStore* CUpnpRemotableAppStore::NewL() - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_NEWL_ENTRY ); - return ( new (ELeave) CUpnpRemotableAppStore()); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::CUpnpRemotableAppStore -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpRemotableAppStore::CUpnpRemotableAppStore( ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::~CUpnpRemotableAppStore -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpRemotableAppStore::~CUpnpRemotableAppStore() - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_CUPNPREMOTABLEAPPSTORE_ENTRY ); - iRemotableAppArray.ResetAndDestroy(); - iRemotableAppArray.Close(); - iAppIdArray.Close(); - OstTraceFunctionExit0( CUPNPREMOTABLEAPPSTORE_CUPNPREMOTABLEAPPSTORE_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::AppendRemotableAppL -// Method is used to create a list of all the registered apps -// @param aApp Pointer to CUpnpRemotableApp object -// --------------------------------------------------------------------------------- -// -void CUpnpRemotableAppStore::AddRemotableAppL( CUpnpRemotableApp* aApp ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_ADDREMOTABLEAPPL_ENTRY ); - TInt appId = aApp->AppId(); - if ( iAppIdArray.Find( appId ) == KErrNotFound ) - { - // Register all distinct apps - OstTrace1( TRACE_FLOW, CUPNPREMOTABLEAPPSTORE_ADDREMOTABLEAPPL, "CUpnpRemotableAppStore::AddRemotableAppL;appId=%d", appId ); - iRemotableAppArray.AppendL(aApp); - iAppIdArray.AppendL( appId ); - } - else - { - // Delete the duplicate remotable app object - delete aApp; - aApp = NULL; - } - OstTraceFunctionExit0( CUPNPREMOTABLEAPPSTORE_ADDREMOTABLEAPPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::RemoveRemotableApp -// Method is used to remove the app frpm the list of already registered apps -// @param aAppId App to be removed -// --------------------------------------------------------------------------------- -// -TInt CUpnpRemotableAppStore::RemoveRemotableApp( TUint aAppId ) - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_REMOVEREMOTABLEAPP_ENTRY ); - TInt ret(KErrNotFound); - TInt appIndex = iAppIdArray.Find( aAppId ); - if ( appIndex != KErrNotFound ) - { - // If appID is matched then delete the Remotable App object and remove - // the object pointer from the array - iAppIdArray.Remove(appIndex); - delete iRemotableAppArray[appIndex]; - iRemotableAppArray[appIndex] = NULL; - iRemotableAppArray.Remove(appIndex); - ret = KErrNone; - } - OstTrace1( TRACE_NORMAL, CUPNPREMOTABLEAPPSTORE_REMOVEREMOTABLEAPP, "CUpnpRemotableAppStore::RemoveRemotableApp;ret=%d", ret ); - OstTraceFunctionExit0( CUPNPREMOTABLEAPPSTORE_REMOVEREMOTABLEAPP_EXIT ); - return ret; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::FetchRemotableApp -// Method is used to fetch the list of registered apps -// @param aAppId App ID of the application whose access is needed -// @return Returns reference to CUpnpRemotableApp object -// --------------------------------------------------------------------------------- -// -CUpnpRemotableApp& CUpnpRemotableAppStore::FetchRemotableApp( TInt aAppIndex )const - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_FETCHREMOTABLEAPP_ENTRY ); - ASSERT( aAppIndex >=0 ); - OstTraceFunctionExit0( CUPNPREMOTABLEAPPSTORE_FETCHREMOTABLEAPP_EXIT ); - return *iRemotableAppArray[aAppIndex]; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableAppStore::AppIdArray -// Method is used to fetch the list of appIDs of registered apps -// @return Returns reference to an array of TInt objects -// --------------------------------------------------------------------------------- -// -const RArray& CUpnpRemotableAppStore::AppIdArray()const - { - OstTraceFunctionEntry0( CUPNPREMOTABLEAPPSTORE_APPIDARRAY_ENTRY ); - OstTraceFunctionExit0( CUPNPREMOTABLEAPPSTORE_APPIDARRAY_EXIT ); - return iAppIdArray; - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpsvgimageconverter.cpp --- a/services/terminalmodeservice/src/upnpsvgimageconverter.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -/** -* 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: CUpnpSvgImageConverter class implementation. -* -*/ - -#include "upnpsvgimageconverter.h" -#include "upnptmserverimpl.h" -#include -#include "upnpiconconversionactive.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpsvgimageconverterTraces.h" -#endif - -// Literals -_LIT(KLatin, "LatinPlain12"); -_LIT(KConvertedIconPath, "public\\TmServerDevice1\\"); -_LIT(KCross, "x"); -_LIT(KDotBmp, ".bmp"); -_LIT(KThreadName, "ImageConverterThread"); -_LIT(KSemaphoreName, "ImageConverterSemaphore"); - -// Constant -const TUint KDot = '.'; - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::NewL -// Two-phased constructor. -// @param aIconWidth Desired width of the serving icon. -// @param aIconHeight Desired height of the serving icon. -// --------------------------------------------------------------------------------- -// -CUpnpSvgImageConverter* CUpnpSvgImageConverter::NewL( TInt aIconWidth, TInt aIconHeight ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_NEWL_ENTRY ); - OstTraceExt2( TRACE_NORMAL, CUPNPSVGIMAGECONVERTER_NEWL, "CUpnpSvgImageConverter::NewL;aIconWidth=%d;aIconHeight=%d", aIconWidth, aIconHeight ); - CUpnpSvgImageConverter* self = new (ELeave) CUpnpSvgImageConverter( ); - CleanupStack::PushL(self); - self->ConstructL( aIconWidth,aIconHeight ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::CUpnpSvgImageConverter -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------------- -// -CUpnpSvgImageConverter::CUpnpSvgImageConverter( ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpSvgImageConverter::ConstructL( TInt aIconWidth, TInt aIconHeight ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_CONSTRUCTL_ENTRY ); - //Geometric rectangle. - TRect lMainRect( 0,0,aIconWidth,aIconHeight ); - /** - * Specifies the font specification to use for text drawing. - * Here "LatinPlain12" of height "10" is used. - */ - TFontSpec lFontSpec( KLatin,UpnpString::KMaxTUintLength ); - // A bitmap managed by the font and bitmap server. - User::LeaveIfError(iFbsSession.Connect()); - iBitmap = new ( ELeave ) CFbsBitmap(); - iMask = new ( ELeave ) CFbsBitmap(); - //Creates bitmap file of the desired dimensions with desired display mode(64,000 colour) - User::LeaveIfError( iBitmap->Create( TSize( lMainRect.Width(), - lMainRect.Height() ),EColor64K ) ); - User::LeaveIfError( iMask->Create( TSize( lMainRect.Width(), - lMainRect.Height() ),EGray256 ) ); // 256 grayscales display mode as alpha values - /** - * Create a new Svg Engine interface. - * @param iBitmap bitmap to draw resulting svg image. - * @param aReqObserver(NULL) interface for callbacks to retrieve info - * only client can provide, such as opening files. - * @param lFontSpecFont spec to use for text drawing. - */ - iSvgModule = CSvgEngineInterfaceImpl::NewL( iBitmap,NULL,lFontSpec ); - User::LeaveIfError( iFileSession.Connect() ); - TBuf privatePath; - User::LeaveIfError( iFileSession.PrivatePath(privatePath) ); - - privatePath.Append(KConvertedIconPath()); - privatePath.AppendNum( aIconWidth ); - privatePath.Append( KCross); - privatePath.AppendNum( aIconHeight ); - privatePath.Append( UpnpString::KDoubleBackSlash16() ); - TInt err = iFileSession.MkDir(privatePath); - if( ( err != KErrNone ) && ( err != KErrAlreadyExists ) ) - { - // Leaves if fails to create a directory - User::Leave(err); - } - iBitMapFilePath.CreateL( UpnpString::KMaxFilenameLength ); - iBitMapFilePath.Append( privatePath ); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::~CUpnpSvgImageConverter -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpSvgImageConverter::~CUpnpSvgImageConverter() - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_CUPNPSVGIMAGECONVERTER_ENTRY ); - iBitMapFilePath.Close(); - delete iMask; - delete iBitmap; - delete iSvgModule; - iFbsSession.Disconnect(); - iFileSession.Close(); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_CUPNPSVGIMAGECONVERTER_EXIT ); - } - -// ----------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::ConvertToBitmapL -// Method invokes svg to bitmap conversion. -// It takes svg file as an input and returns converted icon file( bmp ). -// Also prepares DOM for given SVG file. -// @param aSvgFile Input svg filepath -// @param aBitmapFile[out] Bitmap filepath ( converted file ). -// ----------------------------------------------------------------------------------- -void CUpnpSvgImageConverter::ConvertToBitmapL( const TDesC& aSvgFile, RBuf& aBitmapFile ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_CONVERTTOBITMAPL_ENTRY ); - /** - * Extracts the filename( without filename extension ) from the input svg filepath and - * uses the same filename to create bitmap file ( eg: abc.bmp ) - */ - TPtrC iconFileNameWithExtension = aSvgFile.Mid((aSvgFile.LocateReverse(KDirectorySeparator))+1); - iBitMapFilePath.Append( iconFileNameWithExtension.Left(iconFileNameWithExtension.LocateReverse(KDot)) ); - iBitMapFilePath.Append( KDotBmp ); - RFile iconFile; - TInt err = iconFile.Create(iFileSession,iBitMapFilePath,EFileRead|EFileWrite|EFileShareAny); - OstTrace1( TRACE_NORMAL, CUPNPSVGIMAGECONVERTER_CONVERTTOBITMAPL, "CUpnpSvgImageConverter::ConvertToBitmapL;err=%d", err ); - iconFile.Close(); - aBitmapFile.Close(); - if ( err == KErrAlreadyExists ) - { - //If the converted file pre-exists, just return the existing filepath. - aBitmapFile.CreateL(iBitMapFilePath); - } - else if ( err == KErrNone ) - { - TInt domHandle; - /** - * Parses and Prepares DOM for given SVG file. - * @param aSvgFile the name of the file to be parsed - * @param domHandle Handle to the created DOM. - * @return lsvgerr Error object specifying the error occured during operation - */ - MSvgError* lsvgerr = iSvgModule->PrepareDom( aSvgFile,domHandle ,NULL ); - if ( (! lsvgerr ) || ( lsvgerr && lsvgerr->HasError() &&!lsvgerr->IsWarning() ) ) - { - User::Leave( KErrCancel ); - } - /** - *Initialization of the engine - *@param domHandle Handle to DOM Tree. - *@param iBitmap Buffer for drawing the DOM Tree. - *@param iMask Buffer for mask (alpha values) of framebuffer result - *@return lsvgerr Error object specifying the error occured. - */ - lsvgerr = iSvgModule->UseDom( domHandle ,iBitmap,iMask ); - if ( (! lsvgerr ) || ( lsvgerr && lsvgerr->HasError() &&!lsvgerr->IsWarning() ) ) - { - User::Leave( KErrCancel ); - } - /** - * Request the SVG Engine to begin an animation. - */ - iSvgModule->Start( lsvgerr ); - if ( (! lsvgerr ) || ( lsvgerr && lsvgerr->HasError() &&!lsvgerr->IsWarning() ) ) - { - User::Leave( KErrCancel ); - } - /** - * Deletes the DOM tree associated with the Handle. - */ - lsvgerr = iSvgModule->DeleteDom( domHandle ) ; - if ( (! lsvgerr ) || ( lsvgerr && lsvgerr->HasError() &&!lsvgerr->IsWarning() ) ) - { - User::Leave( KErrCancel ); - } - /** - * Creates and starts a new thread to handle asynchronous icon conversion. - * A new or separate thread is needed for this purpose since the conversion happens - * in the same thread as of that of the one who invokes. - */ - StartThreadL(); - // Sets the converted filepath - aBitmapFile.CreateL(iBitMapFilePath); - } - else - { - User::Leave(err); - } - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_CONVERTTOBITMAPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::StartThreadL -// Creates a new thread where actual conversion occurs. -// Also creates a sempahore and waits on it. -// --------------------------------------------------------------------------------- -// -void CUpnpSvgImageConverter::StartThreadL( ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_STARTTHREADL_ENTRY ); - // Creates and opens a semaphore - RSemaphore semaphore; - CleanupClosePushL(semaphore); - TInt error = semaphore.CreateGlobal( KSemaphoreName, KErrNone ); - if ( error == KErrAlreadyExists ) - { - User::LeaveIfError(semaphore.OpenGlobal( KSemaphoreName )); - } - else - { - User::LeaveIfError(error); - } - // Creates a new thread which will be in suspended state after creation - RThread thread; - CleanupClosePushL(thread); - User::LeaveIfError( thread.Create( KThreadName, - ImageConverter, - KDefaultStackSize, - NULL, - this, - EOwnerProcess)); - thread.SetPriority(EPriorityRealTime); - //Resumes the newly created thread - thread.Resume(); - semaphore.Wait(); - CleanupStack::PopAndDestroy(2,&semaphore); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_STARTTHREADL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::Filepath -// Method to return the path of the icon file which needs to be converted. -// @return Returns reference to Bitmap file path. -// --------------------------------------------------------------------------------- -// -const TDesC& CUpnpSvgImageConverter::Filepath( )const - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_FILEPATH_ENTRY ); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_FILEPATH_EXIT ); - return iBitMapFilePath; - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::BitmapObject -// Method to return the bitmap object. -// @return Returns reference to Bitmap object. -// --------------------------------------------------------------------------------- -// -CFbsBitmap& CUpnpSvgImageConverter::BitmapObject()const - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_BITMAPOBJECT_ENTRY ); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_BITMAPOBJECT_EXIT ); - return *iBitmap; - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::ImageConverter -// Static method serving as thread's main function -// @param aParam Pointer to any type object. -// @return Returns error code -// --------------------------------------------------------------------------------- -// -TInt CUpnpSvgImageConverter::ImageConverter( TAny* aParam ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_IMAGECONVERTER_ENTRY ); - TInt err( KErrNone ); - CUpnpSvgImageConverter* svgConverter = static_cast ( aParam ); - // Create cleanupstack - CTrapCleanup* cleanupStack = CTrapCleanup::New(); - if ( !cleanupStack ) - { - err = KErrNoMemory; - } - else - { - TRAP( err, ImageConverterL(*svgConverter) ); - } - // Create a matching semaphore for signalling the waiting semaphore - RSemaphore semaphoreStop; - semaphoreStop.OpenGlobal(KSemaphoreName); - semaphoreStop.Signal(); - semaphoreStop.Close(); - - delete cleanupStack; - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_IMAGECONVERTER_EXIT ); - return err; - } - -// --------------------------------------------------------------------------------- -// CUpnpSvgImageConverter::ImageConverterL -// Called from thread's main function. -// Contains the code which can leave. -// @param aSvgConverter Reference to class object. -// --------------------------------------------------------------------------------- -// -void CUpnpSvgImageConverter::ImageConverterL( CUpnpSvgImageConverter& aSvgConverter ) - { - OstTraceFunctionEntry0( CUPNPSVGIMAGECONVERTER_IMAGECONVERTERL_ENTRY ); - /** - * Add support for active objects - * Create and install active scheduler - */ - CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; - CleanupStack::PushL(scheduler); - CActiveScheduler::Install( scheduler ); - // Opens the bitmap file and supplies it to the active object - RFs fs; - CleanupClosePushL( fs ); - User::LeaveIfError(fs.Connect()); - RFile bitmapFile; - CleanupClosePushL( bitmapFile ); - User::LeaveIfError( bitmapFile.Open( fs, aSvgConverter.Filepath(), EFileRead|EFileWrite|EFileShareAny )); - - // Create an active object that is executed in this thread - CUpnpIconConversionActive* active = CUpnpIconConversionActive::NewL( bitmapFile ); - CleanupStack::PushL(active); - // Invoke the request to the active object - active->Convert( aSvgConverter.BitmapObject() ); - // Thread execution starts - CActiveScheduler::Start(); - User::LeaveIfError( active->FetchError() ); // Leaves if the status returned is not KErrNone - - /** - * Thread execution ends (waiting for CActiveScheduler::Stop()) - * Cleanup the active object and scheduler - */ - CleanupStack::PopAndDestroy(UpnpString::KDoubleLineFeedLength,scheduler); - OstTraceFunctionExit0( CUPNPSVGIMAGECONVERTER_IMAGECONVERTERL_EXIT ); - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnpterminalmodeicon.cpp --- a/services/terminalmodeservice/src/upnpterminalmodeicon.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/** -* 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: CUpnpTerminalModeIcon class implementation. -* -*/ - -// INCLUDE FILES -#include "upnpterminalmodeicon.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnpterminalmodeiconTraces.h" -#endif - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::NewL -// Two-phased constructor. -// @param aPath icon path -// @param aWidth icon width -// @param aHeight icon height -// @param aDepth icon depth -// @param aMimeType icon mime type -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpTerminalModeIcon* CUpnpTerminalModeIcon::NewL( const TDesC16& aPath, const TInt aWidth, - const TInt aHeight, const TInt aDepth, const TDesC8& aMimeType ) - { - OstTraceFunctionEntry0( CUPNPTERMINALMODEICON_NEWL_ENTRY ); - CUpnpTerminalModeIcon* self = new (ELeave) CUpnpTerminalModeIcon( aWidth,aHeight,aDepth ); - CleanupStack::PushL( self ); - self->ConstructL( aPath,aMimeType ); - CleanupStack::Pop( self ); - OstTraceFunctionExit0( CUPNPTERMINALMODEICON_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::CUpnpTerminalModeIcon -// C++ default constructor can NOT contain any code, that -// might leave. -// @param aWidth icon width -// @param aHeight icon height -// @param aDepth icon depth -// --------------------------------------------------------------------------------- -// -CUpnpTerminalModeIcon::CUpnpTerminalModeIcon( const TInt aWidth,const TInt aHeight, - const TInt aDepth ):iIconWidth(aWidth),iIconHeight(aHeight),iIconDepth(aDepth) - { - - } - -// ------------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::ConstructL -// Symbian 2nd phase constructor can leave. -// @param aPath icon path -// @param aMimeType icon mime type -// --------------------------------------------------------------------------------- -// -void CUpnpTerminalModeIcon::ConstructL( const TDesC16& aPath,const TDesC8& aMimeType ) - { - OstTraceFunctionEntry0( CUPNPTERMINALMODEICON_CONSTRUCTL_ENTRY ); - iFilename = aPath.AllocL(); - iIconMimeType = aMimeType.AllocL(); - OstTraceFunctionExit0( CUPNPTERMINALMODEICON_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::~CUpnpTerminalModeIcon -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTerminalModeIcon::~CUpnpTerminalModeIcon() - { - OstTraceFunctionEntry0( CUPNPTERMINALMODEICON_CUPNPTERMINALMODEICON_ENTRY ); - delete iFilename; - delete iIconMimeType; - OstTraceFunctionExit0( CUPNPTERMINALMODEICON_CUPNPTERMINALMODEICON_EXIT ); - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmappserverservice.cpp --- a/services/terminalmodeservice/src/upnptmappserverservice.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,400 +0,0 @@ -/** -* 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: CUpnpTmAppServerService class implementation. -* -*/ - - -// System includes -#include -#include - -//User includes -#include "upnptmappserverservice.h" -#include "upnptmserverdevice.h" -#include "upnptmserverimpl.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmappserverserviceTraces.h" -#endif - - -//Defines different action names ,their arguments and their related state variables -_LIT8(KGetApplicationList, "GetApplicationList"); -_LIT8(KLaunchApp, "LaunchApplication"); -_LIT8(KTerminateApp, "TerminateApplication"); -_LIT8(KGetAppStatus, "GetApplicationStatus"); -_LIT8(KAppFilter, "AppListingFilter"); -_LIT8(KProfileId, "ProfileID"); -_LIT8(KAppListing, "AppListing"); -_LIT8(KAppId , "AppID"); -_LIT8(KAppStatus, "AppStatus"); -_LIT8(KAppLaunchUri, "AppURI"); -_LIT8(KAppTerminateResult, "TerminationResult"); -_LIT8(KArgTypeAppList, "A_ARG_TYPE_AppList"); -_LIT8(KArgTypeAppStatus, "A_ARG_TYPE_AppStatus"); -_LIT8(KArgTypeAppStatusUpdate, "AppStatusUpdate"); -_LIT8(KArgTypeAppListUpdate, "AppListUpdate"); -_LIT8(KStatusTrue, "True"); -_LIT8(KStatusFalse, "False"); - - -// ================= MEMBER FUNCTIONS ============================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::CUpnpTmAppServerService -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmAppServerService::CUpnpTmAppServerService( CUpnpDevice& aUpnpDevice,CUpnpTmServerImpl& aTmServerImpl ): - CUpnpServiceImplementation(aUpnpDevice),iUpnpDevice(aUpnpDevice), iTmServerImpl(aTmServerImpl) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::~CUpnpTmAppServerService -// C++ default destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmAppServerService::~CUpnpTmAppServerService() - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_CUPNPTMAPPSERVERSERVICE_ENTRY ); - if ( iHttpServerSession ) - { - iHttpServerSession->Stop(); - } - delete iHttpServerSession; - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_CUPNPTMAPPSERVERSERVICE_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::ConstructL -// Two-phased constructor. -// Initialize variables, set parent service and create XML reader. -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::ConstructL( const TDesC& aDescriptionPath ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_CONSTRUCTL_ENTRY ); - _LIT8( KServiceType, "TmApplicationServer:1" ); - BaseConstructL( aDescriptionPath, KServiceType); - - SetStateVariableL( KArgTypeAppList, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeAppStatus, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeAppStatusUpdate, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeAppListUpdate, KEmptyString, EFalse ); - ConstructHttpL( ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::ConstructHttpL -// Method is used to start the HTTP Server -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::ConstructHttpL( ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_CONSTRUCTHTTPL_ENTRY ); - iHttpServerSession = CUpnpHttpServerSession::NewL( CUpnpSettings::GetIapL(),*this ); - iHttpServerSession->DefaultRuntime().SetCreator( *this ); - iHttpServerSession->StartL(); - iTmServerImpl.GenerateUrlComponents(*iHttpServerSession); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_CONSTRUCTHTTPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmAppServerService* CUpnpTmAppServerService::NewL(CUpnpDevice& aUpnpDevice, const TDesC& aDescriptionPath, - CUpnpTmServerImpl& aTmServerImp ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_NEWL_ENTRY ); - CUpnpTmAppServerService* appServerService = new (ELeave) CUpnpTmAppServerService(aUpnpDevice, aTmServerImp); - CleanupStack::PushL( appServerService ); - appServerService->ConstructL( aDescriptionPath ); - CleanupStack::Pop( appServerService ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_NEWL_EXIT ); - return appServerService; - } - -// ---------------------------------------------------------------------------------------------- -// CUpnpTmAppServerService::ActionReceivedLD -// @param aAction action received from the client -// ---------------------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::ActionReceivedLD( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_ACTIONRECEIVEDLD_ENTRY ); - if ( !aAction ) - { - User::Leave( KErrNotFound ); - } - CleanupStack::PushL( aAction ); - TUpnpErrorCode eCode = EHttpOk; - - // Get the name, saves calls in the if-else statements - TPtrC8 name( aAction->Name() ); - // Verify the action and do the operation(s) - if ( name.Compare( KGetApplicationList ) == 0 ) - { - eCode = GetAppListActionL( aAction ); - } - else if ( name.Compare( KLaunchApp ) == 0 ) - { - eCode = LaunchAppActionL( aAction ); - } - else if ( name.Compare( KTerminateApp ) == 0 ) - { - eCode = TerminateAppActionL ( aAction ); - } - else if ( name.Compare( KGetAppStatus) == 0 ) - { - eCode = GetAppStatusActionL( aAction ); - } - else - { - eCode = EInvalidAction; - } - SendL( aAction, eCode ); - CleanupStack::PopAndDestroy( aAction ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_ACTIONRECEIVEDLD_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::GetAppListActionL -// @param aAction pointer to upnp action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmAppServerService::GetAppListActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_GETAPPLISTACTIONL_ENTRY ); - // Fetch the value for app listing filter argument - const TDesC8& filter = aAction->ArgumentValue(KAppFilter); - // Validate the AppListing filter string - // AppListingFilter input argument can contain wither wildcard(*) or - // a well formatted string - if ( ( filter.Compare(KWildCard ) != KErrNone ) && ( filter.Find(Keq) == KErrNotFound )) - { - // The filter string is having neither wildcard(*) nor a proper string( =" is missing ) - OstTrace0( TRACE_ERROR, DUP2_CUPNPTMAPPSERVERSERVICE_GETAPPLISTACTIONL, "CUpnpTmAppServerService::GetAppListActionL" ); - return EInvalidArgs; // invalid AppListingFilter argument - } - - // Fetch the value for profile ID argument - TUint profileIdInt; - ConvertDescriptorToInt( aAction->ArgumentValue(KProfileId), profileIdInt ); - OstTrace1( TRACE_NORMAL, CUPNPTMAPPSERVERSERVICE_GETAPPLISTACTIONL, "CUpnpTmAppServerService::GetAppListActionL;profileIdInt=%u", profileIdInt ); - - TTerminalModeErrorCode ret; - const TDesC8& appList = iTmServerImpl.GetApplicationListL( filter,profileIdInt,ret ); - if ( ret != ETerminalModeSuccess ) - { - OstTrace1( TRACE_ERROR, DUP1_CUPNPTMAPPSERVERSERVICE_GETAPPLISTACTIONL, "CUpnpTmAppServerService::GetAppListActionL;ret=%d", ret ); - return TUpnpErrorCode( ret ); - } - aAction->SetArgumentL( KAppListing, appList ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_GETAPPLISTACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::LaunchAppActionL -// @param aAction pointer to upnp action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmAppServerService::LaunchAppActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_LAUNCHAPPACTIONL_ENTRY ); - TUint appIdInt; - TUint profileIdInt; - // Validates the input parameters - if ( ( ConvertDescriptorToInt( aAction->ArgumentValue(KAppId), appIdInt ) != KErrNone ) - || ( ConvertDescriptorToInt( aAction->ArgumentValue(KProfileId), profileIdInt ) != KErrNone )) - { - OstTraceExt2( TRACE_ERROR, CUPNPTMAPPSERVERSERVICE_LAUNCHAPPACTIONL, "CUpnpTmAppServerService::LaunchAppActionL;appIdInt=%u;profileIdInt=%u", appIdInt, profileIdInt ); - return EInvalidArgs; // either invalid app ID or invalid profile ID - } - - RBuf8 launchUrl; - TTerminalModeErrorCode ret = iTmServerImpl.LaunchApp( appIdInt,profileIdInt,launchUrl ); - - if ( ret != ETerminalModeSuccess ) - { - // Error is returned - launchUrl.Close(); - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMAPPSERVERSERVICE_LAUNCHAPPACTIONL, "CUpnpTmAppServerService::LaunchAppActionL" ); - return TUpnpErrorCode( ret ); - } - CleanupClosePushL(launchUrl); - aAction->SetArgumentL( KAppLaunchUri , launchUrl ); - - CleanupStack::PopAndDestroy(&launchUrl); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_LAUNCHAPPACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::TerminateAppActionL -// @param aAction pointer to upnp action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmAppServerService::TerminateAppActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_TERMINATEAPPACTIONL_ENTRY ); - // Validates the input parameters - TUint appIdInt; - TUint profileIdInt; - if ( ( ConvertDescriptorToInt( aAction->ArgumentValue(KAppId), appIdInt ) != KErrNone ) - || ( ConvertDescriptorToInt( aAction->ArgumentValue(KProfileId), profileIdInt ) != KErrNone )) - { - OstTraceExt2( TRACE_ERROR, CUPNPTMAPPSERVERSERVICE_TERMINATEAPPACTIONL, "CUpnpTmAppServerService::TerminateAppActionL;appIdInt=%u;profileIdInt=%u", appIdInt, profileIdInt ); - return EInvalidArgs; // either invalid app ID or invalid profile ID - } - - TTerminalModeErrorCode ret = iTmServerImpl.TerminateApp( appIdInt,profileIdInt ); - if ( ret != ETerminalModeSuccess ) - { - // Error is returned - aAction->SetArgumentL( KAppTerminateResult,KStatusFalse ); - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMAPPSERVERSERVICE_TERMINATEAPPACTIONL, "CUpnpTmAppServerService::TerminateAppActionL" ); - return TUpnpErrorCode( ret ); - } - aAction->SetArgumentL( KAppTerminateResult,KStatusTrue); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_TERMINATEAPPACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::GetAppStatusActionL -// @param aAction Pointer to upnp action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmAppServerService::GetAppStatusActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_GETAPPSTATUSACTIONL_ENTRY ); - const TDesC8& appId= aAction->ArgumentValue(KAppId); - // Check if the appID argument has either wildcard character(*) - // or a valid integer as its value - TUint appIdInt; - if ( (( appId.Compare( KWildCard ) != KErrNone ) && - ( ConvertDescriptorToInt( appId, appIdInt ) != KErrNone )) ) - { - OstTrace1( TRACE_ERROR, CUPNPTMAPPSERVERSERVICE_GETAPPSTATUSACTIONL, "CUpnpTmAppServerService::GetAppStatusActionL;appIdInt=%u", appIdInt ); - return EInvalidArgs; // invalid input argument - } - RBuf8 appStatusBuf; - CleanupClosePushL(appStatusBuf); - TTerminalModeErrorCode ret; - iTmServerImpl.GetAppStatusL( appId, appStatusBuf, ret); - - if ( ret != ETerminalModeSuccess ) - { - CleanupStack::PopAndDestroy(&appStatusBuf); - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMAPPSERVERSERVICE_GETAPPSTATUSACTIONL, "CUpnpTmAppServerService::GetAppStatusActionL" ); - return TUpnpErrorCode( ret ); - } - aAction->SetArgumentL( KAppStatus, appStatusBuf ); - - CleanupStack::PopAndDestroy(&appStatusBuf); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_GETAPPSTATUSACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::NewTransactionL -// This method is invoked whenever http request related to icon file transfer -// arrives to http server from remote client -// @param aMethod Http message method ( GET, HEAD or POST ) -// @param aUri Http message request uri -// @param aSender IP address of the Http message sender -// @param[out] aTrans Returns newly created transaction object -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::NewTransactionL( const TDesC8& aMethod, const TDesC8& aUri, - const TInetAddr& /*aSender*/, CUpnpHttpServerTransaction*& aResultTrans ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_NEWTRANSACTIONL_ENTRY ); - if ( aMethod != KHttpPost() ) - { - iTmServerImpl.GetIconInfoL(aUri, aResultTrans); - } - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_NEWTRANSACTIONL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::HttpEventLD -// Provides file transfer completion status -// Notifies about the HTTP events, errors. -// Handling of http events is not provided in Terminal Mode Service -// @param aMessage the HTTP message -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::HttpEventLD( CUpnpHttpMessage* /*aMessage*/ ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::AppStatusUpdateEventL -// Notifies the client about the status updates. -// @param aStatusUpdateBuffer Buffer holding the update status information. -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::AppStatusUpdateEventL( const TDesC8& aStatusUpdateBuffer ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_APPSTATUSUPDATEEVENTL_ENTRY ); - SetStateVariableL( KArgTypeAppStatusUpdate, aStatusUpdateBuffer, EFalse ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_APPSTATUSUPDATEEVENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::AppListUpdateEventL -// Notifies the client about the app list updates. -// @param aListUpdateBuffer Buffer holding the update app list information. -// --------------------------------------------------------------------------------- -// -void CUpnpTmAppServerService::AppListUpdateEventL( const TDesC8& aListUpdateBuffer ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_APPLISTUPDATEEVENTL_ENTRY ); - SetStateVariableL( KArgTypeAppListUpdate, aListUpdateBuffer, EFalse ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_APPLISTUPDATEEVENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::ConvertDescriptorToInt -// Utility method to convert descriptor's data to integer -// @param aDes Descriptor whose integer equivalent have to be calculated -// @param aIntVal[out] Integer value -// @return Returns error code -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmAppServerService::ConvertDescriptorToInt( const TDesC8& aDes, TUint& aIntVal ) - { - OstTraceFunctionEntry0( CUPNPTMAPPSERVERSERVICE_CONVERTDESCRIPTORTOINT_ENTRY ); - aIntVal = KErrNone; - TLex8 lex( aDes ); - OstTrace1( TRACE_NORMAL, CUPNPTMAPPSERVERSERVICE_CONVERTDESCRIPTORTOINT, "CUpnpTmAppServerService::ConvertDescriptorToInt;aIntVal=%u", aIntVal ); - OstTraceFunctionExit0( CUPNPTMAPPSERVERSERVICE_CONVERTDESCRIPTORTOINT_EXIT ); - return lex.Val(aIntVal); - } - -//End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmclienticonpref.cpp --- a/services/terminalmodeservice/src/upnptmclienticonpref.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/** -* 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: CUpnpTmClientIconPref class implementation. -* -*/ - -// INCLUDE FILES -#include "upnptmclienticonpref.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmclienticonprefTraces.h" -#endif - -// Literal -_LIT8(KBmpMimeType, "image/bmp"); - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::NewL -// Two-phased constructor. -// @param aProfileId ProfileID of the client profile. -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpTmClientIconPref* CUpnpTmClientIconPref::NewL( TUint aProfileId ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTICONPREF_NEWL_ENTRY ); - CUpnpTmClientIconPref* self = new (ELeave) CUpnpTmClientIconPref(aProfileId); - CleanupStack::PushL(self); - self->ConstructL( ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMCLIENTICONPREF_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::CUpnpTmClientIconPref -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmClientIconPref::CUpnpTmClientIconPref( TUint aProfileId ):iClientProfileId(aProfileId), - iIconWidth(KErrNone),iIconHeight(KErrNone),iIconDepth(KDefaultDepthValue) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmClientIconPref::ConstructL( ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTICONPREF_CONSTRUCTL_ENTRY ); - iIconMimeType = KBmpMimeType().AllocL(); - OstTraceFunctionExit0( CUPNPTMCLIENTICONPREF_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::~CUpnpTmClientIconPref -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmClientIconPref::~CUpnpTmClientIconPref() - { - OstTraceFunctionEntry0( CUPNPTMCLIENTICONPREF_CUPNPTMCLIENTICONPREF_ENTRY ); - delete iIconMimeType; - OstTraceFunctionExit0( CUPNPTMCLIENTICONPREF_CUPNPTMCLIENTICONPREF_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::SetMimeTypeL -// Method is used to provide the preferred mime type of the client. -// @param aMimeType mime type of the icon -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmClientIconPref::SetMimeTypeL( const TDesC8& aMimeType ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTICONPREF_SETMIMETYPEL_ENTRY ); - delete iIconMimeType; - iIconMimeType = NULL; - iIconMimeType = aMimeType.AllocL(); - OstTraceFunctionExit0( CUPNPTMCLIENTICONPREF_SETMIMETYPEL_EXIT ); - } - - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmclientprofileservice.cpp --- a/services/terminalmodeservice/src/upnptmclientprofileservice.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ -/** -* 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: CUpnpTmClientProfileService class implementation. -* -*/ - -// System includes -#include -#include - -//User includes -#include "upnptmclientprofileservice.h" -#include "upnptmserverdevice.h" -#include "upnptmserverimpl.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmclientprofileserviceTraces.h" -#endif - - -//Defines different action names ,their arguments and their related state variables -_LIT8(KGetMaxNumProfiles, "GetMaxNumProfiles"); -_LIT8(KSetClientProfile, "SetClientProfile"); -_LIT8(KGetClientProfile, "GetClientProfile"); -_LIT8(KProfileId, "profileID"); -_LIT8(KClientProfile , "clientProfile"); -_LIT8(KResultProfile , "resultProfile"); -_LIT8(KNumProfilesAllowed , "numProfilesAllowed"); -_LIT8(KArgTypeUnusedProfileIds, "UnusedProfileIDs"); -_LIT8(KArgTypeClientProfile, "A_ARG_TYPE_ClientProfile"); -_LIT8(KArgTypeMaxProfiles, "MaxNumProfiles"); -_LIT8(KArgTypeProfileId, "A_ARG_TYPE_ProfileID"); - - -// ================= MEMBER FUNCTIONS ============================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::CUpnpTmClientProfileService -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmClientProfileService::CUpnpTmClientProfileService( CUpnpDevice& aUpnpDevice,CUpnpTmServerImpl& aTmServerImpl ) - :CUpnpServiceImplementation(aUpnpDevice),iUpnpDevice(aUpnpDevice), iTmServerImpl(aTmServerImpl) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_CUPNPTMCLIENTPROFILESERVICE_ENTRY ); - - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_CUPNPTMCLIENTPROFILESERVICE_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::~CUpnpTmClientProfileService -// C++ default destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmClientProfileService::~CUpnpTmClientProfileService() - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::ConstructL -// Two-phased constructor. -// Initialize variables, set parent service and create XML reader. -// --------------------------------------------------------------------------------- -// -void CUpnpTmClientProfileService::ConstructL(const TDesC& aDescriptionPath ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_CONSTRUCTL_ENTRY ); - _LIT8( KServiceType, "TmClientProfile:1" ); - BaseConstructL( aDescriptionPath, KServiceType); - - SetStateVariableL( KArgTypeUnusedProfileIds, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeClientProfile, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeMaxProfiles, KEmptyString, EFalse ); - SetStateVariableL( KArgTypeProfileId, KEmptyString, EFalse ); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmClientProfileService* CUpnpTmClientProfileService::NewL(CUpnpDevice& aUpnpDevice, const TDesC& aDescriptionPath, CUpnpTmServerImpl& aTmServerImp ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_NEWL_ENTRY ); - CUpnpTmClientProfileService* clientProfileService = new (ELeave) CUpnpTmClientProfileService(aUpnpDevice, aTmServerImp); - CleanupStack::PushL( clientProfileService ); - clientProfileService->ConstructL( aDescriptionPath ); - CleanupStack::Pop( clientProfileService ); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_NEWL_EXIT ); - return clientProfileService; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::ActionReceivedLD -// @param aAction action received from the client -// --------------------------------------------------------------------------------- -// -void CUpnpTmClientProfileService::ActionReceivedLD( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_ACTIONRECEIVEDLD_ENTRY ); - if ( !aAction ) - { - User::Leave( KErrNotFound ); - } - CleanupStack::PushL( aAction ); - TUpnpErrorCode eCode = EHttpOk; - - // Get the name, saves calls in the if-else statements - TPtrC8 name( aAction->Name() ); - // Verify the action and do the operation(s) - if ( name.Compare( KGetMaxNumProfiles ) == 0 ) - { - eCode = GetMaxNumProfilesActionL( aAction ); - } - else if ( name.Compare( KSetClientProfile ) == 0 ) - { - eCode = SetClientProfileActionL( aAction ); - } - else if ( name.Compare( KGetClientProfile ) == 0 ) - { - eCode = GetClientProfileActionL ( aAction ); - } - else - { - eCode = EInvalidAction; - } - SendL( aAction, eCode ); - CleanupStack::PopAndDestroy( aAction ); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_ACTIONRECEIVEDLD_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::GetMaxNumProfilesActionL -// @param aAction pointer to action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmClientProfileService::GetMaxNumProfilesActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_GETMAXNUMPROFILESACTIONL_ENTRY ); - TUint profileCount; - TTerminalModeErrorCode ret = iTmServerImpl.GetMaxNumProfiles( profileCount ); - if ( ret != ETerminalModeSuccess ) - { - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMCLIENTPROFILESERVICE_GETMAXNUMPROFILESACTIONL, "CUpnpTmClientProfileService::GetMaxNumProfilesActionL" ); - return TUpnpErrorCode( ret ); - } - OstTrace1( TRACE_NORMAL, CUPNPTMCLIENTPROFILESERVICE_GETMAXNUMPROFILESACTIONL, "CUpnpTmClientProfileService::GetMaxNumProfilesActionL;profileCount=%d", profileCount ); - TBuf8 countBuf; - countBuf.Num(profileCount); - - aAction->SetArgumentL( KNumProfilesAllowed, countBuf ); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_GETMAXNUMPROFILESACTIONL_EXIT ); - return EHttpOk; - } - -// ------------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::SetClientProfileActionL -// @param aAction Pointer to UPnP action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmClientProfileService::SetClientProfileActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_SETCLIENTPROFILEACTIONL_ENTRY ); - TUint profileIdInt; - // Fetch the value for profile ID argument - TLex8 lex( aAction->ArgumentValue(KProfileId) ); - lex.Val(profileIdInt); - OstTrace1( TRACE_ERROR, CUPNPTMCLIENTPROFILESERVICE_SETCLIENTPROFILEACTIONL, "CUpnpTmClientProfileService::SetClientProfileActionL;profileIdInt=%d", profileIdInt ); - - // Fetch the value for client profile argument - const TDesC8& clientProfile = aAction->ArgumentValue(KClientProfile); - - RBuf8 resultProfileBuf; - TTerminalModeErrorCode ret = iTmServerImpl.SetClientProfile( profileIdInt,clientProfile,resultProfileBuf ); - if ( ret != ETerminalModeSuccess ) - { - resultProfileBuf.Close(); - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMCLIENTPROFILESERVICE_SETCLIENTPROFILEACTIONL, "CUpnpTmClientProfileService::SetClientProfileActionL" ); - return TUpnpErrorCode( ret ); - } - CleanupClosePushL(resultProfileBuf); - aAction->SetArgumentL( KResultProfile , resultProfileBuf ); - CleanupStack::PopAndDestroy(&resultProfileBuf); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_SETCLIENTPROFILEACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientProfileService::GetClientProfileActionL -// @param aAction pointer to action object -// @return Returns upnp error code -// --------------------------------------------------------------------------------- -// -TUpnpErrorCode CUpnpTmClientProfileService::GetClientProfileActionL( CUpnpAction* aAction ) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_GETCLIENTPROFILEACTIONL_ENTRY ); - TUint profileIdInt; - // Fetch the value for profile ID argument - TLex8 lex( aAction->ArgumentValue(KProfileId) ); - lex.Val(profileIdInt); - OstTrace1( TRACE_ERROR, CUPNPTMCLIENTPROFILESERVICE_GETCLIENTPROFILEACTIONL, "CUpnpTmClientProfileService::GetClientProfileActionL;profileIdInt=%d", profileIdInt ); - - RBuf8 resultProfileBuf; - TTerminalModeErrorCode ret = iTmServerImpl.GetClientProfile(profileIdInt,resultProfileBuf ); - - if ( ret != ETerminalModeSuccess ) - { - resultProfileBuf.Close(); - OstTrace0( TRACE_ERROR, DUP1_CUPNPTMCLIENTPROFILESERVICE_GETCLIENTPROFILEACTIONL, "CUpnpTmClientProfileService::GetClientProfileActionL" ); - return TUpnpErrorCode( ret ); - } - CleanupClosePushL(resultProfileBuf); - aAction->SetArgumentL( KClientProfile,resultProfileBuf ); - CleanupStack::PopAndDestroy(&resultProfileBuf); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_GETCLIENTPROFILEACTIONL_EXIT ); - return EHttpOk; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmAppServerService::UnusedProfileIdEventL -// Notifies the client about the status updates. -// @param aUnusedProfileIdBuffer Buffer holding the unused profile IDs information. -// --------------------------------------------------------------------------------- -// -void CUpnpTmClientProfileService::UnUsedProfileIdEventL(const TDesC8& aUnusedProfileIdBuffer) - { - OstTraceFunctionEntry0( CUPNPTMCLIENTPROFILESERVICE_UNUSEDPROFILEIDEVENTL_ENTRY ); - SetStateVariableL( KArgTypeUnusedProfileIds, aUnusedProfileIdBuffer, EFalse); - OstTraceFunctionExit0( CUPNPTMCLIENTPROFILESERVICE_UNUSEDPROFILEIDEVENTL_EXIT ); - } - -//End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmfilteredapplist.cpp --- a/services/terminalmodeservice/src/upnptmfilteredapplist.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,654 +0,0 @@ -/** -* 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: CUpnpTmFilteredAppList class implementation. -* -*/ - -#include "upnptmfilteredapplist.h" -#include "upnptmserverimpl.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmfilteredapplistTraces.h" -#endif - -//Constants -const TUint KQuote = '"'; -const TUint KCommaSeparator = ','; - -//Literals -_LIT8(KDoubleQuote, "\"\""); -_LIT8(KIconElement, "icon"); - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmFilteredAppList* CUpnpTmFilteredAppList::NewL( CUpnpTmServerImpl& aTmServerImpl ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_NEWL_ENTRY ); - CUpnpTmFilteredAppList* self = new (ELeave) CUpnpTmFilteredAppList( aTmServerImpl ); - CleanupStack::PushL(self); - self->ConstructL( ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::CUpnpTmFilteredAppList -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmFilteredAppList::CUpnpTmFilteredAppList( CUpnpTmServerImpl& aTmServerImpl ) - :iTmServerImpl (aTmServerImpl ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmFilteredAppList::ConstructL() - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTL_ENTRY ); - iFilterInfo = CUpnpAppFilterInfo::NewL(); - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::~CUpnpTmFilteredAppList -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmFilteredAppList::~CUpnpTmFilteredAppList() - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_CUPNPTMFILTEREDAPPLIST_ENTRY ); - delete iFilterInfo; - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_CUPNPTMFILTEREDAPPLIST_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::ParseAppFilterStringL -// Method parses the descriptor containing the filter string -// It parses the comma-separated list of A_ARG_TYPE_AppList schema -// elements, attributes and their values -// eg: "name="*Audio*",description="*",icon@mimetype="*svg+xml*", remotingInfo@protocolID="*", -// appInfo@appCategory="*",audioInfo@audioType="*",resourceStatus="free",signature="*"" -// @param aAppFilter Buffer containing application filter string -// @param aErr[out] Terminal Mode error code -// --------------------------------------------------------------------------------- -// -void CUpnpTmFilteredAppList::ParseAppFilterStringL( const TDesC8& aAppFilter, - TTerminalModeErrorCode& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_PARSEAPPFILTERSTRINGL_ENTRY ); - // Validate the filter string - aErr = ETerminalModeSuccess; - TInt quotePos = aAppFilter.Locate( KQuote ); - if ( ( quotePos != 0 ) || ( aAppFilter.Find(KDoubleQuote) == KErrNotFound )) - { - // corrupt filter string - aErr = ETerminalModeInvalidArgument; - OstTrace1( TRACE_ERROR, DUP2_CUPNPTMFILTEREDAPPLIST_PARSEAPPFILTERSTRINGL, "CUpnpTmFilteredAppList::ParseAppFilterStringL;quotePos=%d", quotePos ); - return; - } - RBuf8 filterBuffer; - CleanupClosePushL(filterBuffer); - /* Create a buffer having the content of AppFilter buffer but without - the leading quote(") */ - filterBuffer.CreateL(aAppFilter.Mid(quotePos+1)); - TInt equalToQuoteToken; - while( ( equalToQuoteToken = filterBuffer.Find(Keq)) != KErrNotFound ) - { - // Fetch the full key string - TPtrC8 key = filterBuffer.Left(equalToQuoteToken); - // Check for the presence of sub element by checking the @ in the key string - TInt atTokenPos = key.Find(KAtToken); - TBool displayInfo(EFalse); - if ( atTokenPos != KErrNotFound ) - { - // @ is found in the key string - // Now extract the parent element - TPtrC8 parentKey = key.Left(atTokenPos); - //Remove any leading and trailing whitespaces in the parent element - const TDesC8& parentKeyWithoutSpace = RemoveWhiteSpace(parentKey); - // Check if the parent elemet is one of desired element or not. - // It should be one of the following : - // <1> icon <2> remotingInfo <3> appInfo <4> displayInfo <5> audioInfo - if ( ( parentKeyWithoutSpace.Compare(KIconElement) != KErrNone ) && - ( parentKeyWithoutSpace.Compare(KRemotingInfo) != KErrNone ) && - ( parentKeyWithoutSpace.Compare(KAppInfo) != KErrNone ) && - ( parentKeyWithoutSpace.Compare(KDisplayInfo) != KErrNone ) && - ( parentKeyWithoutSpace.Compare(KAudioInfo) != KErrNone ) ) - { - // parent element is not proper - aErr = ETerminalModeInvalidArgument; - break; - } - if ( parentKeyWithoutSpace.Compare(KDisplayInfo) == KErrNone ) - { - // The parent key element is displayInfo - displayInfo = ETrue; - } - // Fetch the actual key name ( child element ) - key.Set(key.Mid(atTokenPos+1)); - } - - //Remove any leading and trailing whitespaces in the key - const TDesC8& keyWithoutSpace = RemoveWhiteSpace(key); - if ( (filterBuffer.Mid(equalToQuoteToken) ).Locate(KQuote) != 1 ) - { - // Missing quote(") ahead of the value - aErr = ETerminalModeInvalidArgument; - break; - } - TPtrC8 bufPtr = filterBuffer.Mid(equalToQuoteToken+2); - quotePos = bufPtr.Locate( KQuote ); - if ( quotePos == KErrNotFound ) - { - // missing quote (") at the end of the value - aErr = ETerminalModeInvalidArgument; - break; - } - - /* Add the filter info as key-value pairs. - // Also check if the parent key is display info. - If display info flag is true then use the method with non default parameter */ - if ( displayInfo ) - { - iFilterInfo->SetFilterInfoL( keyWithoutSpace, bufPtr.Left(quotePos), aErr, ETrue ); - } - else - { - // Use the method with default parameter - iFilterInfo->SetFilterInfoL( keyWithoutSpace, bufPtr.Left(quotePos), aErr ); - } - if ( aErr != ETerminalModeSuccess ) - { - // Return the error code in case the key element is not as per the schema - aErr = ETerminalModeInvalidArgument; - break; - } - // Skip the quote position and set the buffer - bufPtr.Set(bufPtr.Mid(quotePos+1)); - if ( ( bufPtr.Locate(KCommaSeparator) != 0 ) && ( bufPtr.Locate(KQuote) != 0 ) ) - { - // missing quote (") or comma (,) following the quote. - // Expected to be something of this kind ( ", or "" ) - aErr = ETerminalModeInvalidArgument; - break; - } - //Copy the residual content skipping two characters(", or "" ) in the actual buffer - filterBuffer.Copy(bufPtr.Mid(UpnpString::KLinefeedLength)); - } - CleanupStack::PopAndDestroy(&filterBuffer); - OstTrace1( TRACE_FLOW, CUPNPTMFILTEREDAPPLIST_PARSEAPPFILTERSTRINGL, "CUpnpTmFilteredAppList::ParseAppFilterStringL;aErr=%d", aErr ); - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_PARSEAPPFILTERSTRINGL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::ConstructFilteredGetAppListResponseL -// Constructs the GetApplicationList action response buffer satisfying -// the AppListingFilter criteria -// @param aAppIndex Index the registered application -// --------------------------------------------------------------------------------- -// -void CUpnpTmFilteredAppList::ConstructFilteredGetAppListResponseL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTFILTEREDGETAPPLISTRESPONSEL_ENTRY ); - const TDesC8& filterAppName = iFilterInfo->AppName(); - const TDesC8& filterAppDesc = iFilterInfo->AppDescription(); - if ( ( ( filterAppName.Length() == 0 ) || - ((iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).AppName()).MatchC(filterAppName) - != KErrNotFound )) && (( filterAppDesc.Length() == 0 ) || - ((iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).AppDescription()).MatchC(filterAppDesc) - != KErrNotFound ))) - { - /** - * 1. Either required appName element is unavailable in the filter string or the desired appName matches. - * 2. Either optional appDescription element is unavailable in the filter string - * or the desired appDescription element matches - */ - const RPointerArray& tmInfoElementList = - iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).TmInfoElementList(); - TInt tmInfoCount = tmInfoElementList.Count(); - // Check if terminal mode info is also available in the filter string - TInt match(KErrNone); - for ( TInt i(0); i < tmInfoCount; i++ ) - { - if ( TerminalModeInfoMatchingL( *tmInfoElementList[i]) ) - { - match++; - } - else - { - break; - } - } - if ( match == tmInfoCount ) - { - // Check if resource status and xm signature elements are available in the filter - const TDesC8& filterRscStatus = iFilterInfo->ResourceStatus(); - const TDesC8& filterSignature = iFilterInfo->Signature(); - if ( (( filterRscStatus.Length() == 0 ) || - ((iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).ResourceStatus()).MatchC(filterRscStatus) - != KErrNotFound)) && ( ( filterSignature.Length() == 0 ) || - ((iTmServerImpl.XmlSignature()).MatchC(filterSignature) != KErrNotFound)) ) - { - IconMatchingL( aAppIndex ); - } - } - } - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTFILTEREDGETAPPLISTRESPONSEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::TerminalModeInfoMatchingL -// The method checks if the terminal mode info element is present in the filter string -// If available then it compares with each of the desired key-value of a particular -// info element. -// @param aTmInfoElement Reference to Terminal Mode Info Element object -// @return Returns a boolean value ( ETrue/EFalse ) -// --------------------------------------------------------------------------------- -// -TBool CUpnpTmFilteredAppList::TerminalModeInfoMatchingL( const CUpnpTmInfoElement& aTmInfoElement )const - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_TERMINALMODEINFOMATCHING_ENTRY ); - TBool match(EFalse); - // First check for terminal mode info type - const TDesC8& infoType = aTmInfoElement.TerminalModeInfoType(); - /** - * info Type must be either one of these - * <1> Remoting Info <2> App Info <3> Display Info <4> Audio Info - * - */ - if ( ( infoType.Compare(KRemotingInfo) == KErrNone ) ||( infoType.Compare(KAppInfo) == KErrNone ) - || ( infoType.Compare(KDisplayInfo) == KErrNone ) || ( infoType.Compare(KAudioInfo) == KErrNone )) - { - for ( TInt j(0); j < aTmInfoElement.TmInfoElementCount(); j++ ) - { - match = TmInfoElementMatchingL( aTmInfoElement,j ); - if ( !match ) - { - break; - } - } - } - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_TERMINALMODEINFOMATCHING_EXIT ); - return match; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::TmInfoElementMatchingL -// Method is used to compare with each of the desired key-value of a particular -// info element. -// @param aTmInfoElement Reference to Terminal Mode Info Element object. -// @return Returns the boolean value ( ETrue/EFalse ) -// --------------------------------------------------------------------------------- -// -TBool CUpnpTmFilteredAppList::TmInfoElementMatchingL( const CUpnpTmInfoElement& aTmInfoElement, - TInt aIndex )const - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_TMINFOELEMENTMATCHINGL_ENTRY ); - TBool match(EFalse); - RBuf8 elementName; - CleanupClosePushL(elementName); - RBuf8 elementValue; - CleanupClosePushL(elementValue); - aTmInfoElement.GetTmInfoElementL(elementName,elementValue,aIndex ); - // Check for required "protocolID" element - if ( elementName.Compare(KProtocolId()) == KErrNone ) - { - const TDesC8& filterProtocol = iFilterInfo->ProtocolId(); - if ( ( filterProtocol.Length() == KErrNone) || - elementValue.MatchC(filterProtocol) != KErrNotFound ) - { - // Either protocolID( required element )is unavailable or desired - // protocolID matches - match = ETrue; - } - } - // Check for optional "format" element - else if ( elementName.Compare(KFormat()) == KErrNone ) - { - const TDesC8& filterFormat = iFilterInfo->Format(); - if ( ( filterFormat.Length() == KErrNone) || - elementValue.MatchC(filterFormat) != KErrNotFound ) - { - // Either format ( optional element )is unavailable or desired "format" matches - match = ETrue; - } - } - // Check for optional "direction" element - else if ( elementName.Compare(KRemotingDirection()) == KErrNone ) - { - const TDesC8& filterDirection = iFilterInfo->Direction(); - if ( ( filterDirection.Length() == KErrNone) || - elementValue.MatchC(filterDirection) != KErrNotFound ) - { - // Either direction ( optional element )is unavailable or desired "direction" matches - match = ETrue; - } - } - // Check for optional "appCategory" element - else if ( elementName.Compare(KAppCategory()) == KErrNone ) - { - const TDesC8& filterAppCategory = iFilterInfo->AppCategory(); - if ( ( filterAppCategory.Length() == KErrNone) || - elementValue.MatchC(filterAppCategory) != KErrNotFound ) - { - // Either appCategory ( optional element )is unavailable or desired "appCategory" matches - match = ETrue; - } - } - // Check for optional "trustLevel" element for App Info Type - else if ( ( elementName.Compare(KTrustLevel()) == KErrNone ) && - ( aTmInfoElement.TerminalModeInfoType() == KAppInfo()) ) - { - const TDesC8& filterAppTrustLevel = iFilterInfo->AppTrustLevel(); - if ( ( filterAppTrustLevel.Length() == KErrNone) || - elementValue.MatchC(filterAppTrustLevel) != KErrNotFound ) - { - // Either trustLevel ( optional element )is unavailable or desired "trustLevel" matches - match = ETrue; - } - } - // Check for optional "contentCategory" element - else if ( elementName.Compare(KContCategory()) == KErrNone ) - { - const TDesC8& filterContCategory = iFilterInfo->ContentCategory(); - if ( ( filterContCategory.Length() == KErrNone) || - elementValue.MatchC(filterContCategory) != KErrNotFound ) - { - // Either contentCategory ( optional element )is unavailable or desired - // "contentCategory" matches - match = ETrue; - } - } - // Check for optional "contentRules" element - else if ( elementName.Compare(KContentRules()) == KErrNone ) - { - const TDesC8& filterContentRules = iFilterInfo->ContentRules(); - if ( ( filterContentRules.Length() == KErrNone) || - elementValue.MatchC(filterContentRules) != KErrNotFound ) - { - // Either contentRules ( optional element )is unavailable or desired "contentRules" matches - match = ETrue; - } - } - // Check for optional "trustLevel" element for Display Info type - else if ( ( elementName.Compare(KTrustLevel()) == KErrNone ) && - ( aTmInfoElement.TerminalModeInfoType() == KDisplayInfo()) ) - { - const TDesC8& filterContTrustLevel = iFilterInfo->ContentTrustLevel(); - if ( ( filterContTrustLevel.Length() == KErrNone) || - elementValue.MatchC(filterContTrustLevel) != KErrNotFound ) - { - // Either trustLevel ( optional element )is unavailable or desired "trustLevel" matches - match = ETrue; - } - } - // Check for optional "audioType" element - else if ( elementName.Compare(KAudioType()) == KErrNone ) - { - const TDesC8& filterAudioType = iFilterInfo->AudioType(); - if ( ( filterAudioType.Length() == KErrNone) || - elementValue.MatchC(filterAudioType) != KErrNotFound ) - { - // Either audioType ( optional element )is unavailable or desired "audioType" matches - match = ETrue; - } - } - CleanupStack::PopAndDestroy(2,&elementName); - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_TMINFOELEMENTMATCHINGL_EXIT ); - return match; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::IconMatchingL -// The method checks if the optional icon element is present in the filter string -// If present then it compares with the icon of the given application -// @param aAppIndex index of the registered app -// @param aAppStore reference to CUpnpRemotableAppStore object -// --------------------------------------------------------------------------------- -// -void CUpnpTmFilteredAppList::IconMatchingL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_ICONMATCHINGL_ENTRY ); - const TDesC8& mimeType = iFilterInfo->MimeType(); - const TDesC8& width = iFilterInfo->Width(); - const TDesC8& height = iFilterInfo->Height(); - const TDesC8& depth = iFilterInfo->Depth(); - const RPointerArray& iconList = - iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).IconList(); - TInt iconCount = iconList.Count(); - if( ( iconCount == 0 ) || - (( mimeType.Length() == 0 ) && ( width.Length() == 0 ) && - ( height.Length() == 0 ) && ( depth.Length() == 0 ))) - { - /* Match is found and the given application needs to be there - in the response with no optional icon element */ - ConstructFilteredResponseL( aAppIndex ); - } - else - { - for ( TInt k(0); k < iconCount; k++ ) - { - if ( IconLookUp( *iconList[k] )) - { - /* Match is found and the given application needs to be there - in the response with the icon element to be present */ - ConstructFilteredResponseL( aAppIndex ); - break; - } - } - } - OstTraceFunctionExit0( DUP1_CUPNPTMFILTEREDAPPLIST_ICONMATCHINGL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::ConstructFilteredResponseL -// Constructs the filtered soap response buffer for GetApplicationList action -// @param aAppIndex index the registered application -// @param aAppStore Reference to CUpnpRemotableAppStore object -// --------------------------------------------------------------------------------- -// -void CUpnpTmFilteredAppList::ConstructFilteredResponseL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTFILTEREDRESPONSEL_ENTRY ); - iTmServerImpl.ConstructLeadingSoapBufferL(aAppIndex); - const TDesC8& appDesc = iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).AppDescription(); - if ( ( iFilterInfo->AppDescription().Length() != KErrNone ) - && ( appDesc.Length() != KErrNone ) ) - { - // Appends the optional application desciption element - iTmServerImpl.AppendDataL(KStartNameDesc); - iTmServerImpl.AppendDataL(appDesc); - iTmServerImpl.AppendDataL(KEndNameDesc); - } - const TDesC8& mimeType = iFilterInfo->MimeType(); - const TDesC8& width = iFilterInfo->Width(); - const TDesC8& height = iFilterInfo->Height(); - const TDesC8& depth = iFilterInfo->Depth(); - if (( mimeType.Length() != KErrNone ) || ( width.Length() != KErrNone ) || - ( height.Length() != KErrNone ) || ( depth.Length() != KErrNone )) - { - // Even if any one of the matching optional child element of the icon element is present - // in the filter string,we will return the complete icon information related to that icon - const RPointerArray& iconList = - iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).IconList(); - TInt iconCount = iconList.Count(); - if ( iconCount > KErrNone ) - { - // Appends the optional icon element - iTmServerImpl.AppendDataL(KStartIconList); - for ( TInt i(0); i < iconCount; i++ ) - { - if ( IconLookUp( *iconList[i] )) - { - iTmServerImpl.SetRemotableAppIconInfoL( *iconList[i] ); - } - } - iTmServerImpl.AppendDataL(KEndIconList); - } - } - // Appends allowed profile ID list - if ( iFilterInfo->AllowedProfileIdList().Length() != KErrNone ) - { - iTmServerImpl.SetAllowedProfileIdListL(aAppIndex); - } - - // Appends the different associated terminal mode info elements - const TDesC8& filterAppCategory = iFilterInfo->AppCategory(); - const TDesC8& filterAppTrustLevel = iFilterInfo->AppTrustLevel(); - const TDesC8& filterContCategory = iFilterInfo->ContentCategory(); - const TDesC8& filterContentRules = iFilterInfo->ContentRules(); - const TDesC8& filterContTrustLevel = iFilterInfo->ContentTrustLevel(); - const TDesC8& filterAudioType = iFilterInfo->AudioType(); - - const RPointerArray& tmInfoElementList = - iTmServerImpl.iAppStore->FetchRemotableApp(aAppIndex).TmInfoElementList(); - /** - * Case 1. In case of matching child elements of remotingInfo ,all the child elements of the - * remotingInfo element are sent in the response as protocolID is a required element. - * Case 2. In case of matching child elements of appInfo,displayInfo or audioInfo ,if one or - * more of the optional child element is available in the filter string,then all - * the optional child elements for that info element will be sent in the response. - */ - for ( TInt j(0); j < tmInfoElementList.Count(); j++) - { - /** - * No checking for availabilty of child elements of remotingInfo is needed , because - * protocolID( child element of remotingInfo ) is required/must element in the response - * and as per the rule even if one child element is present in the filter string, - * all other optional child elements of their parent info element too will be sent. - */ - if ( ( tmInfoElementList[j]->TerminalModeInfoType() == KRemotingInfo ) || - ( ( tmInfoElementList[j]->TerminalModeInfoType() == KAppInfo ) && - (( filterAppCategory.Length() != KErrNone ) || (filterAppTrustLevel.Length() != KErrNone ))) || - ( ( tmInfoElementList[j]->TerminalModeInfoType() == KDisplayInfo ) && - (( filterContCategory.Length() != KErrNone ) || (filterContentRules.Length() != KErrNone ) || - (filterContTrustLevel.Length() != KErrNone ) )) || ( ( tmInfoElementList[j]->TerminalModeInfoType() == KAudioInfo ) - && ( filterAudioType.Length() != KErrNone ))) - { - // Called for each terminal mode element associated with the App - iTmServerImpl.SetTerminalModeInfoElementL( *tmInfoElementList[j] ); - } - } - // Appends resource status element for the app if it is available - if ( iFilterInfo->ResourceStatus().Length() != KErrNone ) - { - iTmServerImpl.SetResourceStatusL(aAppIndex); - } - // End of an application - iTmServerImpl.AppendDataL(KEndApp); - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_CONSTRUCTFILTEREDRESPONSEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::IconLookUp -// Performs the icon look up -// Checks if the requested icon and given icon matches -// @param aIcon Reference to the Terminal Mode Icon object -// @return Returns boolean value(true or false) -// --------------------------------------------------------------------------------- -// -TBool CUpnpTmFilteredAppList::IconLookUp( CUpnpTerminalModeIcon& aIcon ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_ICONLOOKUP_ENTRY ); - TBool matchFound(EFalse); - const TDesC8& filterMimeType = iFilterInfo->MimeType(); - const TDesC8& filterWidth = iFilterInfo->Width(); - const TDesC8& filterHeight = iFilterInfo->Height(); - const TDesC8& filterDepth = iFilterInfo->Depth(); - - // Check whether the icon is meant to be used only at launch time - TBuf8 widthBuf; - widthBuf.Num(aIcon.Width()); - TBuf8 heightBuf; - heightBuf.Num(aIcon.Height()); - TBuf8 depthBuf; - depthBuf.Num(aIcon.Depth()); - /* Check if the icon in provided in the input filter string, and if so - then does it match with the desired icon ( type and dimension ) */ - if ( (( filterMimeType.Length() == 0 ) ||( (aIcon.MimeType()).MatchC(filterMimeType) != KErrNotFound)) - && (( filterWidth.Length() == 0 ) ||( widthBuf.MatchC(filterWidth) != KErrNotFound)) - && (( filterHeight.Length() == 0 ) ||( heightBuf.MatchC(filterHeight) != KErrNotFound)) - && (( filterDepth.Length() == 0 ) ||( depthBuf.MatchC(filterDepth) != KErrNotFound))) - { - matchFound = ETrue; - } - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_ICONLOOKUP_EXIT ); - return matchFound; - } - -// --------------------------------------------------------------------------------- -// Method is used to check whether signature element is needed in the response -// to GetApplicationList action or not -// --------------------------------------------------------------------------------- -const TDesC8& CUpnpTmFilteredAppList::SignatureElement()const - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_GETSIGNATUREELEMENT_ENTRY ); - return iFilterInfo->Signature(); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmFilteredAppList::RemoveWhiteSpace -// Method is used to remove leading and trailing whitespaces from the descriptor's data -// @param aData Descriptor's data from which whitespaces have to be removed -// @return Returns the descriptor having no white spaces -// --------------------------------------------------------------------------------- -// -const TDesC8& CUpnpTmFilteredAppList::RemoveWhiteSpace( TPtrC8& aData ) - { - OstTraceFunctionEntry0( CUPNPTMFILTEREDAPPLIST_REMOVEWHITESPACE_ENTRY ); - // Removes the leading white spaces - TInt length = aData.Length(); - TInt i = 0; - TBool done = EFalse; - while( !done && i < length ) - { - TChar current = aData[i]; - done = !current.IsSpace(); - if( !done ) - ++i; - } - aData.Set(aData.Mid(i)); /* aData now does not have any white space character - ahead of its actual data */ - - // Removes the trailing white spaces - length = aData.Length(); - i = 0; - done = EFalse; - while( !done && i < length ) - { - TChar current = aData[(length-1) - i]; - done = !current.IsSpace(); - if( !done ) - ++i; - } - aData.Set(aData.Left(aData.Length() - i)); /* aData now does not have any white space character - following the actual data */ - OstTraceFunctionExit0( CUPNPTMFILTEREDAPPLIST_REMOVEWHITESPACE_EXIT ); - return aData; - } - -// End of File - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmiconmapping.cpp --- a/services/terminalmodeservice/src/upnptmiconmapping.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/** -* 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: CUpnpTmIconMapping class implementation. -* -*/ - -//Include Files - -#include "upnptmiconmapping.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmiconmappingTraces.h" -#endif - - -_LIT8(KSvgMimeType, "image/svg+xml"); - -// ================= MEMBER FUNCTIONS ============================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmIconMapping* CUpnpTmIconMapping::NewL( ) - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_NEWL_ENTRY ); - CUpnpTmIconMapping* self = new (ELeave) CUpnpTmIconMapping(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMICONMAPPING_NEWL_EXIT ); - return self; - } - - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::CUpnpTmIconMapping -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmIconMapping::CUpnpTmIconMapping( ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmIconMapping::ConstructL() - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_CONSTRUCTL_ENTRY ); - iFileUrlArray = new ( ELeave ) CDesC8ArrayFlat( KExpectedMaxIconParms ); - iFilePathArray = new ( ELeave ) CDesCArrayFlat( KExpectedMaxIconParms ); - OstTraceFunctionExit0( CUPNPTMICONMAPPING_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::~CUpnpTmIconMapping -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmIconMapping::~CUpnpTmIconMapping() - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_CUPNPTMICONMAPPING_ENTRY ); - if ( iFileUrlArray ) - { - iFileUrlArray->Reset(); - delete iFileUrlArray; - } - if ( iFilePathArray ) - { - iFilePathArray->Reset(); - delete iFilePathArray; - } - iWidthArray.Close(); - iHeightArray.Close(); - OstTraceFunctionExit0( CUPNPTMICONMAPPING_CUPNPTMICONMAPPING_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::AddIconFileInfoL -// Method is used to store information about each application icon which can be -// used to fetch iconPath for the corresponding iconUrl and to determine whether -// conversion is needed or not. -// @param aUrl Iccon URL. -// @param aPath Icon Path. -// @param aWidth Width of the icon. -// @param aHeight Height of the icon. -// ------------------------------------------------------------------------------------- -// -void CUpnpTmIconMapping::AddIconFileInfoL( const TDesC8& aUrl, const TDesC& aPath, - TInt aWidth, TInt aHeight ) - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_ADDICONFILEINFOL_ENTRY ); - iFileUrlArray->AppendL( aUrl ); - iFilePathArray->AppendL( aPath ); - iWidthArray.AppendL( aWidth ); - iHeightArray.AppendL( aHeight ); - OstTraceFunctionExit0( CUPNPTMICONMAPPING_ADDICONFILEINFOL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::GetSvgIconPath -// Method is used to fetch the equivalent icon path for the requested icon url -// @param aUrl iconUrl -// @param aSvgFilePath[out] iconPath -// @return Returns the position of the filepath in the array if found else -// returns KErrNotFound. -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmIconMapping::GetSvgIconPath( const TDesC8& aUrl,RBuf& aSvgFilePath ) - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_GETSVGICONPATH_ENTRY ); - TInt pos; - if ( iFileUrlArray->Find(aUrl,pos) == KErrNone ) - { - aSvgFilePath.Close(); - aSvgFilePath.Create((*iFilePathArray)[pos]); - } - else - { - // The requested file is not available - pos = KErrNotFound; - } - OstTraceFunctionExit0( CUPNPTMICONMAPPING_GETSVGICONPATH_EXIT ); - return pos; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmIconMapping::IsConversionNeeded -// Method is used to fetch the dimensions of the icon which needs to be served and -// also return the information whether conversion is needed for a particular icon. -// @param aIndex Index of the icon filepath -// @param aClientIconPref Reference to Client Icon Preference object. -// @param[out] aIconWidth Width of the icon which needs to be sent. -// @param[out] aIconHeight Height of the icon which needs to be sent. -// @return Returns the boolean value for conversion is needed(true) or not(false). -// --------------------------------------------------------------------------------- -// -TBool CUpnpTmIconMapping::IsConversionNeeded( TInt aIndex, const CUpnpTmClientIconPref& aClientIconPref, - TInt& aIconWidth, TInt& aIconHeight ) - { - OstTraceFunctionEntry0( CUPNPTMICONMAPPING_ISCONVERSIONNEEDED_ENTRY ); - ASSERT( ( aIndex >= 0 ) && ( aIndex < iWidthArray.Count()) ); - TBool isConversionNeeded(ETrue); - // Fetch the client's icon preferences - const TDesC8& mimeType = aClientIconPref.MimeType(); - TInt iconWidth = aClientIconPref.Width(); - TInt iconHeight = aClientIconPref.Height(); - OstTraceExt2( TRACE_NORMAL, DUP1_CUPNPTMICONMAPPING_ISCONVERSIONNEEDED, "CUpnpTmIconMapping::IsConversionNeeded;iconWidth=%d;iconHeight=%d", iconWidth, iconHeight ); - - if ( mimeType.Compare(KSvgMimeType) == KErrNone ) - { - // Client supports "image/svg+xml" mime type icons - if ((( iconWidth == KErrNone ) || ( iconWidth == iWidthArray[aIndex] )) && - (( iconHeight == KErrNone ) || ( iconHeight == iHeightArray[aIndex] ))) - { - /* Either the client has not provided its dimension preferences or - preferred width and height also matches. So no conversion needed */ - isConversionNeeded = EFalse; - } - } - /* - * If the width and height fields are set properly then only use the client's - * specified icon dimensions else use the icon's original dimensions. - */ - if ( isConversionNeeded && iconWidth && iconHeight ) - { - // Use the dimensions specified by the client - aIconWidth = iconWidth; - aIconHeight = iconHeight; - } - else - { - // Use original dimensions - aIconWidth = iWidthArray[aIndex]; - aIconHeight = iHeightArray[aIndex]; - } - OstTraceExt2( TRACE_NORMAL, CUPNPTMICONMAPPING_ISCONVERSIONNEEDED, "CUpnpTmIconMapping::IsConversionNeeded;aIconWidth=%d;aIconHeight=%d", aIconWidth, aIconHeight ); - OstTraceFunctionExit0( CUPNPTMICONMAPPING_ISCONVERSIONNEEDED_EXIT ); - return isConversionNeeded; - } diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptminfoelement.cpp --- a/services/terminalmodeservice/src/upnptminfoelement.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/** -* 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: CUpnpTmInfoElement class implementation. -* -*/ - -// Include Files -#include "upnptminfoelement.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptminfoelementTraces.h" -#endif - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmInfoElement* CUpnpTmInfoElement::NewL( TTerminalModeInfoType aTerminalModeInfoType ) - { - OstTraceFunctionEntry0( CUPNPTMINFOELEMENT_NEWL_ENTRY ); - CUpnpTmInfoElement* self = new (ELeave) CUpnpTmInfoElement(); - CleanupStack::PushL(self); - self->ConstructL( aTerminalModeInfoType ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMINFOELEMENT_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::CUpnpTmInfoElement -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmInfoElement::CUpnpTmInfoElement( ) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::ConstructL -// Symbian 2nd phase constructor can leave. -// @param aTerminalModeInfoType Type of info element. Enum value. -// @see TTerminalModeInfoType enumeration -// --------------------------------------------------------------------------------- -// -void CUpnpTmInfoElement::ConstructL( TTerminalModeInfoType aTerminalModeInfoType ) - { - OstTraceFunctionEntry0( CUPNPTMINFOELEMENT_CONSTRUCTL_ENTRY ); - switch( aTerminalModeInfoType ) - { - case ERemotingInfo: - { - iInfoTypeBuffer = KRemotingInfo().AllocL(); - } - break; - case EAppInfo: - { - iInfoTypeBuffer = KAppInfo().AllocL(); - } - break; - case EDisplayInfo: - { - iInfoTypeBuffer = KDisplayInfo().AllocL(); - } - break; - case EAudioInfo: - { - iInfoTypeBuffer = KAudioInfo().AllocL(); - } - break; - default: - { - // Undefined. Should not come here at all. - User::Leave(KErrArgument); - } - break; - } - OstTraceFunctionExit0( CUPNPTMINFOELEMENT_CONSTRUCTL_EXIT ); - } - -// ------------------------------------------------------------------------------------------ -// CUpnpTmInfoElement::~CUpnpTmInfoElement -// Destructor -// ------------------------------------------------------------------------------------------ -// -CUpnpTmInfoElement::~CUpnpTmInfoElement() - { - OstTraceFunctionEntry0( CUPNPTMINFOELEMENT_CUPNPTMINFOELEMENT_ENTRY ); - // Cleans up the arrays - for ( TInt i(0); i < iInfoElementNameArray.Count(); i++ ) - { - iInfoElementNameArray[i].Close(); - } - for ( TInt i(0); i < iInfoElementValueArray.Count(); i++ ) - { - iInfoElementValueArray[i].Close(); - } - iInfoElementNameArray.Close(); - iInfoElementValueArray.Close(); - delete iInfoTypeBuffer; - OstTraceFunctionExit0( CUPNPTMINFOELEMENT_CUPNPTMINFOELEMENT_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::AddTmInfoElementL -// Method is used to add key-value pair -// @param aName Name of the key -// @param aValue value for the key -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmInfoElement::AddTmInfoElementL( const TDesC8& aName, - const TDesC8& aValue ) - { - OstTraceFunctionEntry0( CUPNPTMINFOELEMENT_ADDTMINFOELEMENTL_ENTRY ); - iElementName.CreateL(aName); - iElementValue.CreateL(aValue); - iInfoElementNameArray.AppendL(iElementName); - iInfoElementValueArray.AppendL(iElementValue); - OstTraceFunctionExit0( CUPNPTMINFOELEMENT_ADDTMINFOELEMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::GetTmInfoElement -// Method is used to fetch the key-value pair for the index provided in the input. -// @param aInfoElementName[out] Name of the key -// @param aInfoElementValue[out] Value for the key -// @param aIndex Index of the array for which key-value pair is needed -// --------------------------------------------------------------------------------- -// -void CUpnpTmInfoElement::GetTmInfoElementL( RBuf8& aInfoElementName, - RBuf8& aInfoElementValue, TInt aIndex )const - { - OstTraceFunctionEntry0( CUPNPTMINFOELEMENT_GETTMINFOELEMENTLIST_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMINFOELEMENT_GETTMINFOELEMENTL, "CUpnpTmInfoElement::GetTmInfoElementL;aIndex=%d", aIndex ); - if ( ( aIndex < KErrNone ) || ( aIndex >= iInfoElementNameArray.Count()) ) - { - // Leaves in case of invalid array index - User::Leave(KErrArgument); - } - aInfoElementName.Close(); - aInfoElementName.CreateL(iInfoElementNameArray[aIndex]); - aInfoElementValue.Close(); - aInfoElementValue.CreateL(iInfoElementValueArray[aIndex]); - OstTraceFunctionExit0( CUPNPTMINFOELEMENT_GETTMINFOELEMENTLIST_EXIT ); - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserver.cpp --- a/services/terminalmodeservice/src/upnptmserver.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -/** -* 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: CUpnpTmServer class implementation. -* -*/ - -// Include Files -#include "upnptmserver.h" -#include "upnptmserverimpl.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmserverTraces.h" -#endif - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmServer::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpTmServer* CUpnpTmServer::NewL( CUpnpTmServerDeviceInfo& aDeviceInfo, - MUpnpTmServerObserver& aUpnpTmServerObserver) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_NEWL_ENTRY ); - CUpnpTmServer* self = new (ELeave) CUpnpTmServer(); - CleanupStack::PushL(self); - self->ConstructL( aDeviceInfo, aUpnpTmServerObserver); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMSERVER_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServer::CUpnpTmServer -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmServer::CUpnpTmServer() - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServer::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServer::ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo, MUpnpTmServerObserver& aUpnpTmServerObserver) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_CONSTRUCTL_ENTRY ); - iTmServerImpl = CUpnpTmServerImpl::NewL( aDeviceInfo, aUpnpTmServerObserver); - OstTraceFunctionExit0( CUPNPTMSERVER_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Default Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmServer::~CUpnpTmServer() - { - OstTraceFunctionEntry0( CUPNPTMSERVER_CUPNPTMSERVER_ENTRY ); - delete iTmServerImpl; - OstTraceFunctionExit0( CUPNPTMSERVER_CUPNPTMSERVER_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method is used by Automotive Server to register its applications one by one. -// @param aRemotableApp Pointer to Remotable app object. Ownership is transferred. -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::RegisterAppL( CUpnpRemotableApp* aRemotableApp ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_REGISTERAPPL_ENTRY ); - iTmServerImpl->RegisterAppL(aRemotableApp); - OstTraceFunctionExit0( CUPNPTMSERVER_REGISTERAPPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method is used by Automotive Server to register all the desired applications -// in one go. -// @param aRemotableAppList Pointer Array of remotable app objects. -// Ownership of all the objects is passed. -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::RegisterAppsL(const RPointerArray& aRemotableAppList) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_REGISTERAPPSL_ENTRY ); - iTmServerImpl->RegisterAppsL(aRemotableAppList); - OstTraceFunctionExit0( CUPNPTMSERVER_REGISTERAPPSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method is used by Automotive Server to un-register its applications which have -// already been registeredone by one -// @param aAppId App ID of the application -// --------------------------------------------------------------------------------- -// -EXPORT_C TInt CUpnpTmServer::UnRegisterApp( TUint aAppId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_UNREGISTERAPP_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVER_UNREGISTERAPP, "CUpnpTmServer::UnRegisterApp;aAppId=%u", aAppId ); - return iTmServerImpl->UnRegisterApp( aAppId ); - } - -// --------------------------------------------------------------------------------- -// Method is used to un-register multiple applications in one go. -// @param aAppIdArray Array of app IDs -// --------------------------------------------------------------------------------- -// -EXPORT_C TInt CUpnpTmServer::UnRegisterApps( const RArray& aAppIdArray ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_UNREGISTERAPPS_ENTRY ); - return iTmServerImpl->UnRegisterApps( aAppIdArray ); - } - -// --------------------------------------------------------------------------------- -// Method to set the XML signature of the registered apps. -// @param aSignature XML formatted signature buffer -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::SetXmlSignatureL( const TDesC8& aSignature ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_SETXMLSIGNATUREL_ENTRY ); - iTmServerImpl->SetXmlSignatureL( aSignature ); - OstTraceFunctionExit0( CUPNPTMSERVER_SETXMLSIGNATUREL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method is used by Automotive Server to start publishing the remote ui server -// device and its service -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::StartL() - { - OstTraceFunctionEntry0( CUPNPTMSERVER_STARTL_ENTRY ); - iTmServerImpl->StartDeviceL(); - OstTraceFunctionExit0( CUPNPTMSERVER_STARTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method is used by Automotive Server to stop publishing the remote ui server -// device and its service -// ------------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::StopL() - { - OstTraceFunctionEntry0( CUPNPTMSERVER_STOPL_ENTRY ); - iTmServerImpl->StopDeviceL(); - OstTraceFunctionExit0( CUPNPTMSERVER_STOPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method to fetch the Remotable App object by passing the App ID of the same. -// Method is invoked by the Automotive Server when it wishes to modify any of the -// existing remotable app. -// @param aAppId APP ID of the application for which caller wants the access. -// @param aErr[out] Error code. KErrNone if app is found otherwise KErrNotFound -// Returns reference to the remotable app object. -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpRemotableApp& CUpnpTmServer::GetRemotableApp( TUint aAppId, TInt& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_REMOTABLEAPP_ENTRY ); - OstTrace1( TRACE_NORMAL, DUP1_CUPNPTMSERVER_GETREMOTABLEAPP, "CUpnpTmServer::GetRemotableApp;aAppId =%d", aAppId ); - return iTmServerImpl->GetRemotableApp( aAppId, aErr ); - } - -// --------------------------------------------------------------------------------- -// Method through which the notification of applications whose status -// has changed is sent across to the Car Kit through the Service -// @param aUpdatedAppIdList Array of app IDs which have undergone some -// kind of change[ added, delete or modified ] -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::UpdateAppStatusL( const RArray& aUpdatedAppIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_UPDATEAPPSTATUSL_ENTRY ); - iTmServerImpl->UpdateAppStatusL( aUpdatedAppIdList ); - OstTraceFunctionExit0( CUPNPTMSERVER_UPDATEAPPSTATUSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method through which the notification of applications whose entries -// in the application list have changed is sent across to the Car Kit -// through the Service -// @param aUpdatedAppIdList Array of app IDs which have undergone some -// kind of change[ added, delete or modified ] -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::UpdateAppListL( const RArray& aUpdatedAppIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_UPDATEAPPLISTL_ENTRY ); - iTmServerImpl->UpdateAppListL( aUpdatedAppIdList ); - OstTraceFunctionExit0( CUPNPTMSERVER_UPDATEAPPLISTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// Method through which the notification of profileIDs which are not used -// used by any Terminal Mode service hosted on the Terminal Mode device -// is sent across to the Car Kit through the Service -// @param aUnusedProfileIdList Array of profile IDs which have undergone some -// kind of change -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServer::UpdateUnusedProfileIdsL( const RArray& aUnusedProfileIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVER_UPDATEUNUSEDPROFILEIDSL_ENTRY ); - iTmServerImpl->UpdateUnusedProfileIdsL( aUnusedProfileIdList ); - OstTraceFunctionExit0( CUPNPTMSERVER_UPDATEUNUSEDPROFILEIDSL_EXIT ); - } diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserverdescriptionprovider.cpp --- a/services/terminalmodeservice/src/upnptmserverdescriptionprovider.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/** -* 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: CUpnpTmServerDescriptionProvider class implementation. -* -*/ - -#include "upnptmserverdescriptionprovider.h" -#include -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmserverdescriptionproviderTraces.h" -#endif - - -_LIT(KPublic, "public\\"); -_LIT(KIconPath, "icon"); - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::NewL -// -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDescriptionProvider* CUpnpTmServerDescriptionProvider::NewL() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_NEWL_ENTRY ); - CUpnpTmServerDescriptionProvider* self = new (ELeave) CUpnpTmServerDescriptionProvider(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMSERVERDESCRIPTIONPROVIDER_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::CUpnpTmServerDescriptionProvider -// -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDescriptionProvider::CUpnpTmServerDescriptionProvider() - { - // No implementation required - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::~CUpnpTmServerDescriptionProvider -// -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDescriptionProvider::~CUpnpTmServerDescriptionProvider() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_CUPNPTMSERVERDESCRIPTIONPROVIDER_ENTRY ); - iFs.Close(); - OstTraceFunctionExit0( CUPNPTMSERVERDESCRIPTIONPROVIDER_CUPNPTMSERVERDESCRIPTIONPROVIDER_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::ConstructL -// -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDescriptionProvider::ConstructL() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_CONSTRUCTL_ENTRY ); - User::LeaveIfError( iFs.Connect() ); - OstTraceFunctionExit0( CUPNPTMSERVERDESCRIPTIONPROVIDER_CONSTRUCTL_EXIT ); - } - - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::OnDeviceDescription -// -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerDescriptionProvider::OnDeviceDescription( - CUpnpDeviceDescriptionRequest& aRequest ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONDEVICEDESCRIPTION_ENTRY ); - return OnRequest( aRequest ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::OnServiceDescription -// -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerDescriptionProvider::OnServiceDescription( - CUpnpDeviceDescriptionRequest& aRequest ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONSERVICEDESCRIPTION_ENTRY ); - return OnRequest( aRequest ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::OnIcon -// -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerDescriptionProvider::OnIcon( CUpnpDeviceDescriptionRequest& aRequest ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONICON_ENTRY ); - return OnRequest( aRequest ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::GetFile -// -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerDescriptionProvider::GetFile( const TDesC8& /*aUri*/, RFile& aFile ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_GETFILE_ENTRY ); - return ( aFile.Open( iFs, iFilePath, EFileShareReadersOnly | EFileRead )); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::OnRequest -// -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerDescriptionProvider::OnRequest( CUpnpDeviceDescriptionRequest& aRequest ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONREQUEST_ENTRY ); - TPtrC8 fileName; - TInt error(KErrNone); - TPtrC8 urlPath = UpnpFileUtil::ExtractUrlPath( aRequest.Uri(), fileName, error ); - if( error == KErrNone) - { - TRAP( error, OnRequestL( urlPath,fileName ) ); - } - OstTraceFunctionExit0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONREQUEST_EXIT ); - return error; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDescriptionProvider::OnRequestL -// @param aUrlPath URL -// @param aFileName FileName -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDescriptionProvider::OnRequestL( const TDesC8& aUrlPath, - const TDesC8& aFileName ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONREQUESTL_ENTRY ); - // 8-bit to 16-bit conversion of URL path and file path - TBuf urlPath; - urlPath.Copy(aUrlPath); - TBuf fileName; - fileName.Copy(aFileName); - - // Fetches the private directory - User::LeaveIfError( iFs.PrivatePath( iFilePath ) ); - iFilePath.Append(KPublic()); - /** - * Appends the filename to the file path. - * 1. In case of icon file, it first appends icon directory and then appends the filename. - * 2. In case of device and service xml files, it merely appends filename to the file path. - */ - if ( urlPath.Find(KIconPath()) != KErrNotFound ) - { - // The request is for icon file - iFilePath.Append(urlPath.Left(urlPath.Locate(KForwardSlash))); - iFilePath.Append(UpnpString::KDoubleBackSlash16()); - iFilePath.Append(KIconPath()); - } - else - { - iFilePath.Append(urlPath); - } - iFilePath.Append(UpnpString::KDoubleBackSlash16()); - // Appends filename to the file path. - iFilePath.Append(fileName); - OstTraceFunctionExit0( CUPNPTMSERVERDESCRIPTIONPROVIDER_ONREQUESTL_EXIT ); - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserverdevice.cpp --- a/services/terminalmodeservice/src/upnptmserverdevice.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/** -* 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 -#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 diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserverdeviceinfo.cpp --- a/services/terminalmodeservice/src/upnptmserverdeviceinfo.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/** -* 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: CUpnpTmServerDeviceInfo class implementation. -* -*/ - -// Include Files -#include "upnptmserverdeviceinfo.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmserverdeviceinfoTraces.h" -#endif - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::NewL -// Two-phased constructor. -// @param aIapId IAP ID. -// --------------------------------------------------------------------------------- -// -EXPORT_C CUpnpTmServerDeviceInfo* CUpnpTmServerDeviceInfo::NewL( TUint32 aIapId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_NEWL_ENTRY ); - CUpnpTmServerDeviceInfo* self = new (ELeave) CUpnpTmServerDeviceInfo( ); - CleanupStack::PushL(self); - self->ConstructL( aIapId ); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::CUpnpTmServerDeviceInfo -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDeviceInfo::CUpnpTmServerDeviceInfo( ):iDeviceInfo(NULL), - iBtAddr(NULL),iStartConnValue(EFalse) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::ConstructL -// Symbian 2nd phase constructor can leave. -// @param aIapId IAP ID. Leaves if the proper IAP ID is not set. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceInfo::ConstructL( TUint32 aIapId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_CONSTRUCTL_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERDEVICEINFO_CONSTRUCTL, "CUpnpTmServerDeviceInfo::ConstructL;aIapId=%d", aIapId ); - - if ( aIapId <= KErrNone ) - { - User::Leave( KErrArgument ); // Leaves in case of invalid IAP ID - } - iIapId = aIapId; - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::~CUpnpTmServerDeviceInfo -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDeviceInfo::~CUpnpTmServerDeviceInfo() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_CUPNPTMSERVERDEVICEINFO_ENTRY ); - delete iDeviceInfo; - delete iBtAddr; - iDeviceIconList.ResetAndDestroy(); - iDeviceIconList.Close(); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_CUPNPTMSERVERDEVICEINFO_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::SetDeviceInfoL -// Method is used to provide Nokia specific additional info about the device -// @param aDeviceInfo XML formatted buffer containg deviceInfo element. -// ------------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServerDeviceInfo::SetDeviceInfoL( const TDesC8& aDeviceInfo ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_SETDEVICEINFOL_ENTRY ); - delete iDeviceInfo; - iDeviceInfo = NULL; - iDeviceInfo = aDeviceInfo.AllocL(); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_SETDEVICEINFOL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::SetBtAddressL -// Method is used to set bluetooth MAC address of the device -// @param aBtAddress BT MAC address -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServerDeviceInfo::SetBtAddressL( const TDesC8& aBtAddress ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_SETBTADDRESSL_ENTRY ); - delete iBtAddr; - iBtAddr = NULL; - iBtAddr = aBtAddress.AllocL(); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_SETBTADDRESSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::AddDeviceIconL -// Method is used to provide device icon information. -// @param aDeviceIcon Pointer to the Terminal Mode Icon object. -// Ownership of the object is passed. -// --------------------------------------------------------------------------------- -// -EXPORT_C void CUpnpTmServerDeviceInfo::AddDeviceIconL( CUpnpTerminalModeIcon* aDeviceIcon ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEINFO_ADDDEVICEICONL_ENTRY ); - iDeviceIconList.AppendL(aDeviceIcon); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEINFO_ADDDEVICEICONL_EXIT ); - } - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserverdevicexmlparser.cpp --- a/services/terminalmodeservice/src/upnptmserverdevicexmlparser.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,505 +0,0 @@ -/** -* 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: CUpnpTmServerDeviceXmlParser class implementation. -* -*/ - -// System Includes -#include -#include - -// User Includes -#include "upnptmserverdevicexmlparser.h" -#include "upnpterminalmodeicon.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmserverdevicexmlparserTraces.h" -#endif - - -//Literals -_LIT8(KTextXml, "text/xml"); -_LIT8(KRootDeviceXmlLead, "10urn:schemas-upnp-org:device:TmServerDevice:1S60http://www.nokia.com"); -_LIT8(KRootDeviceXmlTrail,"urn:schemas-upnp-org:service:TmApplicationServer:1urn:upnp-org:serviceId:TmApplicationServer1/tmserverdevice1/tmapplicationserver1.xml/tmserverdevice1/tmapplicationserver1/control/tmserverdevice1/tmapplicationserver1/eventingurn:schemas-upnp-org:service:TmClientProfile:1" - "urn:upnp-org:serviceId:TmClientProfile1/tmserverdevice1/tmclientprofile1.xml/tmserverdevice1/tmclientprofile1/control/tmserverdevice1/tmclientprofile1/eventing"); -_LIT8(KAppServerSrvXml, "1 0 GetApplicationListAppListingFilterin A_ARG_TYPE_String ProfileIDin A_ARG_TYPE_ProfileID " - "AppListingoutA_ARG_TYPE_AppListLaunchApplicationAppIDinA_ARG_TYPE_AppIDProfileIDinA_ARG_TYPE_ProfileIDAppURI" - "outA_ARG_TYPE_URITerminateApplicationAppIDinA_ARG_TYPE_AppIDProfileIDinA_ARG_TYPE_ProfileIDTerminationResultout" - "A_ARG_TYPE_BoolGetApplicationStatusAppIDinA_ARG_TYPE_AppIDAppStatusoutA_ARG_TYPE_AppStatus" - "AppStatusUpdate stringAppListUpdate stringA_ARG_TYPE_AppStatus string A_ARG_TYPE_AppListstringA_ARG_TYPE_AppIDstring" - "A_ARG_TYPE_ProfileIDui40A_ARG_TYPE_URI uri A_ARG_TYPE_StringstringA_ARG_TYPE_Boolstringfalsefalse" - "true"); -_LIT8(KClientProfSrvXml, "1 0 GetMaxNumProfilesnumProfilesAllowedout MaxNumProfiles SetClientProfileprofileIDin" - "A_ARG_TYPE_ProfileIDclientProfileinA_ARG_TYPE_ClientProfileresultProfileoutA_ARG_TYPE_ClientProfileGetClientProfileprofileIDin" - "A_ARG_TYPE_ProfileIDclientProfileoutA_ARG_TYPE_ClientProfileUnusedProfileIDs stringA_ARG_TYPE_ClientProfile string" - "A_ARG_TYPE_ProfileIDui40MaxNumProfiles ui2 1 "); -_LIT8(KStartLine, "\n"); -_LIT8(KRootAttrb, " xmlns=\"urn:schemas-upnp-org:device-1-0\""); -_LIT8(KScpdUrl, "/tmserverdevice1/"); -_LIT8(KUpnpDeviceRoot, "root" ); -_LIT8(KStartIconList, "" ); -_LIT8(KEndIconList, "" ); -_LIT8(KStartIcon, "" ); -_LIT8(KEndIcon, "" ); -_LIT8(KStartMimeType, "" ); -_LIT8(KEndMimeType, "" ); -_LIT8(KStartWidth, "" ); -_LIT8(KEndWidth, "" ); -_LIT8(KStartHeight, "" ); -_LIT8(KEndHeight, "" ); -_LIT8(KStartDepth, "" ); -_LIT8(KEndDepth, "" ); -_LIT8(KStartUrl, "" ); -_LIT8(KEndUrl, "" ); -_LIT8(KPhoneManufacturer, "manufacturer" ); -_LIT8(KPhoneModel, "modelName" ); -_LIT8(KPhoneSerialNumber, "serialNumber" ); -_LIT8(KBtAddress, "btAddr" ); -_LIT8(KStartConnection, "startConnection" ); -_LIT8(KIconPath, "icon/"); -_LIT8(KConnTrue, "true"); -_LIT8(KConnFalse, "false"); -_LIT(KPublicDevicePath, "public\\TmServerDevice1\\"); -_LIT(KDeviceName, "TmServerDevice1.xml"); -_LIT(KAppServerSrvName, "TmApplicationServer1.xml"); -_LIT(KClientProfSrvName, "TmClientProfile1.xml"); -_LIT(KIconDirectory, "icon\\"); - - -// ============================ MEMBER FUNCTIONS =================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDeviceXmlParser* CUpnpTmServerDeviceXmlParser::NewL( CUpnpTmServerDeviceInfo& aDeviceInfo ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_NEWL_ENTRY ); - CUpnpTmServerDeviceXmlParser* self = new (ELeave) CUpnpTmServerDeviceXmlParser( aDeviceInfo ); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_NEWL_EXIT ); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::~CUpnpTmServerDeviceXmlParser -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDeviceXmlParser::~CUpnpTmServerDeviceXmlParser() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_CUPNPTMSERVERDEVICEXMLPARSER_ENTRY ); - DeleteDirectory(); - iPhone.Close(); - iEtelSrv.Close(); - delete iParser; - iAppServerSrvDescription.Close(); - iClientProfSrvDescription.Close(); - iReadBuf.Close(); - iDeviceDescription.Close(); - iDescFilePath.Close(); - iClientProfSrvFilePath.Close(); - iAppServerSrvFilePath.Close(); - iDescriptionUri.Close(); - iFs.Close(); - iDeviceDir.Close(); - iIconDirectory.Close(); - delete iFileMan; - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_CUPNPTMSERVERDEVICEXMLPARSER_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::DeleteDirectory -// Deletes device and service description files and device icon files related to -// Terminal Mode Service located in the private directory. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::DeleteDirectory() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_DELETEDIRECTORY_ENTRY ); - iFs.Delete(iDescFilePath); - iFs.Delete(iAppServerSrvFilePath); - iFs.Delete(iClientProfSrvFilePath); - iFileMan->RmDir(iIconDirectory); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_DELETEDIRECTORY_EXIT ); - } -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::CUpnpTmServerDeviceXmlParser -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmServerDeviceXmlParser::CUpnpTmServerDeviceXmlParser( CUpnpTmServerDeviceInfo& aDeviceInfo ) - :iDeviceInfo(aDeviceInfo) - { - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::ConstructL( ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_CONSTRUCTL_ENTRY ); - User::LeaveIfError(iEtelSrv.Connect()); - User::LeaveIfError(iEtelSrv.LoadPhoneModule( KMmTsyModuleName )); - User::LeaveIfError(iPhone.Open( iEtelSrv, KMmTsyPhoneName )); - TRequestStatus status; - iPhone.GetPhoneId(status, iPhoneId); - User::WaitForRequest(status); - User::LeaveIfError(iFs.Connect()); - iAppServerSrvDescription.CreateL( KAppServerSrvXml() ); - iClientProfSrvDescription.CreateL( KClientProfSrvXml() ); - iParser = CParser::NewL(KTextXml(), *this); - iParser->EnableFeature(ESendFullContentInOneChunk); - iReadBuf.CreateMaxL(KBufSize); - iDeviceDescription.CreateMaxL(KBufSize); - iDeviceDescription.SetLength(KErrNone); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnStartDocumentL -// Called when parser hits the start of the document -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnStartDocumentL(const RDocumentParameters& /*aDocParam*/, - TInt aErrorCode ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTDOCUMENTL_ENTRY ); - User::LeaveIfError(aErrorCode); - - TBuf tmpBuf(iDeviceDir); - tmpBuf.Append(KDeviceName()); - iDescFilePath.CreateL(tmpBuf); - tmpBuf.Zero(); - - // Create TmAppServer service xml - tmpBuf.Copy(iDeviceDir); - tmpBuf.Append(KAppServerSrvName()); - RFile appServerSrvFile; - CleanupClosePushL(appServerSrvFile); - TInt err(KErrNone); - err = appServerSrvFile.Create(iFs, tmpBuf, EFileWrite); - if ( err == KErrAlreadyExists ) - { - User::LeaveIfError(appServerSrvFile.Open(iFs, tmpBuf, EFileWrite)); - } - else - { - User::LeaveIfError(err); - } - User::LeaveIfError(appServerSrvFile.Write(iAppServerSrvDescription)); - CleanupStack::PopAndDestroy( &appServerSrvFile ); - iAppServerSrvFilePath.CreateL(tmpBuf); - tmpBuf.Zero(); - - // Create TmClientProfile service xml - tmpBuf.Copy(iDeviceDir); - tmpBuf.Append(KClientProfSrvName()); - RFile clientProfSrvFile; - CleanupClosePushL(clientProfSrvFile); - err = clientProfSrvFile.Create(iFs, tmpBuf, EFileWrite); - if ( err == KErrAlreadyExists ) - { - User::LeaveIfError(clientProfSrvFile.Open(iFs, tmpBuf, EFileWrite)); - } - else - { - User::LeaveIfError(err); - } - User::LeaveIfError(clientProfSrvFile.Write(iClientProfSrvDescription)); - CleanupStack::PopAndDestroy( &clientProfSrvFile ); - iClientProfSrvFilePath.CreateL(tmpBuf); - - iDeviceDescription.Append(KStartLine()); - iDescriptionUri.CreateMaxL(UpnpString::KDefaultStringLength); - iDescriptionUri.SetLength(KErrNone); - iDescriptionUri.Append(KScpdUrl()); - iDescriptionUri.Append(KDeviceName()); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTDOCUMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnEndDocumentL -// Called when parser hits the end of the document -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnEndDocumentL(TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL_ENTRY ); - User::LeaveIfError(aErrorCode); - - RFile deviceFile; - CleanupClosePushL(deviceFile); - TInt err = deviceFile.Create(iFs, iDescFilePath, EFileWrite); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL, "CUpnpTmServerDeviceXmlParser::OnEndDocumentL;err=%d", err ); - if ( err == KErrAlreadyExists ) - { - User::LeaveIfError(deviceFile.Open(iFs, iDescFilePath, EFileWrite)); - } - else - { - User::LeaveIfError(err); - } - User::LeaveIfError(deviceFile.Write(iDeviceDescription)); - CleanupStack::PopAndDestroy(&deviceFile); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDDOCUMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnStartElementL -// Called when parser hits the opening tag -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnStartElementL(const RTagInfo& aElement, const RAttributeArray& /*aAttributes*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTELEMENTL_ENTRY ); - User::LeaveIfError(aErrorCode); - - iDeviceDescription.Append(UpnpCD::KKorp); - iDeviceDescription.Append(aElement.LocalName().DesC()); - - if(aElement.LocalName().DesC().Compare(KUpnpDeviceRoot) == 0) - { - iDeviceDescription.Append(KRootAttrb()); - } - iDeviceDescription.Append(UpnpCD::KProk); - - if(aElement.LocalName().DesC().Compare(KPhoneManufacturer) == 0) - { - iDeviceDescription.Append(iPhoneId.iManufacturer); - } - else if(aElement.LocalName().DesC().Compare(KPhoneModel) == 0) - { - iDeviceDescription.Append(iPhoneId.iModel); - } - else if(aElement.LocalName().DesC().Compare(KPhoneSerialNumber) == 0) - { - iDeviceDescription.Append(iPhoneId.iSerialNumber); - } - else if(aElement.LocalName().DesC().Compare(KBtAddress) == 0) - { - iDeviceDescription.Append(iDeviceInfo.BtAddress()); - } - else if(aElement.LocalName().DesC().Compare(KStartConnection) == 0) - { - if ( iDeviceInfo.StartConn() ) - { - iDeviceDescription.Append(KConnTrue); - } - else - { - iDeviceDescription.Append(KConnFalse); - } - } - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTELEMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnEndElementL -// Called when parser hits the closing tag -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnEndElementL( const RTagInfo& aElement, TInt aErrorCode ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDELEMENTL_ENTRY ); - User::LeaveIfError(aErrorCode); - - iDeviceDescription.Append( UpnpCD::KKorp ); - iDeviceDescription.Append( UpnpString::KSlash ); - iDeviceDescription.Append( aElement.LocalName().DesC() ); - iDeviceDescription.Append( UpnpCD::KProk ); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDELEMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnContentL -// Provides the content/value of the element/tag -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnContentL( const TDesC8& aBytes, TInt aErrorCode ) - { - User::LeaveIfError(aErrorCode); - iDeviceDescription.Append(aBytes); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::StartL -// Method which inputs xml formatted buffer content to the XML Parser -// and invokes parsing -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::StartL() - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_STARTL_ENTRY ); - TDriveNumber drive = RFs::GetSystemDrive(); //Find system's drive - TBuf privatePath; - TInt err = iFs.PrivatePath(privatePath); //Find the application's private path - // a) If the Private Path is not found (for whatever reasons), - // Create a private path in the System Drive - if( err == KErrNotFound ) - { - User::LeaveIfError( iFs.CreatePrivatePath(drive) ); - } - // b) If Private Path is found but is a read-only or non-persistent drive - // Create a private path in the system drive else use it - else if( err == KErrNone ) - { - TDriveInfo driveInfo; - User::LeaveIfError( iFs.Drive(driveInfo)); - TUint driveAttr = driveInfo.iDriveAtt; - if ( driveAttr == KDriveAttRom ) - { - User::LeaveIfError( iFs.CreatePrivatePath(drive) ); - } - } - else - { - OstTrace1( TRACE_ERROR, CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); - User::Leave(err); - } - privatePath.Append(KPublicDevicePath()); - err = iFs.MkDirAll(privatePath); - if( err && err != KErrAlreadyExists ) - { - OstTrace1( TRACE_ERROR, DUP1_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); - User::LeaveIfError(err); - } - iDeviceDir.CreateL(privatePath); - RBuf8 rootDeviceBuf; - CleanupClosePushL(rootDeviceBuf); - rootDeviceBuf.CreateL(KBufSize); - rootDeviceBuf.Append(KRootDeviceXmlLead()); - // Appends the device icon list to the device xml buffer - const RPointerArray& deviceList = iDeviceInfo.DeviceIconList(); - TInt iconCount = deviceList.Count(); - if ( iconCount > KErrNone ) - { - privatePath.Append(KIconDirectory()); - err = iFs.MkDir(privatePath); // Creates icon directory - if( err && err != KErrAlreadyExists ) - { - OstTrace1( TRACE_ERROR, DUP2_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;err=%d", err ); - User::LeaveIfError(err); - } - iIconDirectory.CreateL(privatePath); - OstTrace1( TRACE_ERROR, DUP3_CUPNPTMSERVERDEVICEXMLPARSER_STARTL, "CUpnpTmServerDeviceXmlParser::StartL;iconCount=%d", iconCount ); - rootDeviceBuf.Append(KStartIconList); - for ( TInt i(0); i < iconCount; i++ ) - { - rootDeviceBuf.Append(KStartIcon); - rootDeviceBuf.Append(KStartMimeType); - rootDeviceBuf.Append(deviceList[i]->MimeType()); - rootDeviceBuf.Append(KEndMimeType); - rootDeviceBuf.Append(KStartWidth); - rootDeviceBuf.AppendNum(deviceList[i]->Width()); - rootDeviceBuf.Append(KEndWidth); - rootDeviceBuf.Append(KStartHeight); - rootDeviceBuf.AppendNum(deviceList[i]->Height()); - rootDeviceBuf.Append(KEndHeight); - rootDeviceBuf.Append(KStartDepth); - rootDeviceBuf.AppendNum(deviceList[i]->Depth()); - rootDeviceBuf.Append(KEndDepth); - rootDeviceBuf.Append(KStartUrl); - - TBuf8 iconBuf; - const TDesC& fileName = deviceList[i]->IconFilename(); - iconBuf.Copy(fileName); - TBuf8 iconRelativeUrl(KScpdUrl()); - // Extracts the actual input filepath and creates the relative url for the icon - // to be provided in the device xml file - iconRelativeUrl.Append(KIconPath()); - // Extracts only filename and appends the same to url - iconRelativeUrl.Append(iconBuf.Mid((iconBuf.LocateReverse(KDirectorySeparator))+1)); - rootDeviceBuf.Append(iconRelativeUrl); - delete iFileMan; - iFileMan = NULL; - iFileMan = CFileMan::NewL(iFs) ; - // copies icon files to the private device directory - User::LeaveIfError(iFileMan->Copy(fileName,iIconDirectory)); - rootDeviceBuf.Append(KEndUrl); - rootDeviceBuf.Append(KEndIcon); - } - rootDeviceBuf.Append(KEndIconList); - } - rootDeviceBuf.Append( iDeviceInfo.DeviceInfo()); - rootDeviceBuf.Append( KRootDeviceXmlTrail() ); - - ParseL(*iParser, rootDeviceBuf ); - CleanupStack::PopAndDestroy(&rootDeviceBuf); - - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_STARTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnStartPrefixMappingL -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnStartPrefixMappingL(const RString& /*aPrefix*/, const RString& /*aUri*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTPREFIXMAPPINGL_ENTRY ); - User::LeaveIfError(aErrorCode); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSTARTPREFIXMAPPINGL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnEndPrefixMappingL -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnEndPrefixMappingL(const RString& /*aPrefix*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDPREFIXMAPPINGL_ENTRY ); - User::LeaveIfError(aErrorCode); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONENDPREFIXMAPPINGL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnIgnorableWhiteSpaceL -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnIgnorableWhiteSpaceL(const TDesC8& /*aBytes*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONIGNORABLEWHITESPACEL_ENTRY ); - User::LeaveIfError(aErrorCode); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONIGNORABLEWHITESPACEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnSkippedEntityL -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnSkippedEntityL(const RString& /*aName*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONSKIPPEDENTITYL_ENTRY ); - User::LeaveIfError(aErrorCode); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONSKIPPEDENTITYL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceXmlParser::OnProcessingInstructionL -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerDeviceXmlParser::OnProcessingInstructionL(const TDesC8& /*aTarget*/, const TDesC8& /*aData*/, TInt aErrorCode) - { - OstTraceFunctionEntry0( CUPNPTMSERVERDEVICEXMLPARSER_ONPROCESSINGINSTRUCTIONL_ENTRY ); - User::LeaveIfError(aErrorCode); - OstTraceFunctionExit0( CUPNPTMSERVERDEVICEXMLPARSER_ONPROCESSINGINSTRUCTIONL_EXIT ); - } - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/src/upnptmserverimpl.cpp --- a/services/terminalmodeservice/src/upnptmserverimpl.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1055 +0,0 @@ -/** -* 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: CUpnpTmServerImpl class implementation. -* -*/ - -// Includes -#include "upnptmserverimpl.h" -#include "upnpiconfileservetransaction.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "upnptmserverimplTraces.h" -#endif - - -//Literals -_LIT8(KAppListStart, "<appList>"); -_LIT8(KAppListEnd, "</appList>"); -_LIT8(KAppIdStart, "<appID>"); -_LIT8(KAppIdEnd, "</appID>"); -_LIT8(KNameStart, "<name>"); -_LIT8(KNameEnd, "</name>"); -_LIT8(KIconStart, "<icon>"); -_LIT8(KIconEnd, "</icon>"); -_LIT8(KMimeTypeStart, "<mimetype>"); -_LIT8(KMimeTypeEnd, "</mimetype>"); -_LIT8(KWidthStart, "<width>"); -_LIT8(KWidthEnd, "</width>"); -_LIT8(KHeightStart, "<height>"); -_LIT8(KHeightEnd, "</height>"); -_LIT8(KDepthStart, "<depth>"); -_LIT8(KDepthEnd, "</depth>"); -_LIT8(KUrlStart, "<url>"); -_LIT8(KUrlEnd, "</url>"); -_LIT8(KAllowedProfileIdsStart, "<allowedProfileIDs>"); -_LIT8(KAllowedProfileIdsEnd, "</allowedProfileIDs>"); -_LIT8(KResourceStatusStart, "<resourceStatus>"); -_LIT8(KResourceStatusEnd, "</resourceStatus>"); -_LIT8(KAppStatusListStart, "<appStatusList>"); -_LIT8(KAppStatusListEnd, "</appStatusList>"); -_LIT8(KAppStatusStart, "<appStatus>"); -_LIT8(KAppStatusEnd, "</appStatus>"); -_LIT8(KStatusStart, "<status>"); -_LIT8(KStatusEnd, "</status>"); -_LIT8(KProfileIdStart, "<profileID>"); -_LIT8(KProfileIdEnd, "</profileID>"); -_LIT8(KStatusTypeStart, "<statusType>"); -_LIT8(KStatusTypeEnd, "</statusType>"); -_LIT8(KStartTagOpenBracket, "<"); -_LIT8(KEndTagOpenBracket, "</"); -_LIT8(KCloseBracket, ">"); - - -// ================= MEMBER FUNCTIONS ============================================== - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::NewL -// Two-phased constructor. -// --------------------------------------------------------------------------------- -// -CUpnpTmServerImpl* CUpnpTmServerImpl::NewL( CUpnpTmServerDeviceInfo& aDeviceInfo, - MUpnpTmServerObserver& aTmServerObserver) - { - CUpnpTmServerImpl* self = new (ELeave) CUpnpTmServerImpl( aTmServerObserver ); - CleanupStack::PushL(self); - self->ConstructL( aDeviceInfo ); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::CUpnpTmServerImpl -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------------- -// -CUpnpTmServerImpl::CUpnpTmServerImpl( MUpnpTmServerObserver& aTmServerObserver ) - :iTmServerObserver(aTmServerObserver) - { - - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CONSTRUCTL_ENTRY ); - iIapSetting = CUpnpSettings::NewL( KCRUidUPnPStack ); - /** - * Retrieve the IAP ID which has been set by DLNA and store it so that - * it can be reverted back to the same when Automotive Server has stopped - * making use of TM Service. - */ - iIapId = CUpnpSettings::GetIapL(); - //Fetch the IAP ID set by the Automotive Server - TInt iapId = aDeviceInfo.IapId(); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_CONSTRUCTL, "CUpnpTmServerImpl::ConstructL;iapId=%d", iapId ); - // writes the iap id to the cenrep - User::LeaveIfError( iIapSetting->Set( CUpnpSettings::KUPnPStackIapId, iapId ) ); - iTmServerDevice = CUpnpTmServerDevice::NewL( aDeviceInfo, *this ); - iAppStore = CUpnpRemotableAppStore::NewL(); - iIconMapping = CUpnpTmIconMapping::NewL(); - User::LeaveIfError( iIconFileSession.Connect() ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CONSTRUCTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::~CUpnpTmServerImpl -// Destructor -// --------------------------------------------------------------------------------- -// -CUpnpTmServerImpl::~CUpnpTmServerImpl() - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CUPNPTMSERVERIMPL_ENTRY ); - //Restore the IAP ID for DLNA use - RestoreIap(); - delete iIapSetting; - delete iFilteredAppList; - iIconFileSession.Close(); - delete iAppStore; - delete iIconMapping; - iXmSignature.Close(); - iResponseBuf.Close(); - delete iTmServerDevice; - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CUPNPTMSERVERIMPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::RestoreIap -// Method is used to restore IAP ID which has been previously retreived so that -// DLNA continues to make use of it. -// This method is mainly provided to avoid codescanner tool error. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::RestoreIap() - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_RESTOREIAP_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_RESTOREIAP, "CUpnpTmServerImpl::RestoreIap;iIapId=%d", iIapId ); - iIapSetting->Set( CUpnpSettings::KUPnPStackIapId, iIapId ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_RESTOREIAP_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetApplicationListL -// Method to create soap repsonse for GetApplicationList action. -// It generates a list of applications, which can be launched and terminated remotely. -// @param aAppListFilter Application Listing Filter. This is an optional parameter -// used by the UPnP Control Point to limit the AppListing value to -// those applications which meet the filter parameters. -// @param aProfileId ProfileID of client profile whose parameter settings will be -// applied for generating the application list -// @param aErr[out] TerminalMode error code -// @return Returns soap response buffer -// --------------------------------------------------------------------------------- -// -const TDesC8& CUpnpTmServerImpl::GetApplicationListL( const TDesC8& aAppListFilter, - TUint aProfileId, TTerminalModeErrorCode& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETAPPLICATIONLISTL_ENTRY ); - iResponseBuf.Close(); - iResponseBuf.CreateL(KActionBufferLength); - aErr = iTmServerObserver.OnGetApplicationList( aProfileId ); - if ( aErr == ETerminalModeSuccess ) - { - // Check for availability of AppListingFilter input argument in the soap action - TInt filterStringFound = aAppListFilter.Find(Keq); - if ( filterStringFound != KErrNotFound ) - { - delete iFilteredAppList; - iFilteredAppList = NULL; - - // Constructs a filter object and parses the input filter string - iFilteredAppList = CUpnpTmFilteredAppList::NewL(*this); - iFilteredAppList->ParseAppFilterStringL( aAppListFilter, aErr ); - } - if ( aErr == ETerminalModeSuccess ) - { - iProfileId = aProfileId; // Stored for generating app icon path in the soap response - AppendDataL(KAppListStart); - for ( TInt i(0) ; i < iAppStore->AppIdArray().Count(); i++) - { - // There can be 2 conditions assoicated with this - // 1. AppListingFilter is "*" - // 2. AppListingFilter has some filter string set - const RArray& profileIdList = iAppStore->FetchRemotableApp(i).AllowedProfileIdList(); - if ( ( profileIdList.Find(aProfileId) != KErrNotFound ) || - ( profileIdList.Count() == KErrNone )) - { - - // If the provided profileID is allowed profileID for the app - if ( filterStringFound == KErrNotFound ) - { - // Constructs a non-filtered soap response - ConstructActionResponseBufferL(i); - } - else - { - // Constructs a filtered soap response - iFilteredAppList->ConstructFilteredGetAppListResponseL(i); - } - } - } - if ( ( filterStringFound == KErrNotFound ) || ( (iFilteredAppList->SignatureElement()).Length() != KErrNone )) - { - // Append the xml signature value to the response buffer if - // 1. Filter string contains the signature element - // 2. Filter value is '*' - AppendDataL(XmlSignature()); - } - AppendDataL(KAppListEnd); - } - } - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_GETAPPLICATIONLISTL_EXIT ); - return iResponseBuf; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::LaunchApp -// Method to create soap repsonse for LaunchApp action -// @param aAppId App ID of the application to be launched remotely -// @param aProfileId ProfileID of client profile -// @param aUrl[out] URI of the remote application where it is running -// @return Returns Terminal Mode error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::LaunchApp( TUint aAppId, TUint aProfileId, - RBuf8& aUrl ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_LAUNCHAPP_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_LAUNCHAPP, "CUpnpTmServerImpl::LaunchApp;aAppId=%d", aAppId ); - - TTerminalModeErrorCode err = AuthorizeApp(aAppId); - if ( err == ETerminalModeSuccess ) - { - // Launching of the app succeeded - err = iTmServerObserver.OnLaunchApp( aAppId,aUrl,aProfileId ); - } - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_LAUNCHAPP_EXIT ); - return err; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::TerminateApp -// Method to create soap repsonse for TerminateApp action -// @param aAppId App ID of the application to be terminated -// @param aProfileId ProfileID of client profile -// @return Returns Terminal Mode error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::TerminateApp( TUint aAppId, TUint aProfileId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_TERMINATEAPP_ENTRY ); - TTerminalModeErrorCode err = AuthorizeApp(aAppId); - if ( err == ETerminalModeSuccess ) - { - // Termination of the app succeeded - err = iTmServerObserver.OnTerminateApp( aAppId, aProfileId ); - } - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_TERMINATEAPP, "CUpnpTmServerImpl::TerminateApp;err=%d", err ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_TERMINATEAPP_EXIT ); - return err; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetAppStatusL -// Method to create soap repsonse for GetAppStatus action -// @param aAppIdBuffer Buffer containing the appID or the wildcard character -// @param aAppStatusResponse[out] soap response buffer -// @param aErr[out] Terminal Mode error code -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::GetAppStatusL( const TDesC8& aAppIdBuffer,RBuf8& aAppStatusResponse, - TTerminalModeErrorCode& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETAPPSTATUSL_ENTRY ); - RArray registeredAppIdArray; - CleanupClosePushL(registeredAppIdArray); - if ( aAppIdBuffer.Compare( KWildCard()) != KErrNone ) - { - // If the appID is not wildcard character(*) - TInt appIdInt(0); - TLex8 lex( aAppIdBuffer ); - lex.Val(appIdInt); // No need to check the return code as it has been verified earlier - aErr = AuthorizeApp( appIdInt ); - if ( aErr != ETerminalModeSuccess ) - { - CleanupStack::PopAndDestroy(®isteredAppIdArray); - OstTrace0( TRACE_ERROR, CUPNPTMSERVERIMPL_GETAPPSTATUSL, "CUpnpTmServerImpl::GetAppStatusL" ); - return; // return if the requested appID is non-existent or un-authorized - } - // add to the array for which get app status has to be retreived - registeredAppIdArray.AppendL(appIdInt); - } - else - { - // Fetch the list of registered apps from the App store - for ( TInt i(0); i < iAppStore->AppIdArray().Count(); i++ ) - { - registeredAppIdArray.AppendL(iAppStore->AppIdArray()[i]); - } - } - iResponseBuf.Close(); - iResponseBuf.CreateL(KActionBufferLength); - AppendDataL(KAppStatusListStart); - for ( TInt i(0); i < registeredAppIdArray.Count(); i++ ) - { - CreateGetAppStatusResponseL( registeredAppIdArray[i], aErr ); - if ( aErr != ETerminalModeSuccess ) - { - /* Should return an error code if it fails to retrieve the - status for even a single application */ - break; - } - } - AppendDataL(KAppStatusListEnd); - aAppStatusResponse.CreateL(iResponseBuf); - CleanupStack::PopAndDestroy(®isteredAppIdArray); - OstTraceFunctionExit0( DUP2_CUPNPTMSERVERIMPL_GETAPPSTATUSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::CreateGetAppStatusResponseL -// Helper method for GetApplicationStatus response buffer construction -// @param aAppId AppID -// @param aErr[out] Terminal Mode error code -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::CreateGetAppStatusResponseL( TUint aAppId,TTerminalModeErrorCode& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CREATEGETAPPSTATUSRESPONSEL_ENTRY ); - // Get the app statuses of all the requested apps one by one - TUint profileId; - RBuf8 statusType; - aErr = iTmServerObserver.OnGetAppStatus( aAppId, profileId, statusType); - if ( aErr == ETerminalModeSuccess ) - { - /* Append the status to the buffer only if the fetching of the actual status of the - application from the Automotive Server is successful ,else just return the error */ - CleanupClosePushL(statusType); - AppendDataL(KAppStatusStart); - AppendDataL(KAppIdStart); - AppendDataL(ConvertIntToDescriptor(aAppId)); - AppendDataL(KAppIdEnd); - AppendDataL(KStatusStart); - AppendDataL(KProfileIdStart); - AppendDataL(ConvertIntToDescriptor(profileId)); - AppendDataL(KProfileIdEnd); - AppendDataL(KStatusTypeStart); - AppendDataL(statusType); - AppendDataL(KStatusTypeEnd); - AppendDataL(KStatusEnd); - AppendDataL(KAppStatusEnd); - CleanupStack::Pop(&statusType); - } - statusType.Close(); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CREATEGETAPPSTATUSRESPONSEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetMaxNumProfiles -// Method is used to return the value of the state variable MaxNumProfiles, -// which denotes the maximum number of client profiles that are supported -// simultaneously by the TmClientProfile service. -// @param aNumMaxProfiles[out] Maximum number of client profiles that are supported -// @return Returns Terminal Mode error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::GetMaxNumProfiles( TUint& aNumMaxProfiles ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETMAXNUMPROFILES_ENTRY ); - return iTmServerObserver.OnGetMaxNumProfiles(aNumMaxProfiles); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetClientProfile -// Method to create soap repsonse for SetClientProfile action. -// Method allows the control point to register a client profile and -// notify the Terminal Mode device about its preferences, settings and capabilities. -// @param aProfileId The identifier of the profile record where the client -// profile settings must be stored -// @param aInputClientProfile[out] Profile information about Terminal Mode client and -// its capabilities which needs to be updated in the profile record -// @param aResultProfile[out] The updated client profile. -// @return Returns Terminal Mode error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::SetClientProfile( TUint aProfileId, - const TDesC8& aInputClientProfile, RBuf8& aResultProfile ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETCLIENTPROFILE_ENTRY ); - return iTmServerObserver.OnSetClientProfile( aProfileId, aInputClientProfile, - aResultProfile ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetClientProfile -// Method to create soap repsonse for GetClientProfile action. -// Method allows the control point to access the contents of a client profile stored -// in the Terminal Mode device. -// @param aProfileId The identifier of the profile record where the client -// profile settings must be stored -// @param aClientProfile[out] Client profile corresponding to the profileID input variable -// @return Returns Terminal Mode error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::GetClientProfile( TUint aProfileId, RBuf8& aClientProfile ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETCLIENTPROFILE_ENTRY ); - return iTmServerObserver.OnGetClientProfile( aProfileId,aClientProfile ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetIconInfoL -// Method to fetch the icon file associated with the particular application. -// @param aUrl Relative URL of the application icon to be retreived -// @param aResultTrans CUpnpHttpServerTransaction object -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::GetIconInfoL( const TDesC8& aUrl, CUpnpHttpServerTransaction*& aResultTrans ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETICONINFOL_ENTRY ); - RBuf svgFilePath; - // Fetch the original file path which has been mapped to the requesting file. - TInt fileIndex = iIconMapping->GetSvgIconPath( aUrl,svgFilePath ); - if ( fileIndex == KErrNotFound ) - { - // In case the requested icon file is not available, should return EHttpNotFound(404). - // Sets the file source as an empty descriptor. - aResultTrans = CUpnpIconFileServeTransaction::NewL( KNullDesC(), iIconFileSession ); - svgFilePath.Close(); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_GETICONINFOL_EXIT ); - return; - } - CleanupClosePushL(svgFilePath); - /* Extracts the profileID from the relative URL. - * The relative URL will be of the form ( // ) - */ - const TDesC8& urlWithoutLeadingSlash = aUrl.Mid((aUrl.Locate(KForwardSlash))+1); - TInt secondSlashPos = urlWithoutLeadingSlash.Locate(KForwardSlash); - User::LeaveIfError(secondSlashPos); - const TDesC8& profileIdBuf = urlWithoutLeadingSlash.Left(secondSlashPos); - // Converts descriptor to int - TLex8 lex( profileIdBuf ); - TUint profileIdInt(KErrNone); - lex.Val(profileIdInt); - // Fetch the reference to client icon preference object from AutomotiveServer - const CUpnpTmClientIconPref& clientIconPref = iTmServerObserver.GetClientIconPrefsL(profileIdInt); - - TInt servingIconWidth(KErrNone); - TInt servingIconHeight(KErrNone); - /* - * Checks whether the conversion of the icon file needed. - * If conversion is required, it also determines the dimension(width and height) - * of the serving file. - */ - TBool iconConversionNeeded = iIconMapping->IsConversionNeeded( fileIndex, clientIconPref, servingIconWidth,servingIconHeight ); - if ( iconConversionNeeded ) - { - // Icon file conversion is needed( svg to bmp ) - CUpnpSvgImageConverter* decoder = CUpnpSvgImageConverter::NewL( servingIconWidth, servingIconHeight ); - CleanupStack::PushL(decoder); - RBuf bitmapBuf; - CleanupClosePushL(bitmapBuf); - decoder->ConvertToBitmapL( svgFilePath, bitmapBuf ); // Method which in turn invokes the conversion - aResultTrans = CUpnpIconFileServeTransaction::NewL( bitmapBuf, iIconFileSession ); /* Sets the data source( file ) - which needs to be serverd*/ - CleanupStack::PopAndDestroy( 2,decoder); - } - else - { - // No icon file conversion needed ( svg icon is served ) - aResultTrans = CUpnpIconFileServeTransaction::NewL( svgFilePath, iIconFileSession ); - } - CleanupStack::PopAndDestroy(&svgFilePath); - OstTraceFunctionExit0( DUP1_CUPNPTMSERVERIMPL_GETICONINFOL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::StartDeviceL -// Method is used to start publishing the terminal mode server device and -// its services -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::StartDeviceL() - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_STARTDEVICEL_ENTRY ); - iTmServerDevice->StartTmServerDeviceL(); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_STARTDEVICEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::StopDeviceL -// Method is used to stop publishing the terminal mode server device and -// its services -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::StopDeviceL() - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_STOPDEVICEL_ENTRY ); - iTmServerDevice->StopTmServerDeviceL(); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_STOPDEVICEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GetRemotableApp -// Method is invoked by the Automotive Server to get the access to the particular -// instance of the remotable app corresponding to the app ID provided. -// This is needed in case AS wishes to modify any paramters of the already -// registered remotable app -// @param aAppId App ID of the application whose access is needed -// @param aErr[out] Error code -// @returns Returns reference to the Remotable App object -// --------------------------------------------------------------------------------- -// -CUpnpRemotableApp& CUpnpTmServerImpl::GetRemotableApp( TUint aAppId, TInt& aErr ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GETREMOTABLEAPP_ENTRY ); - aErr = KErrNotFound; - TInt appIndex = iAppStore->AppIdArray().Find(aAppId); - CUpnpRemotableApp* remotableApp = NULL; - if ( appIndex != KErrNotFound ) - { - // The requested application is available - aErr = KErrNone; - remotableApp = &(iAppStore->FetchRemotableApp(appIndex)); - } - OstTraceExt2( TRACE_NORMAL, CUPNPTMSERVERIMPL_GETREMOTABLEAPP, "CUpnpTmServerImpl::GetRemotableApp;aAppId=%d;aErr=%d", aAppId, aErr ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_GETREMOTABLEAPP_EXIT ); - return *remotableApp; - } - -// --------------------------------------------------------------------------------- -// Method is used to un-register the individual applications -// @param aRemotableApp Pointer to Remotable app object which needs to - // be registered.Ownership is passed. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::RegisterAppL( CUpnpRemotableApp* aRemotableApp ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_REGISTERAPPL_ENTRY ); - ASSERT( aRemotableApp ); - iAppStore->AddRemotableAppL( aRemotableApp ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_REGISTERAPPL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::RegisterAppsL -// Method is used to register multiple applications in one go -// @param aRemotableAppList Array of Remotable App objects which needs to be -// registered. Ownership is passed. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::RegisterAppsL( const RPointerArray& aRemotableAppList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_REGISTERAPPSL_ENTRY ); - for ( TInt i(0); i < aRemotableAppList.Count(); i++ ) - { - iAppStore->AddRemotableAppL( aRemotableAppList[i] ); - } - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_REGISTERAPPSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::UnRegisterApp -// Method is used to un-register the individual applications -// @param aAppId App ID which needs to be un-registered -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerImpl::UnRegisterApp( TUint aAppId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_UNREGISTERAPP_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVER_GETREMOTABLEAPP, "CUpnpTmServer::GetRemotableApp;aAppId=%u", aAppId ); - return iAppStore->RemoveRemotableApp(aAppId); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::UnRegisterApps -// Method is used to un-register multiple applications in one go -// param aAppIdArray an array of appIDs which needs to be un-registered -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmServerImpl::UnRegisterApps( const RArray& aAppIdArray ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_UNREGISTERAPPS_ENTRY ); - /** - * Create a copy of the array. - * Only distinct and unique app IDs are copied into the array. - */ - RArray appIdList ; - TInt i; - for ( i = 0; i < aAppIdArray.Count(); i++ ) - { - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_UNREGISTERAPPS, "CUpnpTmServerImpl::UnRegisterApps;aAppIdArray[i]=%d", aAppIdArray[i] ); - if ( appIdList.Find(aAppIdArray[i]) == KErrNotFound ) - { - appIdList.Append(aAppIdArray[i]); - } - } - for ( i = 0; i < appIdList.Count(); i++ ) - { - // Now remove the remotable app from the array one by one - if ( ( iAppStore->RemoveRemotableApp( appIdList[i] )) == KErrNotFound ) - { - /** - * Even if a single app from the requested array is unable - * to get un-registered the method should return KErrNotFound - */ - OstTrace1( TRACE_ERROR, DUP1_CUPNPTMSERVERIMPL_UNREGISTERAPPS, "CUpnpTmServerImpl::UnRegisterApps;appIdList[i]=%d", appIdList[i] ); - appIdList.Close(); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_UNREGISTERAPPS_EXIT ); - return KErrNotFound; - } - } - appIdList.Close(); - OstTraceFunctionExit0( DUP1_CUPNPTMSERVERIMPL_UNREGISTERAPPS_EXIT ); - return KErrNone; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetXmlSignatureL -// Method is used to add xml formatted signature value to the list of remotable -// apps which is provided in response to the GetApplicationList action. -// XML signature is applied over entire contents of the appList element -// @param aSignature XML formatted signature value -// objects -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::SetXmlSignatureL( const TDesC8& aSignature ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETXMLSIGNATUREL_ENTRY ); - iXmSignature.Close(); - iXmSignature.CreateL(aSignature); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_SETXMLSIGNATUREL_EXIT ); - } - -// -------------------------------------------------------------------------------------------------------------------- -// CUpnpTmServerImpl::XmlSignature -// Method is used to fetch xml formatted signature value -// @return Returns xml formatted signature buffer -// -------------------------------------------------------------------------------------------------------------------- -// -const TDesC8& CUpnpTmServerImpl::XmlSignature( )const - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_XMLSIGNATURE_ENTRY ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_XMLSIGNATURE_EXIT ); - return iXmSignature; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::UpdateAppStatusL -// Method is used to update the status of applications which have undergone some -// change. This method is invoked by Automotive Server -// @param aUpdatedAppIdList An array of app IDs corresponding to the applications -// whose status have have undergone change -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::UpdateAppStatusL( const RArray& aUpdatedAppIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_UPDATEAPPSTATUSL_ENTRY ); - CreateEventMessageL(aUpdatedAppIdList); - iTmServerDevice->AppStatusUpdateL(iResponseBuf); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_UPDATEAPPSTATUSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::UpdateAppListL -// Method is used to update the list of applications which have been either added, -// removed or modified. This method is invoked by Automotive Server -// @param aUpdatedAppIdList An array of app IDs corresponding to the applications -// which have added, removed or modified to/from the list -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::UpdateAppListL( const RArray& aUpdatedAppIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_UPDATEAPPLISTL_ENTRY ); - CreateEventMessageL(aUpdatedAppIdList); - iTmServerDevice->AppListUpdateL(iResponseBuf); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_UPDATEAPPLISTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::UpdateUnusedProfileIdsL -// Method is used to update the list of profile IDs for profiles which are currently -// not being used by any Terminal Mode service hosted.on the Terminal Mode device -// This method is invoked by Automotive Server -// @param aUnusedProfileIdList List of profile IDs for profiles which are currently -// not being used -// -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::UpdateUnusedProfileIdsL( const RArray& aUnusedProfileIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_UPDATEUNUSEDPROFILEIDSL_ENTRY ); - CreateEventMessageL(aUnusedProfileIdList); - iTmServerDevice->UnUsedProfileIdUpdateL(iResponseBuf); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_UPDATEUNUSEDPROFILEIDSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::AuthorizeApp -// This method is used to verify whether the requested appID exists and whether -// the client is authorized to perform the oprations on that App ID -// @param aAppID appID which for which operation is requested -// @return Returns ETerminalModeSuccess if appID is valid and authorized -// else the error code -// --------------------------------------------------------------------------------- -// -TTerminalModeErrorCode CUpnpTmServerImpl::AuthorizeApp( TUint aAppId ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_AUTHORIZEAPP_ENTRY ); - OstTrace1( TRACE_NORMAL, DUP2_CUPNPTMSERVERIMPL_AUTHORIZEAPP, "CUpnpTmServerImpl::AuthorizeApp;aAppId=%u", aAppId ); - - TTerminalModeErrorCode err; - if ( iAppStore->AppIdArray().Find(aAppId) != KErrNotFound ) - { - // requested appID is a valid one - err = ETerminalModeSuccess; - } - else - { - // Requested appID does not exist - err = ETerminalModeBadAppId; - } - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_AUTHORIZEAPP, "CUpnpTmServerImpl::AuthorizeApp;err=%d", err ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_AUTHORIZEAPP_EXIT ); - return err; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::AppendDataL -// Appends data to the buffer and also reallocates when needed -// @param aData data to be appended to the buffer -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::AppendDataL( const TDesC8& aData ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_APPENDDATAL_ENTRY ); - TInt actionBufMaxLen = iResponseBuf.MaxLength(); - TInt actionBufLen = iResponseBuf.Length(); - TInt dataLen = aData.Length(); - if ( actionBufMaxLen < ( actionBufLen + dataLen ) ) - { - TInt lenToAllocate = (dataLen > KActionBufferLength) ? dataLen : KActionBufferLength; - iResponseBuf.ReAllocL ( actionBufLen + lenToAllocate ); - } - iResponseBuf.Append( aData ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_APPENDDATAL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::ConstructActionResponseBufferL -// Constructs the actual soap response buffer -// @param aAppIndex Index of the registered App -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::ConstructActionResponseBufferL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CONSTRUCTACTIONRESPONSEBUFFERL_ENTRY ); - ConstructLeadingSoapBufferL(aAppIndex); - const TDesC8& appDesc = iAppStore->FetchRemotableApp(aAppIndex).AppDescription(); - if ( appDesc.Length() != KErrNone ) - { - // Appends the application desciption - AppendDataL(KStartNameDesc); - AppendDataL(appDesc); - AppendDataL(KEndNameDesc); - } - // Appends the optional icon information to the soap response buffer only - // if its available. - const RPointerArray& iconList = iAppStore->FetchRemotableApp(aAppIndex).IconList(); - TInt iconCount = iconList.Count(); - if ( iconCount > KErrNone ) - { - // Icon information is present - AppendDataL(KStartIconList); - for ( TInt j(0); j < iconCount; j++ ) - { - // Adds all the icons associated with this app one by one - SetRemotableAppIconInfoL( *iconList[j] ); - } - AppendDataL(KEndIconList); - } - //Apends the allowedProfileIDs element - SetAllowedProfileIdListL(aAppIndex); - //Appends the different terminalmode info elements - const RPointerArray& tmInfoElementList = - iAppStore->FetchRemotableApp(aAppIndex).TmInfoElementList(); - for ( TInt k(0); k < tmInfoElementList.Count(); k++) - { - // Called for each terminal mode element associated with the App - SetTerminalModeInfoElementL( *tmInfoElementList[k] ); - } - // Appends the resource status element for the app if it is available - SetResourceStatusL(aAppIndex); - // End of an application - AppendDataL(KEndApp); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CONSTRUCTACTIONRESPONSEBUFFERL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::ConstructLeadingSoapBufferL -// Constructs leading soap buffer -// It adds appID and appName to the soap response -// @param aAppIndex Index of the remotable app -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::ConstructLeadingSoapBufferL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CONSTRUCTLEADINGSOAPBUFFERL_ENTRY ); - AppendDataL(KStartApp); - AppendDataL(KAppIdStart); - AppendDataL(ConvertIntToDescriptor(iAppStore->FetchRemotableApp(aAppIndex).AppId())); - AppendDataL(KAppIdEnd); - AppendDataL(KNameStart); - AppendDataL(iAppStore->FetchRemotableApp(aAppIndex).AppName()); - AppendDataL(KNameEnd); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CONSTRUCTLEADINGSOAPBUFFERL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetRemotableAppIconInfoL -// Appends application icon information to the soap response buffer. -// It stores the icon information in Tm Icon Mapping object for further reference. -// @param aTmIcon Reference to icon object -// @param aWidth Width of the application icon. -// @param aHeight Height of the application icon. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::SetRemotableAppIconInfoL( const CUpnpTerminalModeIcon& aTmIcon ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETREMOTABLEAPPICONINFOL_ENTRY ); - AppendDataL(KIconStart); - AppendDataL(KMimeTypeStart); - AppendDataL(aTmIcon.MimeType()); - AppendDataL(KMimeTypeEnd); - AppendDataL(KWidthStart); - TInt width = aTmIcon.Width(); - AppendDataL(ConvertIntToDescriptor(width)); - AppendDataL(KWidthEnd); - AppendDataL(KHeightStart); - TInt height = aTmIcon.Height(); - AppendDataL(ConvertIntToDescriptor(height)); - AppendDataL(KHeightEnd); - AppendDataL(KDepthStart); - AppendDataL(ConvertIntToDescriptor(aTmIcon.Depth())); - AppendDataL(KDepthEnd); - //Application icon URL creation - AppendDataL(KUrlStart); - AppendDataL(UpnpHTTP::KHTTPUrl()); - AppendDataL(iAddrBuf); // Adds IP address - AppendDataL(KColon); - AppendDataL(iPortBuf); // Adds port number - - // Fetch the icon file path - const TDesC& filePath = aTmIcon.IconFilename(); - // Extract just filename from the complete file path - const TDesC& fileName = filePath.Mid((filePath.LocateReverse(KDirectorySeparator))+1); - TBuf8 fileName8; - fileName8.Copy(fileName); // 16-bit to 8-bit conversion( icon filename ) - - TBuf8 iconRelativeUrl(UpnpString::KSlash); - // Appends the client profileID - iconRelativeUrl.Append(ConvertIntToDescriptor(iProfileId)); - iconRelativeUrl.Append(UpnpString::KSlash); - // Appends the icon filename and creates the relative url - iconRelativeUrl.Append(fileName8); - AppendDataL(iconRelativeUrl); - /** Icon information is stored for making decision during http request for app icon file. - * Depth is not taken into consideration while deciding on the final icon dimension - * because it is not a requirement and playing with the depth of the icon may lead - * to a poorly converted image which may not be displayed properly in the car - * kit screen. - */ - iIconMapping->AddIconFileInfoL( iconRelativeUrl,filePath,width,height ); - AppendDataL(KUrlEnd); - AppendDataL(KIconEnd); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_SETREMOTABLEAPPICONINFOL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetAllowedProfileIdListL -// Appends the list of allowed profile IDs information to the soap response buffer -// @param aAppIndex Index of the registered app -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::SetAllowedProfileIdListL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETALLOWEDPROFILEIDLISTL_ENTRY ); - const RArray& profileIdList = iAppStore->FetchRemotableApp(aAppIndex).AllowedProfileIdList(); - TInt profileIdCount = profileIdList.Count(); - if ( profileIdCount > KErrNone ) - { - AppendDataL(KAllowedProfileIdsStart); - for ( TInt i(0); i < profileIdCount; i++ ) - { - AppendDataL(ConvertIntToDescriptor(profileIdList[i])); - if ( i < (profileIdCount-1) ) - { - // Adds comma after each profile ID except last - AppendDataL(UpnpString::KComa); - } - } - AppendDataL(KAllowedProfileIdsEnd); - } - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_SETALLOWEDPROFILEIDLISTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetTerminalModeInfoElementL -// Appends terminal mode info elements to the soap buffer -// @param aTmInfoElement Reference to CUpnpTmInfoElement object -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::SetTerminalModeInfoElementL( const CUpnpTmInfoElement& aTmInfoElement ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETTERMINALMODEINFOELEMENTL_ENTRY ); - AppendDataL(KStartTagOpenBracket); - AppendDataL(aTmInfoElement.TerminalModeInfoType()); - AppendDataL(KCloseBracket); - for ( TInt i(0); i < aTmInfoElement.TmInfoElementCount(); i++ ) - { - RBuf8 elementName; - CleanupClosePushL(elementName); - RBuf8 elementValue; - CleanupClosePushL(elementValue); - // Fetch the key-value pair - aTmInfoElement.GetTmInfoElementL( elementName, elementValue, i ); - AppendDataL(KStartTagOpenBracket); - AppendDataL(elementName); - AppendDataL(KCloseBracket); - AppendDataL(elementValue); - AppendDataL(KEndTagOpenBracket); - AppendDataL(elementName); - AppendDataL(KCloseBracket); - CleanupStack::PopAndDestroy(2,&elementName); - } - AppendDataL(KEndTagOpenBracket); - AppendDataL(aTmInfoElement.TerminalModeInfoType()); - AppendDataL(KCloseBracket); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_SETTERMINALMODEINFOELEMENTL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::SetResourceStatusL -// Appends resource status element(optional element)to the soap response buffer. -// Provides the status of the resource of the application. -// @param aAppIndex Index of the registered app -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::SetResourceStatusL( TInt aAppIndex ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_SETRESOURCESTATUSL_ENTRY ); - const TDesC8& rscStatus = iAppStore->FetchRemotableApp(aAppIndex).ResourceStatus(); - if ( rscStatus.Length() > KErrNone ) - { - AppendDataL(KResourceStatusStart); - AppendDataL(rscStatus); - AppendDataL(KResourceStatusEnd); - } - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_SETRESOURCESTATUSL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::GenerateUrlComponents -// Utility method to generate Server's IP address and port number which is used -// in constructing the icon url in action responses -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::GenerateUrlComponents( CUpnpHttpServerSession& aHttpServerSession ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_GENERATEURLCOMPONENTS_ENTRY ); - TInetAddr servAddr; - servAddr.SetFamily(KAfInet); - aHttpServerSession.GetAddress( servAddr ); - TBuf addrBuf8; - servAddr.Output( addrBuf8 ); - iAddrBuf.Copy(addrBuf8); //Sets the IP address of the server - iPortBuf.Num(servAddr.Port()); //Sets the port number - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_GENERATEURLCOMPONENTS_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::CreateEventMessageL -// Utility method to generate GENA notificatiion messages. -// Its is called in case of updateapplist, updateappstatuslist and -// unusedprofileidlist events. -// @param aIdList Reference to the changed ID list. It could be appID list or -// profileID list. -// --------------------------------------------------------------------------------- -// -void CUpnpTmServerImpl::CreateEventMessageL( const RArray& aIdList ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CREATEEVENTMESSAGEL_ENTRY ); - iResponseBuf.Close(); - iResponseBuf.CreateL(KActionBufferLength); - /** - * Create a copy of the array. - * Only distinct and unique elements are copied into the array. - */ - RArray idList; - CleanupClosePushL(idList); - TInt i; - for ( i = 0; i < aIdList.Count(); i++ ) - { - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_CREATEEVENTMESSAGEL, "CUpnpTmServerImpl::CreateEventMessageL;aIdList[i]=%d", aIdList[i] ); - if ( idList.Find(aIdList[i]) == KErrNotFound ) - { - idList.AppendL(aIdList[i]); - } - } - TInt idCount = idList.Count(); - for ( i = 0; i < idCount; i++ ) - { - AppendDataL(ConvertIntToDescriptor( idList[i])); - if ( i < ( idCount-1) ) - { - //Add comma(,) after each ID except the last - AppendDataL(UpnpString::KComa); - } - } - CleanupStack::PopAndDestroy(&idList); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CREATEEVENTMESSAGEL_EXIT ); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerImpl::ConvertIntToDescriptor -// Utility method to convert integer to descriptor -// @param aIntVal Integer value -// @return Returns corresponding descriptor value -// --------------------------------------------------------------------------------- -// -const TDesC8& CUpnpTmServerImpl::ConvertIntToDescriptor( TInt aIntVal ) - { - OstTraceFunctionEntry0( CUPNPTMSERVERIMPL_CONVERTINTTODESCRIPTOR_ENTRY ); - OstTrace1( TRACE_NORMAL, CUPNPTMSERVERIMPL_CONVERTINTTODESCRIPTOR, "CUpnpTmServerImpl::ConvertIntToDescriptor;aIntVal=%d", aIntVal ); - iBufVal.Num( aIntVal ); - OstTraceFunctionExit0( CUPNPTMSERVERIMPL_CONVERTINTTODESCRIPTOR_EXIT ); - return iBufVal; - } - -//End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/traces/OstTraceDefinitions.h --- a/services/terminalmodeservice/traces/OstTraceDefinitions.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/** -* 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: OST trace file. -* -*/ - -#ifndef __OSTTRACEDEFINITIONS_H__ -#define __OSTTRACEDEFINITIONS_H__ - -#include -#endif diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/bwins/upnptmservertestu.DEF --- a/services/terminalmodeservice/tsrc/upnptmservertest/bwins/upnptmservertestu.DEF Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - ?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void) - ?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &) - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/TestFramework.ini --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/TestFramework.ini Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -# -# This is STIF initialization file -# Comment lines start with '#'-character. -# See STIF TestFramework users guide.doc for instructions - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Set following test engine settings: -# - Set Test Reporting mode. TestReportMode's possible values are: -# + 'Summary': Summary of the tested test cases. -# + 'Environment': Hardware and software info. -# + 'TestCases': Test case report. -# + 'FullReport': Set of all above ones. -# + Example 'TestReportMode= Summary TestCases' -# -# - CreateTestReport setting controls report creation mode -# + YES, Test report will created. -# + NO, No Test report. -# -# - File path indicates the base path of the test report. -# - File name indicates the name of the test report. -# -# - File format indicates the type of the test report. -# + TXT, Test report file will be txt type, for example 'TestReport.txt'. -# + HTML, Test report will be html type, for example 'TestReport.html'. -# + XML, Test report will be xml type, for example 'TestReport.xml'. -# Note, that xml format is available only when output is set to FILE. -# -# - File output indicates output source of the test report. -# + FILE, Test report logging to file. -# + RDEBUG, Test report logging to using rdebug. -# -# - File Creation Mode indicates test report overwriting if file exist. -# + OVERWRITE, Overwrites if the Test report file exist. -# + APPEND, Continue logging after the old Test report information if -# report exist. -# - Sets a device reset module's dll name(Reboot). -# + If Nokia specific reset module is not available or it is not correct one -# StifHWResetStub module may use as a template for user specific reset -# module. -# - Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation -# DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02 -# - -[Engine_Defaults] - -TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment', - # 'TestCases' or 'FullReport' - -CreateTestReport= YES # Possible values: YES or NO - -TestReportFilePath= C:\LOGS\TestFramework\ -TestReportFileName= TestReport - -TestReportFormat= TXT # Possible values: TXT, HTML or XML -TestReportOutput= FILE # Possible values: FILE or RDEBUG -TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND - -DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting - -DisableMeasurement= stifmeasurementdisablenone # Possible values are: - # 'stifmeasurementdisablenone', 'stifmeasurementdisableall' - # 'stifmeasurementplugin01', 'stifmeasurementplugin02', - # 'stifmeasurementplugin03', 'stifmeasurementplugin04', - # 'stifmeasurementplugin05' or 'stifbappeaprofiler' - -Timeout= 120000 # Default timeout value for each test case. In milliseconds -#UITestingSupport= YES # Possible values: YES or NO -#SeparateProcesses= YES # Possible values: YES or NO (default: NO) -[End_Defaults] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Module configurations start -# Modules are added between module tags -# tags. Module name is specified after ModuleName= tag, like -# ModuleName= XXXXXXXXX -# Modules might have initialisation file, specified as -# IniFile= c:\testframework\YYYYYY -# Modules might have several configuration files, like -# TestCaseFile= c:\testframework\NormalCases.txt -# TestCaseFile= c:\testframework\SmokeCases.txt -# TestCaseFile= c:\testframework\ManualCases.txt - -# (TestCaseFile is synonym for old term ConfigFile) - -# Following case specifies demo module settings. Demo module -# does not read any settings from file, so tags -# IniFile and TestCaseFile are not used. -# In the simplest case it is enough to specify only the -# name of the test module when adding new test module - -[New_Module] -ModuleName= upnptmservertest -[End_Module] - - -# Load testmoduleXXX, optionally with initialization file and/or test case files -#[New_Module] -#ModuleName= testmodulexxx - -#TestModuleXXX used initialization file -#IniFile= c:\testframework\init.txt - -#TestModuleXXX used configuration file(s) -#TestCaseFile= c:\testframework\testcases1.cfg -#TestCaseFile= c:\testframework\testcases2.cfg -#TestCaseFile= c:\testframework\manualtestcases.cfg - -#[End_Module] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Set STIF logging overwrite parameters for Logger. -# Hardware and emulator environment logging path and styles can -# be configured from here to overwrite the Logger's implemented values. -# -# Settings description: -# - Indicates option for creation log directory/directories. If log directory/directories -# is/are not created by user they will make by software. -# + YES, Create log directory/directories if not allready exist. -# + NO, Log directory/directories not created. Only created one is used. -# -# - Overwrite emulator path setting. -# + Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined -# Logger's path 'D:\\LOGS\\Module\\' with those definition the path -# will be 'C:\LOGS\TestFramework\LOGS\Module\' -# -# - Overwrite emulator's logging format. -# + TXT, Log file(s) will be txt type(s), for example 'Module.txt'. -# + HTML, Log file(s) will be html type(s), for example 'Module.html'. -# -# - Overwrited emulator logging output source. -# + FILE, Logging to file(s). -# + RDEBUG, Logging to using rdebug(s). -# -# - Overwrite hardware path setting (Same description as above in emulator path). -# - Overwrite hardware's logging format(Same description as above in emulator format). -# - Overwrite hardware's logging output source(Same description as above in emulator output). -# -# - File Creation Mode indicates file overwriting if file exist. -# + OVERWRITE, Overwrites if file(s) exist. -# + APPEND, Continue logging after the old logging information if file(s) exist. -# -# - Will thread id include to the log filename. -# + YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'. -# + NO, No thread id to log file(s), Example filename 'Module.txt'. -# -# - Will time stamps include the to log file. -# + YES, Time stamp added to each line in log file(s). Time stamp is -# for example'12.Nov.2003 115958 LOGGING INFO' -# + NO, No time stamp(s). -# -# - Will line breaks include to the log file. -# + YES, Each logging event includes line break and next log event is in own line. -# + NO, No line break(s). -# -# - Will event ranking include to the log file. -# + YES, Event ranking number added to each line in log file(s). Ranking number -# depends on environment's tics, for example(includes time stamp also) -# '012 12.Nov.2003 115958 LOGGING INFO' -# + NO, No event ranking. -# -# - Will write log file in unicode format. -# + YES, Log file will be written in unicode format -# + NO, Log will be written as normal, not unicode, file. -# - -[Logger_Defaults] - -#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' -#NOTE: TestEngine and TestServer logging settings cannot change here - -#CreateLogDirectories= YES # Possible values: YES or NO - -#EmulatorBasePath= C:\LOGS\TestFramework\ -#EmulatorFormat= HTML # Possible values: TXT or HTML -#EmulatorOutput= FILE # Possible values: FILE or RDEBUG - -#HardwareBasePath= D:\LOGS\TestFramework\ -#HardwareFormat= HTML # Possible values: TXT or HTML -#HardwareOutput= FILE # Possible values: FILE or RDEBUG - -#FileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND - -#ThreadIdToLogFile= YES # Possible values: YES or NO -#WithTimeStamp= YES # Possible values: YES or NO -#WithLineBreak= YES # Possible values: YES or NO -#WithEventRanking= YES # Possible values: YES or NO - -#FileUnicode= YES # Possible values: YES or NO -#AddTestCaseTitle= YES # Possible values: YES or NO -[End_Logger_Defaults] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Set filters to be used by ConsoleUI. -# If you want to use filter with ConsoleUI, simply remove comments -# from section below and provide valid filter entries. -# Each filter line has to start with "filter= " keyword. -# Filter can contain special wildcard characters: -# * which stands for none or any literal; -# ? which stands for single character. -# Filters are not case-sensitive. - -#[Filters] -#filter= *math* -#filter= *radio* -#[End_Filters] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -# End of file diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/gallery.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/gallery.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/homemedia.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/homemedia.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/maps.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/maps.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/music_launched.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/music_launched.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/music_unlaunched.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/music_unlaunched.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/s60_device.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/s60_device.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/data/videos.svg --- a/services/terminalmodeservice/tsrc/upnptmservertest/data/videos.svg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/eabi/upnptmservertestu.DEF --- a/services/terminalmodeservice/tsrc/upnptmservertest/eabi/upnptmservertestu.DEF Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -EXPORTS - _Z9LibEntryLv @ 1 NONAME - _Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME - _ZTI10CTestTimer @ 3 NONAME - _ZTI15CDiscoverDevice @ 4 NONAME - _ZTI19CDiscoveryTestTimer @ 5 NONAME - _ZTV10CTestTimer @ 6 NONAME - _ZTV15CDiscoverDevice @ 7 NONAME - _ZTV19CDiscoveryTestTimer @ 8 NONAME - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/group/bld.inf --- a/services/terminalmodeservice/tsrc/upnptmservertest/group/bld.inf Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/** -* 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: -* -*/ - - - -PRJ_PLATFORMS -DEFAULT - - -PRJ_TESTEXPORTS -../data/TestFramework.ini /epoc32/winscw/c/TestFramework/TestFramework.ini -../data/gallery.svg /epoc32/winscw/c/upnptmserver/icons/gallery.svg -../data/homemedia.svg /epoc32/winscw/c/upnptmserver/icons/homemedia.svg -../data/maps.svg /epoc32/winscw/c/upnptmserver/icons/maps.svg -../data/music_launched.svg /epoc32/winscw/c/upnptmserver/icons/music_launched.svg -../data/music_unlaunched.svg /epoc32/winscw/c/upnptmserver/icons/music_unlaunched.svg -../data/videos.svg /epoc32/winscw/c/upnptmserver/icons/videos.svg -../data/s60_device.svg /epoc32/winscw/c/upnptmserver/icons/s60_device.svg - -PRJ_TESTMMPFILES -upnptmservertest.mmp - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/group/upnptmservertest.mmp --- a/services/terminalmodeservice/tsrc/upnptmservertest/group/upnptmservertest.mmp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/** -* 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: MMP file for STIF Test Framework's Hardcoded test module. -* -*/ - -#include - -TARGET upnptmservertest.dll -TARGETTYPE dll -UID 0x1000008D 0x101FB3E7 - -CAPABILITY ALL -TCB - -//TARGETPATH -DEFFILE upnptmservertest.def - -USERINCLUDE ../inc -SYSTEMINCLUDE /epoc32/include/platform/mw - -OS_LAYER_SYSTEMINCLUDE - -SOURCEPATH ../src - -SOURCE tmservertest.cpp -SOURCE tmservertestcases.cpp -SOURCE testtimer.cpp -SOURCE discoverytesttimer.cpp - -LIBRARY euser.lib -LIBRARY bafl.lib -LIBRARY stiftestinterface.lib -LIBRARY stiftestengine.lib -LIBRARY terminalmodeservice.lib -LIBRARY upnpcontrolpointbase.lib -LIBRARY upnpserviceframework.lib -LIBRARY ecom.lib - -LANG SC - - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/group/upnptmservertest.pkg --- a/services/terminalmodeservice/tsrc/upnptmservertest/group/upnptmservertest.pkg Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -; -; 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: Installation file for upnptmserver test module -; - -; Languages -&EN - -; Provide value for uid -#{"STIF"},(0x00000000),1,1,0,TYPE=SA - -; Series60 product id for S60 3.0 -[0x101F7961], 0, 0, 0, {"Series60ProductID"} - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -; Logo -; None - -; Package signature - Optional -; None - -; Start of Package body - -; Condition blocks -; None - -; Options list -; None - -; Install files -"\epoc32\winscw\c\upnptmserver\icons\gallery.svg " - "c:\upnptmserver\icons\gallery.svg" -"\epoc32\winscw\c\upnptmserver\icons\homemedia.svg " - "c:\upnptmserver\icons\homemedia.svg" -"\epoc32\winscw\c\upnptmserver\icons\maps.svg " - "c:\upnptmserver\icons\maps.svg" -"\epoc32\winscw\c\upnptmserver\icons\music_launched.svg " - "c:\upnptmserver\icons\music_launched.svg" -"\epoc32\winscw\c\upnptmserver\icons\music_unlaunched.svg " - "c:\upnptmserver\icons\music_unlaunched.svg" -"\epoc32\winscw\c\upnptmserver\icons\videos.svg " - "c:\upnptmserver\icons\videos.svg" -"\epoc32\winscw\c\upnptmserver\icons\s60_device.svg " - "c:\upnptmserver\icons\s60_device.svg " -"\epoc32\winscw\c\TestFramework\TestFramework.ini" - "c:\TestFramework\TestFramework.ini" -"\epoc32\release\armv5\urel\upnptmservertest.dll" - "c:\Sys\Bin\upnptmservertest.dll" - -; Embedded SIS -; None - -; End of Package body - -; PKG dependencies -; None - -; PKG capabilities -; None diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/inc/discoverytesttimer.h --- a/services/terminalmodeservice/tsrc/upnptmservertest/inc/discoverytesttimer.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/** -* 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: CDiscoveryTestTimer class declaration -* -*/ - - -#ifndef DISCOVERYTESTTIMER_H_ -#define DISCOVERYTESTTIMER_H_ - -#include -#include - -class CTmServerTest; - -class CDiscoveryTestTimer:public CActive - { -public: - static CDiscoveryTestTimer* NewL(CTmServerTest& aTmServerTest); - ~CDiscoveryTestTimer(); - void AfterDiscovery(const TInt aDuration); - -private: - CDiscoveryTestTimer(CTmServerTest& aTmServerTest); - -private: // From CActive - void RunL(); - void DoCancel(); - -private: - RTimer iDiscoveryTimer; - CTmServerTest& iTmServerTest; - }; - -#endif //DISCOVERYTESTTIMER_H_ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/inc/testtimer.h --- a/services/terminalmodeservice/tsrc/upnptmservertest/inc/testtimer.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/** -* 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: CTestTimer class declaration -* -*/ - -#ifndef TESTTIMER_H_ -#define TESTTIMER_H_ - -#include -#include - -class CTmServerTest; - -class CTestTimer:public CActive - { -public: - static CTestTimer* NewL(CTmServerTest& aTmServerTest); - ~CTestTimer(); - void After(const TInt aDuration); - -private: - CTestTimer(CTmServerTest& aTmServerTest); - -private: // From CActive - void RunL(); - void DoCancel(); - -private: - RTimer iTimer; - CTmServerTest& iTmServerTest; - }; - -#endif //TESTTIMER_H_ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/inc/tmservertest.h --- a/services/terminalmodeservice/tsrc/upnptmservertest/inc/tmservertest.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,518 +0,0 @@ -/** -* 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: -* -*/ - - -#ifndef TMSERVERTEST_H -#define TMSERVERTEST_H - -// INCLUDES -#include "StifTestModule.h" -#include "testtimer.h" -#include "discoverytesttimer.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// MACROS -#define TEST_MODULE_VERSION_MAJOR 0 -#define TEST_MODULE_VERSION_MINOR 0 -#define TEST_MODULE_VERSION_BUILD 0 - -// Logging path -_LIT( KTmServerTestLogPath, "\\logs\\testframework\\upnptmservertest\\" ); -// Log file -_LIT(KTmServerTestLogFile, "upnptmservertest.txt" ); -_LIT(KTmServerTestLogFileWithTitle, "upnptmservertest_[%S].txt" ); - -const TInt KIconWidth = 21; -const TInt KIconHeight = 21; -const TInt KIconDepth = 24; -const TInt KIconWidth1 = 88; -const TInt KIconHeight1 = 88; -const TInt KIconWidth2 = 36; -const TInt KIconHeight2 = 44; -const TInt KIconWidth3 = 60; -const TInt KIconHeight3 = 60; -const TInt KIconDepth1 = 12; -const TUint KProfileIdValue = 0; -const TUint KAppIdValue = 1; -const TUint KAppId1Value = 2; -const TUint KAppId2Value = 3; -const TUint KAppId3Value = 4; -const TUint KAppId4Value = 5; -const TUint KAppId5Value = 6; -const TUint KNonExistentAppIdValue = 7; -const TUint KNonExistentAppId1Value = 8; -const TUint KInvalidProfileIdValue = 9; -const TInt KInvalidAppIdValue = -1; - - -#define GETPTR & -#define ENTRY(str,func) {_S(str), GETPTR func,0,0,0} -#define FUNCENTRY(func) {_S(#func), GETPTR func,0,0,0} -#define OOM_ENTRY(str,func,a,b,c) {_S(str), GETPTR func,a,b,c} -#define OOM_FUNCENTRY(func,a,b,c) {_S(#func), GETPTR func,a,b,c} - -// FORWARD DECLARATIONS -class CTmServerTest; - -// DATA TYPES -// A typedef for function that does the actual testing, -// function is a type -typedef TInt (CTmServerTest::* TestFunction)(TTestResult&); - -// CLASS DECLARATION -/** -* An internal structure containing a test case name and -* the pointer to function doing the test -* -* @lib ?library -* @since ?Series60_version -*/ -class TCaseInfoInternal - { -public: - const TText* iCaseName; - TestFunction iMethod; - TBool iIsOOMTest; - TInt iFirstMemoryAllocation; - TInt iLastMemoryAllocation; - }; - -// CLASS DECLARATION - -/** -* A structure containing a test case name and -* the pointer to function doing the test -* -* @lib ?library -* @since ?Series60_version -*/ -class TCaseInfo - { -public: - TPtrC iCaseName; - TestFunction iMethod; - TBool iIsOOMTest; - TInt iFirstMemoryAllocation; - TInt iLastMemoryAllocation; - - TCaseInfo( const TText* a ) : iCaseName( (TText*) a ) - { - }; - - }; - - -class CDiscoverDevice : public CUpnpControlPoint - { -public: - // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CDiscoverDevice* NewL(CTmServerTest& aTmServerTest); - - /** - * Destructor. - */ - virtual ~CDiscoverDevice(); - -protected: - // Functions from base classes - - /** - * From CUpnpControlPoint State update handler. - */ - void StateUpdatedL( CUpnpService* aService ); - - /** - * From CUpnpControlPoint Device discovery handler. - */ - void DeviceDiscoveredL( CUpnpDevice* aDevice ); - - /** - * From CUpnpControlPoint Device dissappear handler. - */ - void DeviceDisappearedL( CUpnpDevice* aDevice ); - - /** - * From CUpnpControlPoint Action response handler function. - */ - void ActionResponseReceivedL( CUpnpAction* aAction ); - - /** - * From CUpnpControlPoint HTTP message handler function. - */ - void HttpResponseReceivedL( CUpnpHttpMessage* aMessage ); - - - TInt TmServerStateUpdated( CUpnpDevice& aDevice, CUpnpService*& aService ); - - -public: - - /** - * C++ default constructor. - */ - CDiscoverDevice(CTmServerTest& aTmServerTest ); - - void ConstructL(); - TInt LaunchAppActionL( TInt aAppId, TInt aProfileId ); - TInt TerminateAppActionL( TInt aAppId, TInt aProfileId ); - TInt GetAppStatusActionL( TInt aAppId ); - TInt GetAppListActionL(const TDesC8& aAppListFilter ,TInt aProfileId ); - TInt SetClientProfileActionL(TInt aProfileId, const TDesC8& aClientInfoValue ); - TInt GetClientProfileActionL(TInt aProfileId ); - TInt GetMaxNumProfilesActionL(); - void SubscribeToServiceL(); - -public: - CTmServerTest& iTmServerTest; - }; - -// CLASS DECLARATION - -/** -* This a TmServerTest class. -* ?other_description_lines -* -* @lib ?library -* @since ?Series60_version -*/ -NONSHARABLE_CLASS(CTmServerTest) : public CTestModuleBase, - public MUpnpTmServerObserver - { -public: // Constructors and destructor - - - /** - * Two-phased constructor. - */ - static CTmServerTest* NewL(); - - /** - * Destructor. - */ - virtual ~CTmServerTest(); - -public: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - TInt StartTmServerDeviceL ( TTestResult& aResult ); - TInt PublishTmServerServiceL ( TTestResult& aResult ); - TInt StopTmServerDeviceL ( TTestResult& aResult ); - TInt ReStartTmServerDeviceL( TTestResult& aResult ); - TInt UnRegisterAppL( TTestResult& aResult ); - TInt UnRegisterAppsL( TTestResult& aResult ); - TInt RegisterDuplicateAppL( TTestResult& aResult ); - TInt RegisterDuplicateAppsL( TTestResult& aResult ); - TInt UnRegisterUnRegisteredAppL ( TTestResult& aResult ); - TInt UnRegisterUnRegisteredAppsL ( TTestResult& aResult ); - TInt HandleLaunchAppActionL ( TTestResult& aResult ); - TInt HandleInvalidAppIdLaunchAppActionL(TTestResult& aResult ); - TInt HandleInvalidProfileIdLaunchAppActionL(TTestResult& aResult ); - TInt HandleNonExistentLaunchAppActionL (TTestResult& aResult); - TInt HandleUnauthorizedLaunchAppActionL (TTestResult& aResult); - TInt HandleDeviceLockedLaunchAppActionL (TTestResult& aResult); - TInt HandleTerminateAppActionL ( TTestResult& aResult ); - TInt HandleNonExistentTerminateAppActionL( TTestResult& aResult ); - TInt HandleInvalidAppIdTerminateAppActionL( TTestResult& aResult ); - TInt HandleInvalidProfileIdTerminateAppActionL( TTestResult& aResult ); - TInt HandleUnauthorizedTerminateAppActionL ( TTestResult& aResult ); - TInt HandleDeviceLockedTerminateAppActionL ( TTestResult& aResult ); - TInt HandleGetAppListActionFilter1L(TTestResult& aResult ); - TInt HandleGetAppListActionFilter2L(TTestResult& aResult ); - TInt HandleGetAppListActionFilter3L(TTestResult& aResult ); - TInt HandleGetAppListActionFilter4L(TTestResult& aResult ); - TInt HandleGetAppListActionInvalidArg1L(TTestResult& aResult ); - TInt HandleGetAppListActionInvalidArg2L(TTestResult& aResult ); - TInt HandleGetAppListActionInvalidArg3L(TTestResult& aResult ); - TInt HandleGetAppListActionInvalidArg4L(TTestResult& aResult ); - TInt HandleGetAppListActionInvalidArg5L(TTestResult& aResult ); - TInt HandleInvalidProfileIdGetAppListActionL ( TTestResult& aResult ); - TInt HandleGetAppListActionOperationRejectedL ( TTestResult& aResult ); - TInt HandleGetAppListActionNoFilterL ( TTestResult& aResult ); - TInt HandleGetAppStatusActionL( TTestResult& aResult ); - TInt HandleWildcardGetAppStatusActionL( TTestResult& aResult ); - TInt HandleInvalidAppIdGetAppStatusActionL ( TTestResult& aResult ); - TInt HandleNonExistentGetAppStatusActionL ( TTestResult& aResult ); - TInt HandleSetClientProfileActionL( TTestResult& aResult ); - TInt HandleInvalidProfileIdSetClientProfileActionL (TTestResult& aResult ); - TInt HandleInvalidProfileSetClientProfileActionL (TTestResult& aResult ); - TInt HandleDeviceLockedSetClientProfileActionL (TTestResult& aResult ); - TInt HandleResourceBusySetClientProfileActionL (TTestResult& aResult ); - TInt HandleGetClientProfileActionL( TTestResult& aResult ); - TInt HandleInvalidProfileIdGetClientProfileActionL (TTestResult& aResult ); - TInt HandleGetMaxNumProfilesActionL( TTestResult& aResult ); - TInt HandleGetMaxNumProfilesOperationRejectedL ( TTestResult& aResult ); - TInt HandleEventAppStatusUpdateL ( TTestResult& aResult ); - TInt HandleEventAppListUpdateL ( TTestResult& aResult ); - TInt HandleEventDuplicateAppStatusUpdateL( TTestResult& aResult ); - TInt HandleEventProfileIdListStatusUpdateL( TTestResult& aResult ); - - void RegisterApplicationsL(CUpnpTmServer& aTmServer ); - void SetTmServerSettingsL(); - void TestTimerTimedOutL(); - void TestTimerDiscoveryTimedOut(); - void DeviceVerified(); - void DeviceLostVerified(); - void ServiceVerified(); - -public: // methods from MUpnpTmServerObserver - TTerminalModeErrorCode OnGetApplicationList( TUint aProfileId ); - TTerminalModeErrorCode OnLaunchApp( TUint aAppId, RBuf8& aUrl, TUint aProfileId ); - TTerminalModeErrorCode OnTerminateApp( TUint aAppId, TUint aProfileId ); - TTerminalModeErrorCode OnGetAppStatus( TUint aAppId, TUint& aProfileId ,RBuf8& aStatusType ); - TTerminalModeErrorCode OnGetMaxNumProfiles( TUint& aProfileIdCount ); - TTerminalModeErrorCode OnSetClientProfile( TUint aProfileId, const TDesC8& aClientProfile,RBuf8& aResultProfile ); - TTerminalModeErrorCode OnGetClientProfile( TUint aProfileId, RBuf8& aClientProfile ); - const CUpnpTmClientIconPref& GetClientIconPrefsL( TUint aProfileId ); - -public: // Functions from base classes - - /** - * From CTestModuleBase InitL is used to initialize the - * TmServerTest. It is called once for every instance of - * TestModuleTmServerTest after its creation. - * @since ?Series60_version - * @param aIniFile Initialization file for the test module (optional) - * @param aFirstTime Flag is true when InitL is executed for first - * created instance of TmServerTest. - * @return Symbian OS error code - */ - TInt InitL( TFileName& aIniFile, TBool aFirstTime ); - - /** - * From CTestModuleBase GetTestCasesL is used to inquiry test cases - * from TmServerTest. - * @since ?Series60_version - * @param aTestCaseFile Test case file (optional) - * @param aTestCases Array of TestCases returned to test framework - * @return Symbian OS error code - */ - TInt GetTestCasesL( const TFileName& aTestCaseFile, - RPointerArray& aTestCases ); - - /** - * From CTestModuleBase RunTestCaseL is used to run an individual - * test case. - * @since ?Series60_version - * @param aCaseNumber Test case number - * @param aTestCaseFile Test case file (optional) - * @param aResult Test case result returned to test framework (PASS/FAIL) - * @return Symbian OS error code (test case execution error, which is - * not reported in aResult parameter as test case failure). - */ - TInt RunTestCaseL( const TInt aCaseNumber, - const TFileName& aTestCaseFile, - TTestResult& aResult ); - - /** - * From CTestModuleBase; OOMTestQueryL is used to specify is particular - * test case going to be executed using OOM conditions - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @param aFailureType OOM failure type (optional) - * @param aFirstMemFailure The first heap memory allocation failure value (optional) - * @param aLastMemFailure The last heap memory allocation failure value (optional) - * @return TBool - */ - virtual TBool OOMTestQueryL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TOOMFailureType& aFailureType, - TInt& /* aFirstMemFailure */, - TInt& /* aLastMemFailure */ ); - - /** - * From CTestModuleBase; OOMTestInitializeL may be used to initialize OOM - * test environment - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @return None - */ - virtual void OOMTestInitializeL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ); - - /** - * From CTestModuleBase; OOMHandleWarningL - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @param aFailNextValue FailNextValue for OOM test execution (optional) - * @return None - * - * User may add implementation for OOM test warning handling. Usually no - * implementation is required. - */ - virtual void OOMHandleWarningL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TInt& /* aFailNextValue */); - - /** - * From CTestModuleBase; OOMTestFinalizeL may be used to finalize OOM - * test environment - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @return None - * - */ - virtual void OOMTestFinalizeL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ); - - /** - * Method used to log version of test module - */ - void SendTestModuleVersion(); - -protected: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - -private: - - /** - * C++ default constructor. - */ - CTmServerTest(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - // Prohibit copy constructor if not deriving from CBase. - // ?classname( const ?classname& ); - // Prohibit assigment operator if not deriving from CBase. - // ?classname& operator=( const ?classname& ); - - /** - * Function returning test case name and pointer to test case function. - * @since ?Series60_version - * @param aCaseNumber test case number - * @return TCaseInfo - */ - const TCaseInfo Case ( const TInt aCaseNumber ) const; - - /** - * [test case declarations] - do not remove - */ - //ADD NEW METHOD DEC HERE" - - /** - * Printing test case. - * @since ?Series60_version - * @param aResult Test case result (PASS/FAIL) - * @return Symbian OS error code (test case execution error - * that is not returned as test case result in aResult) - */ - TInt PrintTest( TTestResult& aResult ); - - /** - * Printing loop test case. - * @since ?Series60_version - * @param aResult Test case result (PASS/FAIL) - * @return Symbian OS error code (test case execution error - * that is not returned as test case result in aResult) - */ - TInt LoopTest( TTestResult& aResult ); - - - -public: // Data - // ?one_line_short_description_of_data - //?data_declaration; - TBool iTmServerDeviceType; - TBool iTmServerServiceType; - -protected: // Data - // ?one_line_short_description_of_data - //?data_declaration; - -public: - TBool iGetAppList; - TBool iStartApp; - TBool iStopApp; - TBool iSetClientProfile; - TBool iGetClientProfile; - TBool iGetMaxNumProfiles; - TBool iGetAppStatus; - TBool iStatusNotified; - TBool iOperationRejected; - TBool iResourceBusy; - - -private: // Data - // Pointer to test (function) to be executed - TestFunction iMethod; - - // Pointer to logger - CStifLogger * iLog; - - // Normal logger - CStifLogger* iStdLog; - - // Test case logger - CStifLogger* iTCLog; - - // Flag saying if test case title should be added to log file name - TBool iAddTestCaseTitleToLogName; - - // Flag saying if version of test module was already sent - TBool iVersionLogged; - -private: - CUpnpTmServer* iTmServer; - CDiscoverDevice* iSearchDevice; - CTestTimer* iTestTimer; - CDiscoveryTestTimer* iDiscoveryTestTimer; - CUpnpRemotableApp* iRemotableApp; - CUpnpTerminalModeIcon* iTerminalModeIcon; - CUpnpRemotableApp* iRemotableApp1; - CUpnpRemotableApp* iRemotableApp2; - CUpnpRemotableApp* iRemotableApp3; - CUpnpRemotableApp* iRemotableApp4; - CUpnpRemotableApp* iRemotableApp5; - CUpnpTmServerDeviceInfo* iTmServerDeviceInfo; - RPointerArray iRemotableAppArray; - TBool iDeviceVerified; - TBool iDeviceLostVerified; - TBool iServiceVerified; - RPointerArray iClientIconPrefArray; - }; - -#endif // TMSERVERTEST_H - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/src/discoverytesttimer.cpp --- a/services/terminalmodeservice/tsrc/upnptmservertest/src/discoverytesttimer.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/** -* 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: -* -*/ - - -// INCLUDE FILES -#include "discoverytesttimer.h" -#include "tmservertest.h" - -const TInt KMicroSecond1 = 1000000; - -CDiscoveryTestTimer* CDiscoveryTestTimer::NewL(CTmServerTest& aTmServerTest) - { - return new (ELeave) CDiscoveryTestTimer(aTmServerTest); - } - -CDiscoveryTestTimer::~CDiscoveryTestTimer() - { - Cancel(); - iDiscoveryTimer.Close(); - } - -void CDiscoveryTestTimer::AfterDiscovery(const TInt aDuration) - { - iDiscoveryTimer.After(iStatus, aDuration*KMicroSecond1); - SetActive(); - } - -CDiscoveryTestTimer::CDiscoveryTestTimer(CTmServerTest& aTmServerTest) -:CActive(EPriorityStandard), iTmServerTest(aTmServerTest) - { - CActiveScheduler::Add(this); - iDiscoveryTimer.CreateLocal(); - } - -void CDiscoveryTestTimer::RunL() - { - iTmServerTest.TestTimerDiscoveryTimedOut(); - } - -void CDiscoveryTestTimer::DoCancel() - { - iDiscoveryTimer.Cancel(); - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/src/testtimer.cpp --- a/services/terminalmodeservice/tsrc/upnptmservertest/src/testtimer.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/** -* 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: -* -*/ - - -// INCLUDE FILES -#include "testtimer.h" -#include "tmservertest.h" - -const TInt KMicroSecond = 1000000; - -CTestTimer* CTestTimer::NewL(CTmServerTest& aTmServerTest) - { - return new (ELeave) CTestTimer(aTmServerTest); - } - -CTestTimer::~CTestTimer() - { - Cancel(); - iTimer.Close(); - } - -void CTestTimer::After(const TInt aDuration) - { - iTimer.After(iStatus, aDuration*KMicroSecond); - SetActive(); - } - -CTestTimer::CTestTimer(CTmServerTest& aTmServerTest) -:CActive(EPriorityStandard), iTmServerTest(aTmServerTest) - { - CActiveScheduler::Add(this); - iTimer.CreateLocal(); - } - -void CTestTimer::RunL() - { - iTmServerTest.TestTimerTimedOutL(); - } - -void CTestTimer::DoCancel() - { - iTimer.Cancel(); - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/src/tmservertest.cpp --- a/services/terminalmodeservice/tsrc/upnptmservertest/src/tmservertest.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,462 +0,0 @@ -/** -* 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: -* -*/ - - -// INCLUDE FILES -#include -#include "tmservertest.h" -#include - -// EXTERNAL DATA STRUCTURES -//extern ?external_data; - -// EXTERNAL FUNCTION PROTOTYPES -//extern ?external_function( ?arg_type,?arg_type ); - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// LOCAL CONSTANTS AND MACROS -//const ?type ?constant_var = ?constant; -//#define ?macro_name ?macro_def - -// MODULE DATA STRUCTURES -//enum ?declaration -//typedef ?declaration - -// LOCAL FUNCTION PROTOTYPES -//?type ?function_name( ?arg_type, ?arg_type ); - -// FORWARD DECLARATIONS -//class ?FORWARD_CLASSNAME; - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ?function_name ?description. -// ?description -// Returns: ?value_1: ?description -// ?value_n: ?description_line1 -// ?description_line2 -// ----------------------------------------------------------------------------- -// -/* -?type ?function_name( - ?arg_type arg, // ?description - ?arg_type arg) // ?description - { - - ?code // ?comment - - // ?comment - ?code - } -*/ - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CTmServerTest::CTmServerTest -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- - -CTmServerTest::CTmServerTest() - { - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::ConstructL -// Symbian 2nd phase constructor can leave. -// -// Note: If OOM test case uses STIF Logger, then STIF Logger must be created -// with static buffer size parameter (aStaticBufferSize). Otherwise Logger -// allocates memory from heap and therefore causes error situations with OOM -// testing. For more information about STIF Logger construction, see STIF Users -// Guide. -// ----------------------------------------------------------------------------- -// -void CTmServerTest::ConstructL() - { - //Read logger settings to check whether test case name is to be - //appended to log file name. - RSettingServer settingServer; - TInt ret = settingServer.Connect(); - if(ret != KErrNone) - { - User::Leave(ret); - } - // Struct to StifLogger settigs. - TLoggerSettings loggerSettings; - // Parse StifLogger defaults from STIF initialization file. - ret = settingServer.GetLoggerSettings(loggerSettings); - if(ret != KErrNone) - { - User::Leave(ret); - } - // Close Setting server session - settingServer.Close(); - iAddTestCaseTitleToLogName = loggerSettings.iAddTestCaseTitle; - - iStdLog = CStifLogger::NewL( KTmServerTestLogPath, - KTmServerTestLogFile, - CStifLogger::ETxt, - CStifLogger::EFile, - ETrue, - ETrue, - ETrue, - EFalse, - ETrue, - ETrue/*, - 100 */); - iLog = iStdLog; - iVersionLogged = EFalse; - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CTmServerTest* CTmServerTest::NewL() - { - CTmServerTest* self = new (ELeave) CTmServerTest; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - - } - -// Destructor -CTmServerTest::~CTmServerTest() - { - iLog = NULL; - delete iStdLog; - iStdLog = NULL; - delete iTCLog; - iTCLog = NULL; - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::InitL -// InitL is used to initialize the Test Module. -// ----------------------------------------------------------------------------- -// -TInt CTmServerTest::InitL( - TFileName& /*aIniFile*/, - TBool /*aFirstTime*/ ) - { - return KErrNone; - - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::GetTestCasesL -// GetTestCases is used to inquire test cases from the Test Module. Test -// cases are stored to array of test cases. The Test Framework will be -// the owner of the data in the RPointerArray after GetTestCases return -// and it does the memory deallocation. -// ----------------------------------------------------------------------------- -// -TInt CTmServerTest::GetTestCasesL( - const TFileName& /*aConfig*/, - RPointerArray& aTestCases ) - { - - // Loop through all test cases and create new - // TTestCaseInfo items and append items to aTestCase array - for( TInt i = 0; Case(i).iMethod != NULL; i++ ) - { - - // Allocate new TTestCaseInfo from heap for a testcase definition. - TTestCaseInfo* newCase = new( ELeave ) TTestCaseInfo(); - - // PushL TTestCaseInfo to CleanupStack. - CleanupStack::PushL( newCase ); - - // Set number for the testcase. - // When the testcase is run, this comes as a parameter to RunTestCaseL. - newCase->iCaseNumber = i; - - // Set title for the test case. This is shown in UI to user. - newCase->iTitle.Copy( Case(i).iCaseName ); - - // Append TTestCaseInfo to the testcase array. After appended - // successfully the TTestCaseInfo object is owned (and freed) - // by the TestServer. - User::LeaveIfError(aTestCases.Append ( newCase ) ); - - // Pop TTestCaseInfo from the CleanupStack. - CleanupStack::Pop( newCase ); - - } - - return KErrNone; - - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::RunTestCaseL -// RunTestCaseL is used to run an individual test case specified -// by aTestCase. Test cases that can be run may be requested from -// Test Module by GetTestCases method before calling RunTestCase. -// ----------------------------------------------------------------------------- -// -TInt CTmServerTest::RunTestCaseL( - const TInt aCaseNumber, - const TFileName& /*aConfig*/, - TTestResult& aResult ) - { - if(!iVersionLogged) - { - SendTestModuleVersion(); - iVersionLogged = ETrue; - } - - // Return value - TInt execStatus = KErrNone; - - // Get the pointer to test case function - TCaseInfo tmp = Case ( aCaseNumber ); - - _LIT( KLogStartTC, "Starting testcase [%S]" ); - iLog->Log( KLogStartTC, &tmp.iCaseName); - - // Check that case number was valid - if ( tmp.iMethod != NULL ) - { - //Open new log file with test case title in file name - if(iAddTestCaseTitleToLogName) - { - //Delete test case logger if exists - if(iTCLog) - { - delete iTCLog; - iTCLog = NULL; - } - - TFileName logFileName; - TName title; - TestModuleIf().GetTestCaseTitleL(title); - - logFileName.Format(KTmServerTestLogFileWithTitle, &title); - - iTCLog = CStifLogger::NewL(KTmServerTestLogPath, - logFileName, - CStifLogger::ETxt, - CStifLogger::EFile, - ETrue, - ETrue, - ETrue, - EFalse, - ETrue, - ETrue/*, - 100*/); - iLog = iTCLog; - } - CActiveScheduler* activeScheduler = new (ELeave) CActiveScheduler; - CActiveScheduler::Install( activeScheduler ); - // Valid case was found, call it via function pointer - iMethod = tmp.iMethod; - //execStatus = ( this->*iMethod )( aResult ); - TRAPD(err, execStatus = ( this->*iMethod )( aResult )); - delete activeScheduler; - if(iAddTestCaseTitleToLogName) - { - //Restore standard log and destroy test case logger - iLog = iStdLog; - delete iTCLog; //Close test case log - iTCLog = NULL; - } - User::LeaveIfError(err); - } - else - { - // Valid case was not found, return error. - execStatus = KErrNotFound; - } - - // Return case execution status (not the result of the case execution) - return execStatus; - - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::OOMTestQueryL -// Used to check if a particular test case should be run in OOM conditions and -// which memory allocations should fail. -// ----------------------------------------------------------------------------- -// -TBool CTmServerTest::OOMTestQueryL( - const TFileName& /* aTestCaseFile */, - const TInt aCaseNumber, - TOOMFailureType& /* aFailureType */, - TInt& aFirstMemFailure, - TInt& aLastMemFailure ) - { - _LIT( KLogOOMTestQueryL, "CTmServerTest::OOMTestQueryL" ); - iLog->Log( KLogOOMTestQueryL ); - - aFirstMemFailure = Case( aCaseNumber ).iFirstMemoryAllocation; - aLastMemFailure = Case( aCaseNumber ).iLastMemoryAllocation; - - return Case( aCaseNumber ).iIsOOMTest; - - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::OOMTestInitializeL -// Used to perform the test environment setup for a particular OOM test case. -// Test Modules may use the initialization file to read parameters for Test -// Module initialization but they can also have their own configure file or -// some other routine to initialize themselves. -// -// NOTE: User may add implementation for OOM test environment initialization. -// Usually no implementation is required. -// ----------------------------------------------------------------------------- -// -void CTmServerTest::OOMTestInitializeL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ) - { - _LIT( KLogInfo, "CTmServerTest::OOMTestInitializeL" ); - iLog->Log( KLogInfo ); - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::OOMHandleWarningL -// In some cases the heap memory allocation should be skipped, either due to -// problems in the OS code or components used by the code being tested, or even -// inside the tested components which are implemented this way on purpose (by -// design), so it is important to give the tester a way to bypass allocation -// failures. -// -// NOTE: User may add implementation for OOM test warning handling. Usually no -// implementation is required. -// ----------------------------------------------------------------------------- -// -void CTmServerTest::OOMHandleWarningL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TInt& /* aFailNextValue */ ) - { - _LIT( KLogInfo, "CTmServerTest::OOMHandleWarningL" ); - iLog->Log( KLogInfo ); - } - -// ----------------------------------------------------------------------------- -// CTmServerTest::OOMTestFinalizeL -// Used to perform the test environment cleanup for a particular OOM test case. -// -// NOTE: User may add implementation for OOM test environment finalization. -// Usually no implementation is required. -// ----------------------------------------------------------------------------- -// -void CTmServerTest::OOMTestFinalizeL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ) - { - _LIT( KLogInfo, "CTmServerTest::OOMTestFinalizeL" ); - iLog->Log( KLogInfo ); - } - -//----------------------------------------------------------------------------- -// CTmServerTest::SendTestModuleVersion -// Method used to send version of test module -//----------------------------------------------------------------------------- - -void CTmServerTest::SendTestModuleVersion() - { - TVersion moduleVersion; - moduleVersion.iMajor = TEST_MODULE_VERSION_MAJOR; - moduleVersion.iMinor = TEST_MODULE_VERSION_MINOR; - moduleVersion.iBuild = TEST_MODULE_VERSION_BUILD; - - TFileName moduleName; - moduleName = _L("upnptmservertest.dll"); - - TBool newVersionOfMethod = ETrue; - TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// LibEntryL is a polymorphic Dll entry point -// Returns: CTestModuleBase*: Pointer to Test Module object -// ----------------------------------------------------------------------------- -// -EXPORT_C CTestModuleBase* LibEntryL() - { - return CTmServerTest::NewL(); - - } - -// ----------------------------------------------------------------------------- -// SetRequirements handles test module parameters(implements evolution -// version 1 for test module's heap and stack sizes configuring). -// Returns: TInt: Symbian error code. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt SetRequirements( CTestModuleParam*& /*aTestModuleParam*/, - TUint32& /*aParameterValid*/ ) - { - - /* --------------------------------- NOTE --------------------------------- - USER PANICS occurs in test thread creation when: - 1) "The panic occurs when the value of the stack size is negative." - 2) "The panic occurs if the minimum heap size specified is less - than KMinHeapSize". - KMinHeapSize: "Functions that require a new heap to be allocated will - either panic, or will reset the required heap size to this value if - a smaller heap size is specified". - 3) "The panic occurs if the minimum heap size specified is greater than - the maximum size to which the heap can grow". - Other: - 1) Make sure that your hardware or Symbian OS is supporting given sizes. - e.g. Hardware might support only sizes that are divisible by four. - ------------------------------- NOTE end ------------------------------- */ - - // Normally STIF uses default heap and stack sizes for test thread, see: - // KTestThreadMinHeap, KTestThreadMinHeap and KStackSize. - // If needed heap and stack sizes can be configured here by user. Remove - // comments and define sizes. - -/* - aParameterValid = KStifTestModuleParameterChanged; - - CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); - // Stack size - param->iTestThreadStackSize= 16384; // 16K stack - // Heap sizes - param->iTestThreadMinHeap = 4096; // 4K heap min - param->iTestThreadMaxHeap = 1048576;// 1M heap max - - aTestModuleParam = param; -*/ - return KErrNone; - - } - - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice/tsrc/upnptmservertest/src/tmservertestcases.cpp --- a/services/terminalmodeservice/tsrc/upnptmservertest/src/tmservertestcases.cpp Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3748 +0,0 @@ -/** -* 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: -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include "testtimer.h" -#include "discoverytesttimer.h" -#include "tmservertest.h" - - -// LOCAL CONSTANTS AND MACROS -_LIT8(KTestSvgMimeType, "image/svg+xml"); -_LIT8(KTmServerDevice, "urn:schemas-upnp-org:device:TmServerDevice:1" ); -_LIT8(KTmServerService, "urn:schemas-upnp-org:service:TmApplicationServer:1" ); -_LIT8(KTmServerServiceType, "TmApplicationServer:1" ); -_LIT8(KTmServerServiceType1, "TmClientProfile:1" ); -_LIT8(KBtMacValue, "00257df016d5"); -_LIT8(KArgTypeAppStatusUpdate, "AppStatusUpdate"); -_LIT8(KGetAppStatus, "GetApplicationStatus"); -_LIT8(KAppStatus, "AppStatus"); -_LIT8(KGetApplicationList, "GetApplicationList"); -_LIT8(KAppListing, "AppListing"); -_LIT8(KLaunchApp, "LaunchApplication"); -_LIT8(KTerminateApp, "TerminateApplication"); -_LIT8(KAppLaunchStatus, "AppURI"); -_LIT8(KAppTerminateStatus, "TerminationResult"); -_LIT8(KAppId , "AppID"); -_LIT8(KAppFilter, "AppListingFilter"); -_LIT8(KResultProfile , "resultProfile"); -_LIT8(KSetClientProfile , "SetClientProfile"); -_LIT8(KGetClientProfile, "GetClientProfile"); -_LIT8(KGetMaxNumProfiles, "GetMaxNumProfiles"); -_LIT8(KClientProfile , "clientProfile"); -_LIT8(KNumProfilesAllowed , "numProfilesAllowed"); -_LIT8(KProfileId, "ProfileID"); -_LIT8(KProfileId1, "profileID"); -_LIT8(KBackground, "Background"); -_LIT8(KForeground, "Foreground"); -_LIT8(KAppListFilterValue1, "\"icon@mimetype=\"*svg+xml*\",icon@width=\"*\",icon@height=\"*\",icon@depth=\"*\"\""); -_LIT8(KAppListFilterValue2, "\"name=\"*nav*\",description=\"*\",appInfo@appCategory=\"*\",appInfo@trustLevel=\"*\",displayInfo@contentCategory=\"*\",displayInfo@contentRules=\"*\",displayInfo@trustLevel=\"*\",allowedProfileIDs=\"*\"\""); -_LIT8(KAppListFilterValue3, "\"name=\"*bluetooth*\",description=\"*\",icon@mimetype=\"*svg+xml*\",remotingInfo@protocolID=\"*\",remotingInfo@direction=\"*\",appInfo@appCategory=\"*\",audioInfo@audioType=\"*\",resourceStatus=\"free\",signature=\"*\"\""); -_LIT8(KAppListFilterValue4, "\"name=\"*\",description=\"*Audio*\",icon@mimetype=\"*svg+xml*\",remotingInfo@protocolID=\"*\",remotingInfo@format=\"*\",appInfo@appCategory=\"*\",audioInfo@audioType=\"*\",resourceStatus=\"free\",signature=\"*\"\""); -_LIT8(KWildCard, "*"); -_LIT(KIconPathMusicUnLaunched, "c:\\upnptmserver\\icons\\music_unlaunched.svg"); -_LIT(KIconPathMusicLaunched, "c:\\upnptmserver\\icons\\music_launched.svg"); -_LIT(KIconPathMaps, "c:\\upnptmserver\\icons\\maps.svg"); -_LIT(KIconPathBtA2DpUnLaunched, "c:\\upnptmserver\\icons\\gallery.svg"); -_LIT(KIconPathBtA2DpLaunched, "c:\\upnptmserver\\icons\\homemedia.svg"); -_LIT(KIconPathBtHfp, "c:\\upnptmserver\\icons\\videos.svg"); -_LIT(KIconDevicePath, "c:\\upnptmserver\\icons\\s60_device.svg"); -_LIT8(KDeviceInfo, "10true" - "pre,posttruefalse" - ""); - -_LIT8(KClientProfileInfo, "<clientProfile><clientID>Cl_1</clientID><friendlyName>Client One</friendlyName><manufacturer>man_2</manufacturer><modelName>CL_Model2</modelName><modelNumber>2009</modelNumber><iconPreference><width>240</width><height>240</height></iconPreference><contentRules><rule><ruleId>0</ruleId><ruleValue>0.1</ruleValue></rule><rule><ruleId>1</ruleId></rule></contentRules></clientProfile>"); - -_LIT8(KDeviceLockedClientProfile, "<clientProfile><clientID>Cl_2</clientID></clientProfile>"); - -_LIT8(KXmlSignature, "<Signature Id= "AppListSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/><SignatureMethodAlgorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=""></Reference></SignedInfo></Signature>"); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CTmServerTest::Case -// Returns a test case by number. -// -// This function contains an array of all available test cases -// i.e pair of case name and test function. If case specified by parameter -// aCaseNumber is found from array, then that item is returned. -// -// The reason for this rather complicated function is to specify all the -// test cases only in one place. It is not necessary to understand how -// function pointers to class member functions works when adding new test -// cases. See function body for instructions how to add new test case. -// ----------------------------------------------------------------------------- -// -const TCaseInfo CTmServerTest::Case ( - const TInt aCaseNumber ) const - { - - /** - * To add new test cases, implement new test case function and add new - * line to KCases array specify the name of the case and the function - * doing the test case - * In practice, do following - * 1) Make copy of existing test case function and change its name - * and functionality. Note that the function must be added to - * TmServerTest.cpp file and to TmServerTest.h - * header file. - * - * 2) Add entry to following KCases array either by using: - * - * 2.1: FUNCENTRY or ENTRY macro - * ENTRY macro takes two parameters: test case name and test case - * function name. - * - * FUNCENTRY macro takes only test case function name as a parameter and - * uses that as a test case name and test case function name. - * - * Or - * - * 2.2: OOM_FUNCENTRY or OOM_ENTRY macro. Note that these macros are used - * only with OOM (Out-Of-Memory) testing! - * - * OOM_ENTRY macro takes five parameters: test case name, test case - * function name, TBool which specifies is method supposed to be run using - * OOM conditions, TInt value for first heap memory allocation failure and - * TInt value for last heap memory allocation failure. - * - * OOM_FUNCENTRY macro takes test case function name as a parameter and uses - * that as a test case name, TBool which specifies is method supposed to be - * run using OOM conditions, TInt value for first heap memory allocation - * failure and TInt value for last heap memory allocation failure. - */ - - static TCaseInfoInternal const KCases[] = - { - // [test cases entries] - do not remove - - ENTRY( "Start TM Server Device", CTmServerTest::StartTmServerDeviceL ), - ENTRY( "Publish TM Server Service", CTmServerTest::PublishTmServerServiceL ), - ENTRY( "Stop TM Server Device", CTmServerTest::StopTmServerDeviceL ), - ENTRY( "ReStart TM Server Device", CTmServerTest::ReStartTmServerDeviceL ), - ENTRY( "Handle LaunchApp Command", CTmServerTest::HandleLaunchAppActionL ), - ENTRY( "Handle Invalid AppId LaunchApp Command", CTmServerTest::HandleInvalidAppIdLaunchAppActionL ), - ENTRY( "Handle Invalid ProfileId LaunchApp Command", CTmServerTest::HandleInvalidProfileIdLaunchAppActionL ), - ENTRY( "Handle LaunchApp Command For Non-Existent AppID", CTmServerTest::HandleNonExistentLaunchAppActionL ), - ENTRY( "Handle LaunchApp Command For UnAuthorized AppID", CTmServerTest::HandleUnauthorizedLaunchAppActionL ), - ENTRY( "Handle Device Locked Condition For LaunchApp Command", CTmServerTest::HandleDeviceLockedLaunchAppActionL ), - ENTRY( "Handle TerminateApp Command", CTmServerTest::HandleTerminateAppActionL), - ENTRY( "Handle TerminateApp Command For Non-Existent AppID", CTmServerTest::HandleNonExistentTerminateAppActionL), - ENTRY( "Handle Invalid AppId TerminateApp Command", CTmServerTest::HandleInvalidAppIdTerminateAppActionL), - ENTRY( "Handle Invalid ProfileId TerminateApp Command", CTmServerTest::HandleInvalidProfileIdTerminateAppActionL), - ENTRY( "Handle TerminateApp Command For UnAuthorized AppID", CTmServerTest::HandleUnauthorizedTerminateAppActionL), - ENTRY( "Handle Device Locked Condition For TerminateApp Command", CTmServerTest::HandleDeviceLockedTerminateAppActionL ), - ENTRY( "Handle GetAppStatus Command ", CTmServerTest::HandleGetAppStatusActionL ), - ENTRY( "Handle GetAppStatus Command For All the Applications", CTmServerTest::HandleWildcardGetAppStatusActionL ), - ENTRY( "Handle GetAppStatus Command For Invalid AppId", CTmServerTest::HandleInvalidAppIdGetAppStatusActionL ), - ENTRY( "Handle GetAppStatus Command For Non-Existent AppID", CTmServerTest::HandleNonExistentGetAppStatusActionL ), - ENTRY( "Handle GetAppList Command with Filter1", CTmServerTest:: HandleGetAppListActionFilter1L ), - ENTRY( "Handle GetAppList Command with Filter2", CTmServerTest:: HandleGetAppListActionFilter2L ), - ENTRY( "Handle GetAppList Command with Filter3", CTmServerTest:: HandleGetAppListActionFilter3L ), - ENTRY( "Handle GetAppList Command with Filter4", CTmServerTest:: HandleGetAppListActionFilter4L ), - ENTRY( "Handle GetAppList Command with No Filter", CTmServerTest:: HandleGetAppListActionNoFilterL ), - ENTRY( "Handle GetAppList Command with Invalid Arg1", CTmServerTest:: HandleGetAppListActionInvalidArg1L ), - ENTRY( "Handle GetAppList Command with Invalid Arg2", CTmServerTest:: HandleGetAppListActionInvalidArg2L ), - ENTRY( "Handle GetAppList Command with Invalid Arg3", CTmServerTest:: HandleGetAppListActionInvalidArg3L ), - ENTRY( "Handle GetAppList Command with Invalid Arg4", CTmServerTest:: HandleGetAppListActionInvalidArg4L ), - ENTRY( "Handle GetAppList Command with Invalid Arg5", CTmServerTest:: HandleGetAppListActionInvalidArg5L ), - ENTRY( "Handle Invalid ProfileId GetAppList Command", CTmServerTest:: HandleInvalidProfileIdGetAppListActionL), - ENTRY( "Handle Operation Rejected Condition For GetAppList Command", CTmServerTest:: HandleGetAppListActionOperationRejectedL), - ENTRY( "Handle SetClientProfile Command", CTmServerTest:: HandleSetClientProfileActionL ), - ENTRY( "Handle Invalid ProfileId SetClientProfile Command", CTmServerTest:: HandleInvalidProfileIdSetClientProfileActionL ), - ENTRY( "Handle Invalid Profile SetClientProfile Command", CTmServerTest:: HandleInvalidProfileSetClientProfileActionL ), - ENTRY( "Handle Device Locked Condition For SetClientProfile Command", CTmServerTest:: HandleDeviceLockedSetClientProfileActionL ), - ENTRY( "Handle Resource Busy Condition For SetClientProfile Command", CTmServerTest:: HandleResourceBusySetClientProfileActionL ), - ENTRY( "Handle GetClientProfile Command", CTmServerTest:: HandleGetClientProfileActionL ), - ENTRY( "Handle Invalid ProfileId GetClientProfile Command", CTmServerTest:: HandleInvalidProfileIdGetClientProfileActionL ), - ENTRY( "Handle GetMaxNumProfiles Command", CTmServerTest:: HandleGetMaxNumProfilesActionL ), - ENTRY( "Handle Operation Rejected Condition For GetMaxNumProfiles Command", CTmServerTest:: HandleGetMaxNumProfilesOperationRejectedL ), - ENTRY( "Register Duplicate Application", CTmServerTest::RegisterDuplicateAppL), - ENTRY( "Register Duplicate Applications", CTmServerTest::RegisterDuplicateAppsL), - ENTRY( "UnRegister Application", CTmServerTest::UnRegisterAppL), - ENTRY( "UnRegister Multiple Applications", CTmServerTest::UnRegisterAppsL), - ENTRY( "UnRegister UnRegistered Application", CTmServerTest::UnRegisterUnRegisteredAppL), - ENTRY( "UnRegister Multiple UnRegistered Applications", CTmServerTest::UnRegisterUnRegisteredAppsL), - ENTRY( "Handle Event For AppStatus Update", CTmServerTest::HandleEventAppStatusUpdateL ), - ENTRY( "Handle Event For AppList Update", CTmServerTest::HandleEventAppListUpdateL ), - ENTRY( "Handle Event For Duplicate AppStatus Update", CTmServerTest::HandleEventDuplicateAppStatusUpdateL), - ENTRY( "Handle Event For ProfileIdList Status Update", CTmServerTest::HandleEventProfileIdListStatusUpdateL), - - // OOM Testcases - OOM_ENTRY( "[OOM_StartTmServerDevice]", CTmServerTest::StartTmServerDeviceL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleGetAppListWithFilter]", CTmServerTest:: HandleGetAppListActionFilter1L,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleGetAppListWithoutFilter]", CTmServerTest:: HandleGetAppListActionNoFilterL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleSetClientProfileCommand]", CTmServerTest:: HandleSetClientProfileActionL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleGetAppStatusCommand]", CTmServerTest:: HandleGetAppStatusActionL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleGetAppStatusForAllApplications]", CTmServerTest::HandleWildcardGetAppStatusActionL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleAppStatusUpdateEvent]", CTmServerTest::HandleEventAppStatusUpdateL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_HandleDuplicateAppStatusUpdateEvent]", CTmServerTest::HandleEventDuplicateAppStatusUpdateL,ETrue,1,5 ), - OOM_ENTRY( "[OOM_UnRegisterApplications]", CTmServerTest::UnRegisterAppsL,ETrue,1,5 ) - }; - - // Verify that case number is valid - if( (TUint) aCaseNumber >= sizeof( KCases ) / - sizeof( TCaseInfoInternal ) ) - { - // Invalid case, construct empty object - TCaseInfo null( (const TText*) L"" ); - null.iMethod = NULL; - null.iIsOOMTest = EFalse; - null.iFirstMemoryAllocation = 0; - null.iLastMemoryAllocation = 0; - return null; - } - - // Construct TCaseInfo object and return it - TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName ); - tmp.iMethod = KCases[ aCaseNumber ].iMethod; - tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest; - tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation; - tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation; - return tmp; - } - - -//========================= TEST CASES ======================================================= - -TInt CTmServerTest::StartTmServerDeviceL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Start Terminalmode Server Device" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo,*this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - // Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iDeviceVerified) - { - _LIT( KDescription , "Terminalmode Server Device started successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Start of Terminalmode Server Device Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::PublishTmServerServiceL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Publish Terminalmode server Service" ); - iLog->Log( KLogInfo ); - - iTmServerServiceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo,*this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iServiceVerified) - { - _LIT( KDescription , "Terminalmode server Service published successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Publishing of Terminalmode server Service Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::StopTmServerDeviceL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Stop Terminalmode server Device" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo,*this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - if ( iDeviceVerified ) - { - //Stop the tmserver device and its services - iTmServer->StopL(); - } - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iDeviceLostVerified ) - { - _LIT( KDescription , "Terminalmode server Device stopped successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Stopping of Terminalmode server Device Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::ReStartTmServerDeviceL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "ReStart Terminalmode server Device" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo,*this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - //Start the tmserver device and its services - iTmServer->StartL(); - //Stop the tmserver device and its services - iTmServer->StopL(); - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iDeviceVerified) - { - _LIT( KDescription , "Terminalmode server Device re-started successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Re-starting of Terminalmode server Device Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::RegisterDuplicateAppL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Register Duplicate Application" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - _LIT8(KAppDesc, "Bluetooth A2DP Audio Server"); - iRemotableApp = CUpnpRemotableApp::NewL( KAppId2Value ,_L8("Bluetooth A2DP")); - iRemotableApp->SetAppDescriptionL(KAppDesc()); - - CUpnpTmInfoElement& tmInfoElement = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement.AddTmInfoElementL(_L8("protocolID"),_L8("BTA2DP")); - tmInfoElement.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement1 = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement1.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000003")); - tmInfoElement1.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - iRemotableApp->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpUnLaunched, KIconWidth2, KIconHeight2, KIconDepth1,KTestSvgMimeType)); - iRemotableApp->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpLaunched,KIconWidth3, KIconHeight3, KIconDepth1,KTestSvgMimeType)); - iRemotableApp->SetResourceStatusL(_L8("free")); - - // Register the application - iTmServer->RegisterAppL(iRemotableApp); - - iRemotableApp1 = CUpnpRemotableApp::NewL( KAppId2Value ,_L8("Bluetooth A2DP")); - iRemotableApp1->SetAppDescriptionL(KAppDesc()); - - CUpnpTmInfoElement& tmInfoElement2 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement2.AddTmInfoElementL(_L8("protocolID"),_L8("BTA2DP")); - tmInfoElement2.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement3 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement3.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000003")); - tmInfoElement3.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpUnLaunched, KIconWidth2, KIconHeight2, KIconDepth1,KTestSvgMimeType)); - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpLaunched,KIconWidth3, KIconHeight3, KIconDepth1,KTestSvgMimeType)); - iRemotableApp1->SetResourceStatusL(_L8("free")); - - // Register the application which is already registered - iTmServer->RegisterAppL(iRemotableApp1); - - _LIT( KDescription , "Registering of duplicate app is handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - - delete iTmServer; - iTmServer = NULL; - - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::RegisterDuplicateAppsL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Register Duplicate Applications" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - _LIT8(KAppDesc, "Mobile Navigation Application"); - iRemotableApp = CUpnpRemotableApp::NewL( KAppIdValue ,_L8("Navigation")); - iRemotableApp->SetAppDescriptionL(KAppDesc()); - CUpnpTmInfoElement& tmInfoElement = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement.AddTmInfoElementL(_L8("protocolID"),_L8("VNC")); - - CUpnpTmInfoElement& tmInfoElement1 = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement1.AddTmInfoElementL(_L8("appCategory"),_L8("0x00010001")); - tmInfoElement1.AddTmInfoElementL(_L8("trustLevel"),_L8("0x80")); - - CUpnpTmInfoElement& tmInfoElement2 = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::EDisplayInfo); - tmInfoElement2.AddTmInfoElementL(_L8("contentCategory"),_L8("0x0000001")); - tmInfoElement2.AddTmInfoElementL(_L8("contentRules"),_L8("0x00000FE")); - tmInfoElement2.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - iRemotableApp->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMaps, KIconWidth1, KIconHeight1, KIconDepth,KTestSvgMimeType)); - - // Register the application - iTmServer->RegisterAppL(iRemotableApp); - - _LIT8(KAppDesc1, "RTP Audio Server"); - iRemotableApp1 = CUpnpRemotableApp::NewL( KAppId1Value ,_L8("RTP Server")); - iRemotableApp1->SetAppDescriptionL(KAppDesc1()); - - CUpnpTmInfoElement& tmInfoElement3 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement3.AddTmInfoElementL(_L8("protocolID"),_L8("RTP")); - tmInfoElement3.AddTmInfoElementL(_L8("format"),_L8("99")); - tmInfoElement3.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement4 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement4.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000002")); - tmInfoElement4.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - CUpnpTmInfoElement& tmInfoElement5 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::EAudioInfo); - tmInfoElement5.AddTmInfoElementL(_L8("audioType"),_L8("all")); - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicUnLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp1->SetResourceStatusL(_L8("free")); - - iRemotableAppArray.AppendL(iRemotableApp1); - - iRemotableApp2 = CUpnpRemotableApp::NewL( KAppId1Value ,_L8("RTP Server")); - iRemotableApp2->SetAppDescriptionL(KAppDesc1()); - - CUpnpTmInfoElement& tmInfoElement6 = iRemotableApp2->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement6.AddTmInfoElementL(_L8("protocolID"),_L8("RTP")); - tmInfoElement6.AddTmInfoElementL(_L8("format"),_L8("99")); - tmInfoElement6.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement7 = iRemotableApp2->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement7.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000002")); - tmInfoElement7.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - CUpnpTmInfoElement& tmInfoElement8 = iRemotableApp2->CreateTmInfoElementL(CUpnpTmInfoElement::EAudioInfo); - tmInfoElement8.AddTmInfoElementL(_L8("audioType"),_L8("all")); - iRemotableApp2->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicUnLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp2->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp2->SetResourceStatusL(_L8("free")); - iRemotableAppArray.AppendL(iRemotableApp2); - - // Register the dulplicate applications - iTmServer->RegisterAppsL( iRemotableAppArray); - - _LIT( KDescription , "Registering of duplicate applications is handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - iRemotableAppArray.Close(); - delete iTmServer; - iTmServer = NULL; - - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::UnRegisterAppL( TTestResult& aResult ) - { - _LIT( KLogInfo, "UnRegister Application" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Unregister the application by specifying AppId - iTmServer->UnRegisterApp( KAppIdValue ); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - _LIT( KDescription , "Application is un-registered successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - - delete iTestTimer; - iTestTimer = NULL; - - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::UnRegisterAppsL( TTestResult& aResult ) - { - _LIT( KLogInfo, "UnRegister Multiple Applications" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - RArray appIdArray; - appIdArray.AppendL( KAppId1Value ); - appIdArray.AppendL( KAppId2Value ); - - //Unregister multiple applications by specifying array of AppIds - iTmServer->UnRegisterApps( appIdArray); - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - _LIT( KDescription , "Multiple Applications are un-registered successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - appIdArray.Close(); - - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::UnRegisterUnRegisteredAppL( TTestResult& aResult ) - { - _LIT( KLogInfo, "UnRegister UnRegistered Application" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Unregister the application which is already unregistered - iTmServer->UnRegisterApp( KNonExistentAppIdValue ); - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - _LIT( KDescription , "UnRegistering of UnRegistered Application is handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - - delete iTestTimer; - iTestTimer = NULL; - - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::UnRegisterUnRegisteredAppsL( TTestResult& aResult ) - { - _LIT( KLogInfo, "UnRegister Multiple UnRegistered Applications" ); - iLog->Log( KLogInfo ); - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - RArray appIdArray; - appIdArray.AppendL( KNonExistentAppIdValue ); - appIdArray.AppendL( KNonExistentAppId1Value ); - - //Unregister multiple applications which are already unregistered - iTmServer->UnRegisterApps( appIdArray); - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - _LIT( KDescription , "UnRegistering of UnRegistered Applications is handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - - appIdArray.Close(); - delete iTestTimer; - iTestTimer = NULL; - - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleEventDuplicateAppStatusUpdateL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Event For Duplicate AppStatus Update" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Subscribe to Services - iSearchDevice->SubscribeToServiceL(); - } - RArray updatedAppIdList; - updatedAppIdList.Append(KAppId1Value); - updatedAppIdList.Append(KAppId1Value); - //Update the status of applications which have undergone some change - iTmServer->UpdateAppStatusL(updatedAppIdList); - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if ( iStatusNotified ) - { - _LIT( KDescription , "Handle Event For Duplicate AppStatus Update handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Handle Event For Duplicate AppStatus Update handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - updatedAppIdList.Close(); - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleEventProfileIdListStatusUpdateL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Event For ProfileIdList Status Update" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Subscribes to a service - iSearchDevice->SubscribeToServiceL(); - } - - RArray UnusedProfileIdList; - UnusedProfileIdList.Append(5); - UnusedProfileIdList.Append(6); - //Update the list of profile IDs for profiles which are not used - iTmServer->UpdateUnusedProfileIdsL(UnusedProfileIdList); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if ( iStatusNotified ) - { - _LIT( KDescription , "Handle Event For ProfileIdList Status Update handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Handle Event For ProfileIdList Status Update handling failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - - UnusedProfileIdList.Close(); - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleLaunchAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo , "Handle LaunchApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application remotely by specifying appId and profileId - iSearchDevice->LaunchAppActionL(KAppId1Value,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command handled Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleTerminateAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle TerminateApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application which is already running - iSearchDevice->TerminateAppActionL( KAppId1Value,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if ( iStopApp) - { - _LIT( KDescription , "TerminateApp Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidAppIdLaunchAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid AppId LaunchApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application by specifying invalid appId - iSearchDevice->LaunchAppActionL( KInvalidAppIdValue,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command with invalid AppId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command with invalid AppId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileIdLaunchAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid ProfileId LaunchApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application by specifying invalid profileId - iSearchDevice->LaunchAppActionL( KAppId1Value,KInvalidProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command with invalid ProfileId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command with invalid ProfileId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleNonExistentLaunchAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle LaunchApp Command For Non-Existent AppID" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application by specifying non-existent appId - iSearchDevice->LaunchAppActionL( KNonExistentAppIdValue, KProfileIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command For Non-Existent AppID handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command For Non-Existent AppID handled Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleUnauthorizedLaunchAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle LaunchApp Command For UnAuthorized AppID" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application by specifying unauthorized appId - iSearchDevice->LaunchAppActionL(KAppId5Value,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command For UnAuthorized AppID handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command For UnAuthorized AppID handled Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleDeviceLockedLaunchAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Device Locked Condition For LaunchApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Launch the application - iSearchDevice->LaunchAppActionL(KAppId4Value,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iStartApp ) - { - _LIT( KDescription , "LaunchApp Command For Device Locked Condition handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "LaunchApp Command For Device Locked Condition handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleNonExistentTerminateAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle TerminateApp Command For Non-Existent AppID" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application by specifying unauthorized appId - iSearchDevice->TerminateAppActionL( KNonExistentAppIdValue,KProfileIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iStopApp) - { - _LIT( KDescription , "TerminateApp Command For Non-Existent App ID handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command handling for Non-Existent App Id Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidAppIdTerminateAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid AppId TerminateApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application by specifying invalid appId - iSearchDevice->TerminateAppActionL( KInvalidAppIdValue,KProfileIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iStopApp) - { - _LIT( KDescription , "TerminateApp Command with invalid AppId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command with invalid AppId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileIdTerminateAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid ProfileId TerminateApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application by specifying invalid profileId - iSearchDevice->TerminateAppActionL( KAppId1Value,KInvalidProfileIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iStopApp) - { - _LIT( KDescription , "TerminateApp Command with invalid ProfileId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command with invalid ProfileId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleUnauthorizedTerminateAppActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle TerminateApp Command UnAuthorized AppID" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application by specifying unauthorized appId - iSearchDevice->TerminateAppActionL( KAppId5Value,KProfileIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if ( iStopApp) - { - _LIT( KDescription , "TerminateApp Command For Un-Authorized App ID handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command handling For Un-Authorized App ID Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleDeviceLockedTerminateAppActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Device Locked Condition For TerminateApp Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Terminate the application - iSearchDevice->TerminateAppActionL(KAppId4Value,KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iStopApp ) - { - _LIT( KDescription , "TerminateApp Command For Device Locked Condition handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "TerminateApp Command For Device Locked Condition handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppStatusActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppStatus Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the status of application - iSearchDevice->GetAppStatusActionL( KAppId1Value ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetAppStatus) - { - _LIT( KDescription , "GetAppStatus Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppStatus Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleWildcardGetAppStatusActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppStatus Command For All the Applications" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the status of all the application - iSearchDevice->GetAppStatusActionL( KAppId5Value ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetAppStatus) - { - _LIT( KDescription , "GetAppStatus Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppStatus Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - - -TInt CTmServerTest::HandleInvalidAppIdGetAppStatusActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppStatus Command For Invalid AppId" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the status of the application by specifying invalid appId - iSearchDevice->GetAppStatusActionL( KInvalidAppIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetAppStatus) - { - _LIT( KDescription , "GetAppStatus Command with invalid AppId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppStatus Command with invalid AppId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleNonExistentGetAppStatusActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppStatus Command For Non-Existent AppID" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the status of the application by specifying non existent appId - iSearchDevice->GetAppStatusActionL( KNonExistentAppIdValue ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetAppStatus) - { - _LIT( KDescription , "GetAppStatus Command for Non-Existent App ID handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppStatus Command handling for Non-Existent App ID Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleEventAppStatusUpdateL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Event For AppStatus Update" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Subscribes to a service - iSearchDevice->SubscribeToServiceL(); - } - RArray updatedAppIdList; - updatedAppIdList.Append(KAppId1Value); - updatedAppIdList.Append(KAppId2Value); - - //Update the status of applications which have undergone some change - iTmServer->UpdateAppStatusL(updatedAppIdList); - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if ( iStatusNotified ) - { - _LIT( KDescription , "Handle Event For AppStatus Update handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Handle Event For AppStatus Update handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - updatedAppIdList.Close(); - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleEventAppListUpdateL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Event For AppList Update" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer ->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Subscribes to a service - iSearchDevice->SubscribeToServiceL(); - } - - TInt errorCode; - CUpnpRemotableApp& aRemotableApp = iTmServer->GetRemotableApp(KAppIdValue ,errorCode ); - if (errorCode == KErrNone) - { - _LIT8(KAppDesc, "Mobile Device Display"); - aRemotableApp.SetAppDescriptionL(KAppDesc()); - } - RArray updatedAppIdList; - updatedAppIdList.Append(KAppIdValue); - updatedAppIdList.Append(KAppId2Value); - - //Update the list of applications which have been modified to/from the list - iTmServer->UpdateAppListL(updatedAppIdList); - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if ( iStatusNotified ) - { - _LIT( KDescription , "Handle Event For AppList Update handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Handle Event For AppList Update handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - updatedAppIdList.Close(); - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionFilter1L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Filter1" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying filter value - iSearchDevice->GetAppListActionL(KAppListFilterValue1(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Filter1 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Filter1 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionFilter2L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList with Filter2 Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying filter value - iSearchDevice->GetAppListActionL(KAppListFilterValue2(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Filter2 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Filter2 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionFilter3L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList with Filter3 Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying filter value - iSearchDevice->GetAppListActionL(KAppListFilterValue3(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Filter3 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Filter3 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionFilter4L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList with Filter4 Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying filter value - iSearchDevice->GetAppListActionL(KAppListFilterValue4(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Filter4 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Filter4 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionInvalidArg1L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Invalid Arg1" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidFilter1,"\"name=\"*Audio*\"" ); - //Retrieve the list of applications by specifying invalid filter value - iSearchDevice->GetAppListActionL(KInvalidFilter1(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Invalid Arg1 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Invalid Arg1 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - - -TInt CTmServerTest::HandleGetAppListActionInvalidArg2L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Invalid Arg2" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidFilter2, "\"name=\"*nav*\",appInfo=\"*\"\""); - //Retrieve the list of applications by specifying invalid filter value - iSearchDevice->GetAppListActionL(KInvalidFilter2(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Invalid Arg2 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Invalid Arg2 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionInvalidArg3L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Invalid Arg3" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidFilter3, "\"name=\"*Audio*\",@audioType=\"*\"\""); - //Retrieve the list of applications by specifying invalid filter value - iSearchDevice->GetAppListActionL(KInvalidFilter3(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Invalid Arg3 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Invalid Arg3 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionInvalidArg4L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Invalid Arg4" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidFilter4, "\"icon@mimetype\"*svg+xml*\"\""); - //Retrieve the list of applications by specifying invalid filter value - iSearchDevice->GetAppListActionL(KInvalidFilter4(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Invalid Arg4 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Invalid Arg4 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionInvalidArg5L ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command with Invalid Arg5" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidFilter5, "\"name=\"*nav*\"appInfo@appCategory=\"*\"\""); - //Retrieve the list of applications by specifying invalid filter value - iSearchDevice->GetAppListActionL(KInvalidFilter5(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with Invalid Arg5 handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with Invalid Arg5 handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionNoFilterL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetAppList Command With No Filter" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications - iSearchDevice->GetAppListActionL( KWildCard(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command With No Filter handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command With No Filter handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileIdGetAppListActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid ProfileId GetAppList Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying invalid profileId - iSearchDevice->GetAppListActionL(KWildCard(),KInvalidProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "GetAppList Command with invalid ProfileId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetAppList Command with invalid ProfileId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetAppListActionOperationRejectedL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Operation Rejected Condition For GetAppList Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - iOperationRejected = ETrue; - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the list of applications by specifying profileId - iSearchDevice->GetAppListActionL(KAppListFilterValue1(),KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - if (iGetAppList) - { - _LIT( KDescription , "Handle Operation Rejected Condition For GetAppList Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Handle Operation Rejected Condition For GetAppList Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleSetClientProfileActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle SetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - // Register the client profile - iSearchDevice->SetClientProfileActionL(KProfileIdValue, KClientProfileInfo); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iSetClientProfile) - { - _LIT( KDescription , "SetClientProfile Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "SetClientProfile Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - iClientIconPrefArray.ResetAndDestroy(); - iClientIconPrefArray.Close(); - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileIdSetClientProfileActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid ProfileId SetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Register the client profile with invalid profileId - iSearchDevice->SetClientProfileActionL(KInvalidProfileIdValue, KClientProfileInfo ); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iSetClientProfile) - { - _LIT( KDescription , "SetClientProfile Command with invalid ProfileId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "SetClientProfile Command with invalid ProfileId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileSetClientProfileActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid Profile SetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - _LIT8(KInvalidProfile,"<clientProfile"); - //Register the client profile with invalid profile - iSearchDevice->SetClientProfileActionL(KProfileIdValue, KInvalidProfile()); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iSetClientProfile) - { - _LIT( KDescription , "SetClientProfile Command with invalid Profile handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "SetClientProfile Command with invalid Profile handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleDeviceLockedSetClientProfileActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Device Locked Condition For SetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Register the client profile - iSearchDevice->SetClientProfileActionL(KProfileIdValue, KDeviceLockedClientProfile()); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iSetClientProfile) - { - _LIT( KDescription , "Device Locked Condition for SetClientProfile Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Device Locked Condition for SetClientProfile Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleResourceBusySetClientProfileActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Resource Busy Condition For SetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - iResourceBusy = ETrue; - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Register the client profile - iSearchDevice->SetClientProfileActionL(KProfileIdValue, KClientProfileInfo()); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iSetClientProfile) - { - _LIT( KDescription , "Resource Busy Condition for SetClientProfile Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Resource Busy Condition for SetClientProfile Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetClientProfileActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the tmserver device and its services - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the contents of a client profile stored in the terminal mode device - iSearchDevice->GetClientProfileActionL(KProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetClientProfile) - { - _LIT( KDescription , "GetClientProfile Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetClientProfile Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleInvalidProfileIdGetClientProfileActionL ( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Invalid ProfileId GetClientProfile Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the control point and search for device - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Retrieve the contents of a client profile by specifying invalid profileId - iSearchDevice->GetClientProfileActionL(KInvalidProfileIdValue); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetClientProfile) - { - _LIT( KDescription , "GetClientProfile Command with invalid ProfileId handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetClientProfile Command with invalid ProfileId handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - - -TInt CTmServerTest::HandleGetMaxNumProfilesActionL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle GetMaxNumProfiles Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the control point and search for device - iTmServer->StartL(); - - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Get the maximum number of client profiles supported - iSearchDevice->GetMaxNumProfilesActionL(); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetMaxNumProfiles) - { - _LIT( KDescription , "GetMaxNumProfiles Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "GetMaxNumProfiles Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -TInt CTmServerTest::HandleGetMaxNumProfilesOperationRejectedL( TTestResult& aResult ) - { - _LIT( KLogInfo, "Handle Operation Rejected Condition For GetMaxNumProfiles Command" ); - iLog->Log( KLogInfo ); - - iTmServerDeviceType = ETrue; - - //Sets the information associated with the terminal mode server device - SetTmServerSettingsL(); - iTmServer = CUpnpTmServer::NewL( *iTmServerDeviceInfo, *this ); - - //Register all the desired applications - RegisterApplicationsL(*iTmServer); - - //Start the control point and search for device - iTmServer->StartL(); - iOperationRejected = ETrue; - //Start the control point and search for device - iSearchDevice = CDiscoverDevice::NewL(*this); - iDiscoveryTestTimer = CDiscoveryTestTimer::NewL(*this); - iDiscoveryTestTimer->AfterDiscovery(15); - CActiveScheduler::Start(); - - if ( iDeviceVerified ) - { - //Get the maximum number of client profiles supported - iSearchDevice->GetMaxNumProfilesActionL(); - } - - iTestTimer = CTestTimer::NewL(*this); - iTestTimer->After(15); - CActiveScheduler::Start(); - - if (iGetMaxNumProfiles) - { - _LIT( KDescription , "Operation Rejected Condition For GetMaxNumProfiles Command handled successfully"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - else - { - aResult.iResult = KErrGeneral; - _LIT( KDescription , "Operation Rejected Condition For GetMaxNumProfiles Command handling Failed"); - aResult.SetResult( KErrNone, KDescription ); - iLog->Log( KDescription ); - } - delete iDiscoveryTestTimer; - iDiscoveryTestTimer = NULL; - delete iTestTimer; - iTestTimer = NULL; - REComSession::FinalClose(); - return KErrNone; - } - -// ======================================================================================================== - -void CTmServerTest::SetTmServerSettingsL() - { - iTmServerDeviceInfo = CUpnpTmServerDeviceInfo::NewL(CUpnpSettings::GetIapL()); - iTmServerDeviceInfo->SetDeviceInfoL( KDeviceInfo ); - iTmServerDeviceInfo->SetBtAddressL( KBtMacValue ); - iTmServerDeviceInfo->SetStartConn(ETrue); - iTmServerDeviceInfo->AddDeviceIconL(CUpnpTerminalModeIcon::NewL(KIconDevicePath, KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - } - -void CTmServerTest::RegisterApplicationsL(CUpnpTmServer& aTmServer ) - { - RArray allowedProfileIdList; - allowedProfileIdList.Append(0); - allowedProfileIdList.Append(1); - allowedProfileIdList.Append(2); - allowedProfileIdList.Append(2); - allowedProfileIdList.Append(3); - allowedProfileIdList.Append(4); - allowedProfileIdList.Append(5); - allowedProfileIdList.Append(6); - - _LIT8(KAppDesc, "Mobile Navigation Application"); - iRemotableApp = CUpnpRemotableApp::NewL( KAppIdValue ,_L8("Navigation")); - iRemotableApp->SetAppDescriptionL(KAppDesc()); - iRemotableApp->SetAllowedProfileIdListL(allowedProfileIdList); - CUpnpTmInfoElement& tmInfoElement = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement.AddTmInfoElementL(_L8("protocolID"),_L8("VNC")); - - CUpnpTmInfoElement& tmInfoElement1 = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement1.AddTmInfoElementL(_L8("appCategory"),_L8("0x00010001")); - tmInfoElement1.AddTmInfoElementL(_L8("trustLevel"),_L8("0x80")); - - CUpnpTmInfoElement& tmInfoElement2 = iRemotableApp->CreateTmInfoElementL(CUpnpTmInfoElement::EDisplayInfo); - tmInfoElement2.AddTmInfoElementL(_L8("contentCategory"),_L8("0x0000001")); - tmInfoElement2.AddTmInfoElementL(_L8("contentRules"),_L8("0x00000FE")); - tmInfoElement2.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - iRemotableApp->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMaps, KIconWidth1, KIconHeight1, KIconDepth,KTestSvgMimeType)); - aTmServer.RegisterAppL(iRemotableApp); - allowedProfileIdList.Close(); - - _LIT8(KAppDesc1, "RTP Audio Server"); - iRemotableApp1 = CUpnpRemotableApp::NewL( KAppId1Value ,_L8("RTP Server")); - iRemotableApp1->SetAppDescriptionL(KAppDesc1()); - - CUpnpTmInfoElement& tmInfoElement3 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement3.AddTmInfoElementL(_L8("protocolID"),_L8("RTP")); - tmInfoElement3.AddTmInfoElementL(_L8("format"),_L8("99")); - tmInfoElement3.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement4 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement4.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000002")); - tmInfoElement4.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - CUpnpTmInfoElement& tmInfoElement5 = iRemotableApp1->CreateTmInfoElementL(CUpnpTmInfoElement::EAudioInfo); - tmInfoElement5.AddTmInfoElementL(_L8("audioType"),_L8("all")); - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicUnLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp1->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathMusicLaunched,KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp1->SetResourceStatusL(_L8("free")); - - iRemotableAppArray.AppendL(iRemotableApp1); - - _LIT8(KAppDesc2, "Bluetooth A2DP Audio Server"); - iRemotableApp2 = CUpnpRemotableApp::NewL( KAppId2Value ,_L8("Bluetooth A2DP")); - iRemotableApp2->SetAppDescriptionL(KAppDesc2()); - - CUpnpTmInfoElement& tmInfoElement6 = iRemotableApp2->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement6.AddTmInfoElementL(_L8("protocolID"),_L8("BTA2DP")); - tmInfoElement6.AddTmInfoElementL(_L8("direction"),_L8("out")); - - CUpnpTmInfoElement& tmInfoElement7 = iRemotableApp2->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement7.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000003")); - tmInfoElement7.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - iRemotableApp2->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpUnLaunched, KIconWidth2, KIconHeight2, KIconDepth1,KTestSvgMimeType)); - iRemotableApp2->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtA2DpLaunched,KIconWidth3, KIconHeight3, KIconDepth1,KTestSvgMimeType)); - iRemotableApp2->SetResourceStatusL(_L8("free")); - iRemotableAppArray.AppendL(iRemotableApp2); - - _LIT8(KAppDesc3, "Bluetooth HFP Audio"); - RArray allowedProfileIdList1; - allowedProfileIdList1.Append(0); - iRemotableApp3 = CUpnpRemotableApp::NewL( KAppId3Value,_L8("Bluetooth HFP")); - iRemotableApp3->SetAppDescriptionL(KAppDesc3()); - iRemotableApp3->SetAllowedProfileIdListL(allowedProfileIdList1); - - CUpnpTmInfoElement& tmInfoElement8 = iRemotableApp3->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement8.AddTmInfoElementL(_L8("protocolID"),_L8("BTHFP")); - tmInfoElement8.AddTmInfoElementL(_L8("direction"),_L8("bi")); - - CUpnpTmInfoElement& tmInfoElement9 = iRemotableApp3->CreateTmInfoElementL(CUpnpTmInfoElement::EAppInfo); - tmInfoElement9.AddTmInfoElementL(_L8("appCategory"),_L8("0x0000004")); - tmInfoElement9.AddTmInfoElementL(_L8("trustLevel"),_L8("0x00000001")); - - iRemotableApp3->AddIconL(CUpnpTerminalModeIcon::NewL(KIconPathBtHfp, KIconWidth, KIconHeight, KIconDepth,KTestSvgMimeType)); - iRemotableApp3->SetResourceStatusL(_L8("busy")); - iRemotableAppArray.AppendL(iRemotableApp3); - allowedProfileIdList1.Close(); - - _LIT8(KAppDesc4, "Device Attestation Protocol"); - iRemotableApp4 = CUpnpRemotableApp::NewL( KAppId4Value ,_L8("Device Attestation")); - iRemotableApp4->SetAppDescriptionL(KAppDesc4()); - - CUpnpTmInfoElement& tmInfoElement11 = iRemotableApp4->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement11.AddTmInfoElementL(_L8("protocolID"),_L8("DAP")); - iRemotableAppArray.AppendL(iRemotableApp4); - - iRemotableApp5 = CUpnpRemotableApp::NewL( KAppId5Value ,_L8("Device Attestation")); - iRemotableApp5->SetAppDescriptionL(KAppDesc4()); - - RArray allowedProfileIdList2; - allowedProfileIdList2.Append(1); - allowedProfileIdList2.Append(1); - iRemotableApp5->SetAllowedProfileIdListL(allowedProfileIdList2); - - CUpnpTmInfoElement& tmInfoElement12 = iRemotableApp5->CreateTmInfoElementL(CUpnpTmInfoElement::ERemotingInfo); - tmInfoElement12.AddTmInfoElementL(_L8("protocolID"),_L8("DAP")); - iRemotableAppArray.AppendL(iRemotableApp5); - allowedProfileIdList2.Close(); - - aTmServer.SetXmlSignatureL(KXmlSignature); - aTmServer.RegisterAppsL(iRemotableAppArray); - iRemotableAppArray.Close(); - } - -void CTmServerTest::TestTimerTimedOutL() - { - iTmServer->StopL(); - delete iSearchDevice; - iSearchDevice = NULL; - delete iTmServer; - iTmServer = NULL; - delete iTmServerDeviceInfo; - iTmServerDeviceInfo = NULL; - CActiveScheduler::Stop(); - } - -void CTmServerTest::TestTimerDiscoveryTimedOut() - { - CActiveScheduler::Stop(); - } - -void CTmServerTest::DeviceVerified() - { - iDeviceVerified = ETrue; - } - -void CTmServerTest::DeviceLostVerified() - { - iDeviceLostVerified = ETrue; - } - -void CTmServerTest::ServiceVerified() - { - iServiceVerified = ETrue; - } - -CDiscoverDevice* CDiscoverDevice::NewL(CTmServerTest& aTmServerTest) - { - CDiscoverDevice* self = new (ELeave) CDiscoverDevice(aTmServerTest); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -CDiscoverDevice::CDiscoverDevice(CTmServerTest& aTmServerTest): - iTmServerTest(aTmServerTest) - { - - } - -void CDiscoverDevice::ConstructL() - { - CDesC8ArrayFlat* targetDeviceTypes = new (ELeave) CDesC8ArrayFlat( 1 ); - CleanupStack::PushL( targetDeviceTypes ); - targetDeviceTypes->AppendL( KTmServerDevice() ); - CUpnpControlPoint::ConstructL( *targetDeviceTypes ); - CleanupStack::Pop( targetDeviceTypes ); - targetDeviceTypes->Reset(); - delete targetDeviceTypes; - targetDeviceTypes = NULL; - - //SSDP search for Terminalmode server devices - if (iTmServerTest.iTmServerDeviceType) - { - SearchL( KTmServerDevice() ); - } - else if (iTmServerTest.iTmServerServiceType) - { - SearchL( KTmServerService() ); - } - } - -CDiscoverDevice::~CDiscoverDevice() - { - - } - - -void CDiscoverDevice::StateUpdatedL( CUpnpService* aService ) - { - CUpnpDevice& device = aService->Device(); - if (aService->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - TInt err = TmServerStateUpdated( device, aService ); - } - else - { - User::Leave(KErrGeneral); - } - } - -TInt CDiscoverDevice::TmServerStateUpdated( CUpnpDevice& aDevice, - CUpnpService*& aService ) - { - CUpnpStateVariable* appStatusUpdate = aService->StateVariable( KArgTypeAppStatusUpdate ); - if( !appStatusUpdate ) - { - iTmServerTest.iStatusNotified = EFalse; - return KErrArgument; - } - else - { - const TDesC8& deviceUuid = aDevice.Uuid(); - const TDesC8& statusBuf = appStatusUpdate->Value(); - - iTmServerTest.iStatusNotified = ETrue; - } - return KErrNone; - } - -void CDiscoverDevice::DeviceDiscoveredL( CUpnpDevice* aDevice ) - { - if( iTmServerTest.iTmServerDeviceType) - { - if(aDevice->DeviceType().Compare(KTmServerDevice) == KErrNone ) - { - iTmServerTest.DeviceVerified(); - } - } - else if( iTmServerTest.iTmServerServiceType) - { - if(aDevice->ServiceDescriptionReceiveState()== CUpnpDevice::EAllServicesAdded) - { - iTmServerTest.ServiceVerified(); - } - } - } - -void CDiscoverDevice::DeviceDisappearedL( CUpnpDevice* /*aDevice */) - { - iTmServerTest.DeviceLostVerified(); - } - -void CDiscoverDevice::ActionResponseReceivedL( CUpnpAction* aAction ) - { - CUpnpService& service = aAction->Service(); - if( service.ServiceType().Length() <= 0 ) - { - User::Leave(KErrArgument); - } - if (aAction->Name().Compare(KGetApplicationList) == KErrNone) - { - aAction->ArgumentValue( KAppListing ); - iTmServerTest.iGetAppList = ETrue; - } - else if (aAction->Name().Compare(KLaunchApp) == KErrNone) - { - aAction->ArgumentValue( KAppLaunchStatus ); - iTmServerTest.iStartApp = ETrue; - } - else if (aAction->Name().Compare(KTerminateApp) == KErrNone) - { - aAction->ArgumentValue( KAppTerminateStatus ); - iTmServerTest.iStopApp = ETrue; - } - else if (aAction->Name().Compare(KGetAppStatus) == KErrNone) - { - aAction->ArgumentValue( KAppStatus ); - iTmServerTest.iGetAppStatus = ETrue; - } - else if (aAction->Name().Compare(KSetClientProfile) == KErrNone) - { - aAction->ArgumentValue( KResultProfile ); - iTmServerTest.iSetClientProfile = ETrue; - } - else if (aAction->Name().Compare(KGetClientProfile) == KErrNone) - { - aAction->ArgumentValue( KClientProfile ); - iTmServerTest.iGetClientProfile = ETrue; - } - else if (aAction->Name().Compare(KGetMaxNumProfiles) == KErrNone) - { - aAction->ArgumentValue( KNumProfilesAllowed ); - iTmServerTest.iGetMaxNumProfiles = ETrue; - } - } - - void CDiscoverDevice::HttpResponseReceivedL( CUpnpHttpMessage* /*aMessage*/ ) - { - - } - - -TInt CDiscoverDevice::GetAppListActionL( const TDesC8& aAppListFilter ,TInt aProfileId ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KGetApplicationList ); - if( action ) - { - TBuf8<8> buf; - buf.Num(aProfileId); - action->SetArgumentL(KAppFilter, aAppListFilter ); - action->SetArgumentL(KProfileId, buf ); - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - } - return KErrNotFound; - } - - - -TInt CDiscoverDevice::LaunchAppActionL( TInt aAppId, TInt aProfileId ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KLaunchApp ); - if( action ) - { - TBuf8<8> buf; - buf.Num(aAppId); - action->SetArgumentL( KAppId, buf ); - buf.Zero(); - buf.Num(aProfileId); - action->SetArgumentL( KProfileId, buf ); - } - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - return KErrNotFound; - } - -TInt CDiscoverDevice::TerminateAppActionL( TInt aAppId, TInt aProfileId ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KTerminateApp ); - if( action ) - { - TBuf8<8> buf; - buf.Num(aAppId); - action->SetArgumentL( KAppId, buf ); - buf.Zero(); - buf.Num(aProfileId); - action->SetArgumentL( KProfileId, buf ); - } - - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - return KErrNotFound; - } - -TInt CDiscoverDevice::GetAppStatusActionL( TInt aAppId ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KGetAppStatus ); - if( action ) - { - TBuf8<8> buf; - buf.Num(aAppId); - if ( aAppId == KAppId1Value || aAppId == KNonExistentAppIdValue ) - { - action->SetArgumentL( KAppId, buf ); - } - else if( aAppId == KAppId5Value ) - { - _LIT8(KWildCard, "*"); - action->SetArgumentL( KAppId, KWildCard()); - } - else - { - action->SetArgumentL( KAppId, KNullDesC8()); - } - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - } - return KErrNotFound; - } - -TInt CDiscoverDevice::SetClientProfileActionL(TInt aProfileId, const TDesC8& aClientInfoValue ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType1 ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KSetClientProfile); - if( action ) - { - TBuf8<8> buf; - buf.Num(aProfileId); - action->SetArgumentL(KProfileId1, buf ); - action->SetArgumentL(KClientProfile, aClientInfoValue ); - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - } - return KErrNotFound; - } - -TInt CDiscoverDevice::GetClientProfileActionL(TInt aProfileId ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType1 ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KGetClientProfile); - if( action ) - { - TBuf8<8> buf; - buf.Num(aProfileId); - action->SetArgumentL(KProfileId1, buf ); - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - } - return KErrNotFound; - } - -TInt CDiscoverDevice::GetMaxNumProfilesActionL( ) - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - return KErrBadHandle; - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - return KErrNotFound; - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType1 ) != KErrNotFound ) - { - CUpnpAction* action = services[i]->CreateActionLC( KGetMaxNumProfiles); - if( action ) - { - SendL( action ); - CleanupStack::Pop( action ); - return action->SessionId(); - } - else - { - return KErrGeneral; - } - } - } - return KErrNotFound; - } - -void CDiscoverDevice::SubscribeToServiceL() - { - const RPointerArray& deviceList = DeviceList(); - if( deviceList.Count() == KErrNone ) - { - User::Leave( KErrBadHandle ); - } - TInt i(0); - while ( deviceList[i]->DeviceType().Compare(KTmServerDevice()) != KErrNone ) - { - i++; - } - if( i == deviceList.Count()) - { - User::Leave ( KErrNotFound ); - } - RPointerArray& services = const_cast(deviceList[i])->ServiceList(); - - for( TInt i(0); i < services.Count(); i++ ) - { - if( services[i]->ServiceType().Match( KTmServerServiceType ) != KErrNotFound ) - { - SubscribeL( services[i] ); - } - } - } - -TTerminalModeErrorCode CTmServerTest::OnGetApplicationList(TUint aProfileId ) - { - if(iOperationRejected ) - { - return ETerminalModeOperationRejected; - } - else if ( ( aProfileId == 0 ) || ( aProfileId == 1 ) || ( aProfileId == 2) || ( aProfileId == 3 ) - || ( aProfileId == 4 ) || ( aProfileId == 5 ) || ( aProfileId == 6 ) ) - { - return ETerminalModeSuccess; - } - return ETerminalModeInvalidProfileId; - } - -TTerminalModeErrorCode CTmServerTest::OnLaunchApp( TUint aAppId, RBuf8& aUrl, TUint aProfileId ) - { - if ( ( aProfileId != 0 ) && ( aProfileId != 1 ) && ( aProfileId != 2) && ( aProfileId != 3 ) - && ( aProfileId != 4 ) && ( aProfileId != 5 ) && ( aProfileId != 6 ) ) - { - return ETerminalModeInvalidProfileId; - } - aUrl.Close(); - if ( aAppId == KAppIdValue ) - { - _LIT8(KUrl, "VNC://192.168.4.1:5900"); - aUrl.Create(KUrl()); - } - else if ( aAppId == KAppId1Value ) - { - _LIT8(KUrl, "RTP://192.168.2.1:5900"); - aUrl.Create(KUrl()); - } - else if ( aAppId == KAppId2Value ) - { - _LIT8(KUrl, "BTA2DP://192.168.2.1:5900"); - aUrl.Create(KUrl()); - } - else if ( aAppId == KAppId3Value) - { - _LIT8(KUrl, "BTHFP://192.168.2.1:5900"); - aUrl.Create(KUrl()); - } - else if ( aAppId == KAppId4Value) - { - return ETerminalModeDeviceLocked; - } - else - { - return ETerminalModeUnauthorizedApp; - } - return ETerminalModeSuccess; - } - -TTerminalModeErrorCode CTmServerTest::OnTerminateApp( TUint aAppId, TUint aProfileId ) - { - if ( ( aProfileId != 0 ) && ( aProfileId != 1 ) && ( aProfileId != 2) && ( aProfileId != 3 ) - && ( aProfileId != 4 ) && ( aProfileId != 5 ) && ( aProfileId != 6 ) ) - { - return ETerminalModeInvalidProfileId; - } - if ( aAppId == KAppIdValue|| aAppId == KAppId1Value || aAppId == KAppId2Value || aAppId == KAppId3Value) - { - return ETerminalModeSuccess; - } - else if ( aAppId == KAppId4Value) - { - return ETerminalModeDeviceLocked; - } - else - { - return ETerminalModeUnauthorizedApp; - } - } - -TTerminalModeErrorCode CTmServerTest::OnGetAppStatus( TUint aAppId, TUint& aProfileId ,RBuf8& aStatusType ) - { - aProfileId = KErrNone; - aStatusType.Close(); - if ( aAppId == KAppIdValue ) - { - aStatusType.Create(KBackground()); - } - else if ( aAppId == KAppId1Value ) - { - aStatusType.Create(KForeground()); - } - else if ( aAppId == KAppId2Value ) - { - aStatusType.Create(KBackground()); - } - else if ( aAppId == KAppId3Value ) - { - aStatusType.Create(KForeground()); - } - else - { - aStatusType.Create(KBackground()); - } - return ETerminalModeSuccess; - } - -TTerminalModeErrorCode CTmServerTest::OnGetMaxNumProfiles( TUint& aProfileIdCount ) - { - if (iOperationRejected ) - { - return ETerminalModeOperationRejected; - } - else - { - aProfileIdCount = 9; - return ETerminalModeSuccess; - } - } - -TTerminalModeErrorCode CTmServerTest::OnSetClientProfile(TUint aProfileId, const TDesC8& aClientProfile,RBuf8& aResultProfile ) - { - _LIT8(KClientInfo,"Cl_2"); - if(iResourceBusy) - { - return ETerminalModeResourceBusy; - } - else if(aClientProfile.Compare(KClientInfo()) == KErrNone ) - { - return ETerminalModeDeviceLocked; - } - else if ( ( aClientProfile.Find(_L8("<")) == KErrNotFound ) && - ( aClientProfile.Find(_L8("<clientProfile><")) == KErrNotFound )) - { - return ETerminalModeInvalidProfile; - } - CUpnpTmClientIconPref* clientIconPref = NULL; - if ( aProfileId == 0 ) - { - // different mime type but same dimension - clientIconPref = CUpnpTmClientIconPref::NewL(0); - clientIconPref->SetWidth(88); - clientIconPref->SetHeight(88); - } - else if ( aProfileId == 1 ) - { - // different mime type and different dimension - clientIconPref = CUpnpTmClientIconPref::NewL(1); - clientIconPref->SetMimeTypeL(_L8("image/bmp")); - clientIconPref->SetWidth(70); - clientIconPref->SetHeight(80); - } - else if ( aProfileId == 2 ) - { - // different mime type and no dimension specified by the client - clientIconPref = CUpnpTmClientIconPref::NewL(2); - clientIconPref->SetMimeTypeL(_L8("image/bmp")); - } - else if ( aProfileId == 3 ) - { - // same mime type but different dimension - clientIconPref = CUpnpTmClientIconPref::NewL(3); - clientIconPref->SetMimeTypeL(_L8("image/svg+xml")); - clientIconPref->SetWidth(100); - clientIconPref->SetHeight(100); - } - else if ( aProfileId == 4 ) - { - // same mime type but no dimension specified by the client - clientIconPref = CUpnpTmClientIconPref::NewL(4); - clientIconPref->SetMimeTypeL(_L8("image/svg+xml")); - } - else if ( aProfileId == 5 ) - { - // same mime type and same dimension - clientIconPref = CUpnpTmClientIconPref::NewL(5); - clientIconPref->SetMimeTypeL(_L8("image/svg+xml")); - clientIconPref->SetWidth(88); - clientIconPref->SetHeight(88); - } - else if ( aProfileId == 6 ) - { - // different mime type(jpeg) and different dimensions - clientIconPref = CUpnpTmClientIconPref::NewL(6); - clientIconPref->SetMimeTypeL(_L8("image/jpeg")); - clientIconPref->SetWidth(36); - clientIconPref->SetHeight(44); - } - else - { - return ETerminalModeInvalidProfileId; - } - iClientIconPrefArray.AppendL(clientIconPref); - RBuf8 clientProfile; - clientProfile.Create(aClientProfile); - aResultProfile.Close(); - aResultProfile.Create(clientProfile); - clientProfile.Close(); - return ETerminalModeSuccess; - } - -TTerminalModeErrorCode CTmServerTest::OnGetClientProfile( TUint aProfileId, RBuf8& aClientProfile) - { - if ( ( aProfileId == 0 ) || ( aProfileId == 1 ) || ( aProfileId == 2) || ( aProfileId == 3 ) - || ( aProfileId == 4 ) || ( aProfileId == 5 ) || ( aProfileId == 6 ) ) - { - aClientProfile.Close(); - aClientProfile.Create(KClientProfile()); - return ETerminalModeSuccess; - } - return ETerminalModeInvalidProfileId; - } - -const CUpnpTmClientIconPref& CTmServerTest::GetClientIconPrefsL( TUint aProfileId ) - { - CUpnpTmClientIconPref* clientIconPref = NULL; - for ( TInt i(0); i < iClientIconPrefArray.Count(); i++ ) - { - if ( iClientIconPrefArray[i]->ClientProfileId() == aProfileId ) - { - clientIconPref = iClientIconPrefArray[i]; - break; - } - } - return *clientIconPref; - } - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/group/bld.inf --- a/services/terminalmodeservice_plat/group/bld.inf Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/** -* 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: This file provides the information required for exporting -* domain headers to system inlcude path. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/upnptmserver.h MW_LAYER_PLATFORM_EXPORT_PATH( upnptmserver.h ) -../inc/upnptmserverobserver.h MW_LAYER_PLATFORM_EXPORT_PATH( upnptmserverobserver.h ) -../inc/upnpremotableapp.h MW_LAYER_PLATFORM_EXPORT_PATH( upnpremotableapp.h ) -../inc/upnpremotableapp.inl MW_LAYER_PLATFORM_EXPORT_PATH( upnpremotableapp.inl ) -../inc/upnptminfoelement.h MW_LAYER_PLATFORM_EXPORT_PATH( upnptminfoelement.h ) -../inc/upnptminfoelement.inl MW_LAYER_PLATFORM_EXPORT_PATH( upnptminfoelement.inl ) -../inc/upnptmserverdeviceinfo.h MW_LAYER_PLATFORM_EXPORT_PATH( upnptmserverdeviceinfo.h ) -../inc/upnptmserverdeviceinfo.inl MW_LAYER_PLATFORM_EXPORT_PATH( upnptmserverdeviceinfo.inl ) -../inc/upnpterminalmodeicon.h MW_LAYER_PLATFORM_EXPORT_PATH( upnpterminalmodeicon.h ) -../inc/upnpterminalmodeicon.inl MW_LAYER_PLATFORM_EXPORT_PATH( upnpterminalmodeicon.inl ) -../inc/terminalmodeconsts.h MW_LAYER_PLATFORM_EXPORT_PATH( terminalmodeconsts.h ) -../inc/upnptmclienticonpref.h MW_LAYER_PLATFORM_EXPORT_PATH( upnptmclienticonpref.h ) -../inc/upnptmclienticonpref.inl MW_LAYER_PLATFORM_EXPORT_PATH( upnptmclienticonpref.inl ) diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/terminalmodeconsts.h --- a/services/terminalmodeservice_plat/inc/terminalmodeconsts.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/** -* 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: Class defines all the error codes related to Terminal Mode Service -* -*/ - -#ifndef __TERMINALMODECONSTS_H__ -#define __TERMINALMODECONSTS_H__ - -/** - * Error codes for Terminal Mode extention - * These error codes are located in the non-standard error code range - * (800 – 899). - */ -enum TTerminalModeErrorCode - { - /** - * Terminal Mode success error code. - * Represents the no-error condition. - */ - ETerminalModeSuccess = 200, - - /** - * Terminal Mode failure error code. - * Represents the error condition. - */ - ETerminalModeFailure = 201, - - /** - *Terminal Mode error range marker. - */ - ETerminalModeErrorRangeBegin = 700, - - /** - * Operation Rejected. - * Terminal Mode Server rejected the operation. - */ - ETerminalModeOperationRejected = 701, - - /** - * Malformed or Non-existent AppID. - * The AppID is of incorrect format or does not exist. - */ - ETerminalModeBadAppId = 810, - - /** - * Unauthorized AppID. - * The application identified by this AppID cannot be used remotely. - */ - ETerminalModeUnauthorizedApp = 811, - - /** - * Cannot determine application status. - * The status of the application cannot be cur-rently determined. - * Client should try again later. - */ - ETerminalModeAppStatusError = 812, - - /** - * Failed to launch application. - * The application is available on the mobile device but failed - * to launch. - */ - ETerminalModeAppLaunchError = 813, - - /** - * The requested application resource is busy. - * This error can occur when the resource is already busy and - * resourceStatus in the AppListing is set equal to “NA”. - */ - ETerminalModeResourceBusy = 814, - - - /** - * Failed to process the action as the device hosting the TmApplicationServer - * service is locked - */ - ETerminalModeDeviceLocked = 815, - - /** - * Failed to process the action as the input argument passed is invalid - */ - ETerminalModeInvalidArgument = 820, - - /** - * The clientProfile argument passed does not conform to A_ARG_TYPE_ClientProfile - * XML specifications. - */ - ETerminalModeInvalidProfile = 825, - - /** - * Failed to process the action as the the profile identifier does not exist - * or the application cannot use the specified profile identifier. - */ - ETerminalModeInvalidProfileId = 830, - - /** - * Invalid license.The HU does not have valid license or has not started license - * verification process for the service. - */ - ETerminalModeInvalidLicense = 891, - /** - * Terminal Mode error range marker. - */ - ETerminalModeErrorRangeEnd = 899 - }; - -#endif // __TERMINALMODECONSTS_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnpremotableapp.h --- a/services/terminalmodeservice_plat/inc/upnpremotableapp.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/** -* 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: CUpnpRemotableApp class declaration -* -*/ - -#ifndef __UPNPREMOTABLEAPP_H__ -#define __UPNPREMOTABLEAPP_H__ - -#include -#include -#include - -/** -* Class represents a Remotable App or just "app" in the -* context of Terminal Mode Service. -* The Automotive Server (or equivalent) is responsible for creating an object -* of this class and registering it with the Terminal Mode Service. -* The Terminal Mode Service will maintain a list of these registered apps throughout -* it's lifetime. The Automotive Server can remove apps from this list by -* unregistering them. -*/ -class CUpnpRemotableApp : public CBase - { -public: - /** - * Standard Symbian Two-Phase constructor - * @param aAppId The locally unique ID of the App being registered. - * The Terminal Mode Service will check for the uniqueness - * of this ID when this Remotable app object is registered. - * @param aAppName The Name of the App being registered. The Terminal Mode - * Service will *not* check for uniqueness. However, it's - * recommended that this is unique as well. - * @see CUpnpTmServer::RegisterAppL, CUpnpTmServer::RegisterAppsL - */ - IMPORT_C static CUpnpRemotableApp* NewL( TUint aAppId ,const TDesC8& aAppName ); - - ~CUpnpRemotableApp(); - /** - * Method that sets the brief description about the application( remotable app ) - * An optional element. - * @param aDescription Description of the Application - */ - IMPORT_C void SetAppDescriptionL( const TDesC8& aDescription ); - /** - * Method to set the list of allowed profile IDs associated with the remotable app. - * An optional element. - * @aProfileIdList Reference to an array of profile IDs. - * A copy of array is maintained. - */ - IMPORT_C void SetAllowedProfileIdListL( const RArray& aProfileIdList ); - /** - * Method that adds a new icon to this Remotable App. - * An optional element. - * @param aIcon [in] The Icon object. Must be instantiated by the caller prior to - * this call. Should be non-NULL. - * The ownership is transferred to the CUpnpRemotableApp object. - * @see CUpnpTerminalModeIcon - */ - IMPORT_C void AddIconL( CUpnpTerminalModeIcon* aIcon ); - /** - * Method that creates a new terminal mode info object and adds it to the list of - * terminal mode info objects supported by this app. The terminal mode info object thus - * created will be internally maintained by Remotable App object.A reference of the same - * will be returned to the caller. - * Only protocolID of the remotingInfo element is the required element as per the schema, - * otherwise all other info types and their elements are optional. - * @param aTerminalModeInfoType Terminal Mode Info Type as an Enum value. - * @see CUpnpTerminalModeInfoElement - */ - IMPORT_C CUpnpTmInfoElement& CreateTmInfoElementL( CUpnpTmInfoElement - ::TTerminalModeInfoType aTerminalModeInfoType ); - /** - * Method is used to define the current status of the resource. - * An optional element. - * @param aResourceStatus Status of the resource. Can take one of these values; - * Free, busy or NA - */ - IMPORT_C void SetResourceStatusL( const TDesC8& aResourceStatus ); - /** - * "Getter" method for retrieving the list of icons associated with this - * Remotable app object.An optional element. - * @return Returns RPointerArray of icons. - * @see CUpnpTerminalModeIcon - */ - inline const RPointerArray& IconList()const; - /** - * "Getter" Method for retrieving the list of terminal mode info details associated with - * this Remotable app object. - * @return Returns RPointerArray of terminal mode info objects. - * @see CUpnpTerminalModeInfo - */ - inline const RPointerArray& TmInfoElementList()const; - - // inlined "Getter" methods - inline TUint AppId()const; - inline const TDesC8& AppName()const; - inline const TDesC8& AppDescription()const; - inline const TDesC8& ResourceStatus()const; - inline const RArray& AllowedProfileIdList()const; - -protected: - CUpnpRemotableApp( TUint aAppId ); - void ConstructL( const TDesC8& aAppName ); - -private: - TUint iAppId; - RBuf8 iAppName; - RBuf8 iAppDescription; - RBuf8 iResourceStatus; - RPointerArray iIconList; - RPointerArray iTmInfoElementList; - RArray iProfileIdList; - }; - -#include - -#endif //__UPNPREMOTABLEAPP_H__ - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnpremotableapp.inl --- a/services/terminalmodeservice_plat/inc/upnpremotableapp.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/** -* 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: -* -*/ - -#ifndef __UPNPREMOTABLEAPP_INL__ -#define __UPNPREMOTABLEAPP_INL__ - - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::IconList -// Method is used to retreive icon list. -// @return Returns reference to the list of CUpnpTerminalModeIcon objects -// --------------------------------------------------------------------------------- -// -inline const RPointerArray& CUpnpRemotableApp::IconList()const - { - return iIconList; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::TmInfoElementList -// Method is used to retrieve terminal mode info list -// @return Returns reference to an array of CUpnpTmInfoElement objects -// --------------------------------------------------------------------------------- -// -inline const RPointerArray& CUpnpRemotableApp::TmInfoElementList()const - { - return iTmInfoElementList; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::AppId -// Method is used to retrieve application ID. -// @return Returns appID. -// --------------------------------------------------------------------------------- -// -inline TUint CUpnpRemotableApp::AppId()const - { - return iAppId; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::AppName -// Method is used to retrieve applicationName. -// @return Returns application name. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpRemotableApp::AppName()const - { - return iAppName; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::AppDescription -// Method is used to retrieve brief description of the application. -// @return Returns application description. -// --------------------------------------------------------------------------------- -inline const TDesC8& CUpnpRemotableApp::AppDescription()const - { - return iAppDescription; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::ResourceStatus -// Method is used to retrieve current sttaus of the resource. -// @return Returns the resource status of the application. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpRemotableApp::ResourceStatus()const - { - return iResourceStatus; - } - -// --------------------------------------------------------------------------------- -// CUpnpRemotableApp::AllowedProfileIdList -// Method is used to retrieve list of allowed profile IDs for the application. -// @return Returns the reference to the array of profile IDs. -// --------------------------------------------------------------------------------- -// -inline const RArray& CUpnpRemotableApp::AllowedProfileIdList()const - { - return iProfileIdList; - } - -#endif //__UPNPREMOTABLEAPP_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnpterminalmodeicon.h --- a/services/terminalmodeservice_plat/inc/upnpterminalmodeicon.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/** -* 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: CUpnpTerminalModeIcon class declaration -* -*/ - -#ifndef __UPNPTERMINALMODEICON_H__ -#define __UPNPTERMINALMODEICON_H__ - -#include - -// CLASS DECLARATION -/** -* This class encapsulates an icon used in any operation of the -* Terminal Mode Service implemented. -* This represents device and application icons (as provided by Automotive Server). -*/ -class CUpnpTerminalModeIcon : public CBase - { -public: - /** - * Standard Symbian Two-Phase constructor. Returns a pointer to the new element. - * @param aPath icon path - * @param aWidth icon width - * @param aHeight icon height - * @param aDepth icon depth - * @param aMimeType icon mime type - */ - IMPORT_C static CUpnpTerminalModeIcon* NewL(const TDesC16& aPath, const TInt aWidth, - const TInt aHeight,const TInt aDepth, const TDesC8& aMimeType ); - /** - * Destructor. - */ - ~CUpnpTerminalModeIcon(); - -public: - /** - * Returns the icon filename - * @return Returns the icon filename along with complete filepath. - */ - inline const TDesC& IconFilename()const; - - /** - * Returns the width of the icon. - * @return Returns width in pixels or KErrNotFound - */ - inline TInt Width()const; - - /** - * Returns the height of the icon. - * @return Returns height in pixels or KErrNotFound - */ - inline TInt Height()const; - - /** - * Returns the color depth of the icon. - * @return Returns icon depth or KErrNotFound - */ - inline TInt Depth()const; - - /** - * Returns the mime type. - * @return Returns Icon mime type - */ - inline const TDesC8& MimeType()const; - -private: - /** - * C++ default constructor. - * @param aWidth icon width - * @param aHeight icon height - * @param aDepth icon depth - */ - CUpnpTerminalModeIcon( const TInt aWidth,const TInt aHeight,const TInt aDepth ); - /** - * 2nd phase constructor - * @param aPath icon path - * @param aMimeType icon mime type - */ - void ConstructL( const TDesC16& aPath,const TDesC8& aMimeType ); - -private: - HBufC* iFilename; - TInt iIconWidth; - TInt iIconHeight; - TInt iIconDepth; - HBufC8* iIconMimeType; - }; - -#include - -#endif //__UPNPTERMINALMODEICON_H__ - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnpterminalmodeicon.inl --- a/services/terminalmodeservice_plat/inc/upnpterminalmodeicon.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/** -* 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: CUpnpTerminalModeIcon INL file -* -*/ - -#ifndef __UPNTERMINALMODEICON_INL__ -#define __UPNTERMINALMODEICON_INL__ - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::IconFilename -// Returns the icon filename along with the complete filepath. -// --------------------------------------------------------------------------------- -// -inline const TDesC& CUpnpTerminalModeIcon::IconFilename()const - { - if ( iFilename ) - { - return *iFilename; - } - return KNullDesC(); - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::Width -// Returns the width of the icon. -// --------------------------------------------------------------------------------- -// -inline TInt CUpnpTerminalModeIcon::Width()const - { - return iIconWidth; - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::Height -// Returns the height of the icon. -// --------------------------------------------------------------------------------- -// -inline TInt CUpnpTerminalModeIcon::Height()const - { - return iIconHeight; - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::Depth -// Returns the depth of the icon. -// ------------------------------------------------------------------------------------- -// -inline TInt CUpnpTerminalModeIcon::Depth()const - { - return iIconDepth; - } - -// --------------------------------------------------------------------------------- -// CUpnpTerminalModeIcon::MimeType -// Returns the mime type of the icon. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTerminalModeIcon::MimeType()const - { - if ( iIconMimeType ) - { - return *iIconMimeType; - } - return KNullDesC8(); - } - - -#endif //__UPNTERMINALMODEICON_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmclienticonpref.h --- a/services/terminalmodeservice_plat/inc/upnptmclienticonpref.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/** -* 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: CUpnpTmClientIconPref class declaration. -* -*/ - -#ifndef __UPNPTMCLIENTICONPREF_H__ -#define __UPNPTMCLIENTICONPREF_H__ - -#include - -const TUint KDefaultDepthValue = 24; - -// CLASS DECLARATION -/** - * The class specifies the icon preferences corresponding to each Client - * Profile.It describes the mime type and the dimensions that client adhering to - * a particular profile supports. AutomotiveServer sets the icon preferences and - * sends the same to TM Service when requested. - */ -class CUpnpTmClientIconPref: public CBase - { -public: - /** - * Two-phased constructor. returns a pointer to the new element. - * @param aProfileId Client profile ID - * @param aWidth icon width - * @param aHeight icon height - * @param aDepth icon depth - * @param aMimeType icon mime type - */ - IMPORT_C static CUpnpTmClientIconPref* NewL( TUint aProfileId ); - /** - * Destructor. - */ - ~CUpnpTmClientIconPref(); - -public: - // inlined "setter" and "getter" methods - /** - * Returns the profileID. - * @return Returns the profileID of the client profile. - */ - inline TUint ClientProfileId()const; - /** - * Returns the mime type. - * @return Returns icon mime type - */ - inline const TDesC8& MimeType()const; - /** - * Returns the width of the icon. - * @return Returns width in pixels or KErrNotFound - */ - inline TInt Width()const; - /** - * Returns the height of the icon. - * @return Returns height in pixels or KErrNotFound - */ - inline TInt Height()const; - /** - * Returns the color depth of the icon. - * @return Returns icon depth or KErrNotFound - */ - inline TInt Depth()const; - /** - * Method is used to provide the preferred mime type of the client. - * @param aMimeType icon mime type - */ - IMPORT_C void SetMimeTypeL( const TDesC8& aMimeType ); - /** - * Sets icon width - * @param aWidth icon width - */ - inline void SetWidth( const TInt aWidth ); - /** - * Sets icon height - * @param aHeight icon height - */ - inline void SetHeight( const TInt aHeight ); - /** - * Sets icon depth - * @param aDepth icon depth - */ - inline void SetDepth( const TInt aDepth ); - -private: - /** - * C++ default constructor. - */ - CUpnpTmClientIconPref( TUint aProfileId ); - /** - * 2nd phase constructor - */ - void ConstructL( ); - -private: // Data - TUint iClientProfileId; - HBufC8* iIconMimeType; - TInt iIconWidth; - TInt iIconHeight; - TInt iIconDepth; - }; - -#include - -#endif //__UPNPTMCLIENTICONPREF_H__ - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmclienticonpref.inl --- a/services/terminalmodeservice_plat/inc/upnptmclienticonpref.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/** -* 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: CUpnpTmClientIconPref INL file -* -*/ - -#ifndef __UPNPTMCLIENTICONPREF_INL__ -#define __UPNPTMCLIENTICONPREF_INL__ - - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::ClientProfileId -// Returns the profileID of the client profile. -// --------------------------------------------------------------------------------- -// -inline TUint CUpnpTmClientIconPref::ClientProfileId()const - { - return iClientProfileId; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::MimeType -// Returns the mime type of the icon. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTmClientIconPref::MimeType()const - { - return *iIconMimeType; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::Width -// Returns the width of the icon. -// --------------------------------------------------------------------------------- -// -inline TInt CUpnpTmClientIconPref::Width()const - { - return iIconWidth; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::Height -// Returns the height of the icon. -// --------------------------------------------------------------------------------- -// -inline TInt CUpnpTmClientIconPref::Height()const - { - return iIconHeight; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::Depth -// Returns the depth of the icon. -// ------------------------------------------------------------------------------------- -// -inline TInt CUpnpTmClientIconPref::Depth()const - { - return iIconDepth; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::SetWidthL -// Method is used to set the width of the icon which TM client supports -// @param aWidth Width of the icon -// --------------------------------------------------------------------------------- -// -inline void CUpnpTmClientIconPref::SetWidth( TInt aWidth ) - { - iIconWidth = aWidth; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::SetHeightL -// Method is used to set the height of the icon which TM client supports -// @param aHeight Height of the icon -// --------------------------------------------------------------------------------- -// -inline void CUpnpTmClientIconPref::SetHeight( TInt aHeight ) - { - iIconHeight = aHeight; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmClientIconPref::SetDepthL -// Method is used to set the color depth of the icon which TM client supports -// @param aDepth Color depth of the icon -// --------------------------------------------------------------------------------- -// -inline void CUpnpTmClientIconPref::SetDepth( TInt aDepth ) - { - iIconDepth = aDepth; - } - -#endif //__UPNPTMCLIENTICONPREF_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptminfoelement.h --- a/services/terminalmodeservice_plat/inc/upnptminfoelement.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/** -* 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: CUpnpTmInfoElement class declaration -* -*/ - -#ifndef __UPNPTMINFOELEMENT_H__ -#define __UPNPTMINFOELEMENT_H__ - -#include -#include - -//Literals -_LIT8(KRemotingInfo, "remotingInfo" ); -_LIT8(KAppInfo, "appInfo" ); -_LIT8(KDisplayInfo, "displayInfo" ); -_LIT8(KAudioInfo, "audioInfo" ); - -/** - * Class represents the list of key-value pairs for each terminal mode info type. - * Used by the AutomotiveServer to provide name-value pairs for the associated application - */ -class CUpnpTmInfoElement : public CBase - { -public: - enum TTerminalModeInfoType - { - ERemotingInfo, - EAppInfo, - EDisplayInfo, - EAudioInfo - }; - /** - * Standard Symbian Two-phased constructor. - */ - static CUpnpTmInfoElement* NewL( TTerminalModeInfoType aTerminalModeInfoType ); - // Destructor - ~CUpnpTmInfoElement(); - /** - * Method is used to set terminal mode info key-value pair - */ - IMPORT_C void AddTmInfoElementL( const TDesC8& aName,const TDesC8& aValue ); - // Unexported getter method - void GetTmInfoElementL( RBuf8& aInfoElementName, - RBuf8& aInfoElementValue, TInt aIndex )const; - // inlined getter methods - inline const TDesC8& TerminalModeInfoType( )const; - inline TInt TmInfoElementCount()const; - -private: - CUpnpTmInfoElement(); - void ConstructL( TTerminalModeInfoType aTerminalModeInfoType ); - -private: - HBufC8* iInfoTypeBuffer; - RArray iInfoElementNameArray; - RArray iInfoElementValueArray; - RBuf8 iElementName; - RBuf8 iElementValue; - }; - -#include - -#endif //__UPNPTMINFOELEMENT_H__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptminfoelement.inl --- a/services/terminalmodeservice_plat/inc/upnptminfoelement.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/** -* 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: -* -*/ - -#ifndef __UPNPTMINFOELEMENT_INL__ -#define __UPNPTMINFOELEMENT_INL__ - - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::TerminalModeInfoType -// Method is used to retrieve terminal mode info type -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTmInfoElement::TerminalModeInfoType( )const - { - return *iInfoTypeBuffer; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmInfoElement::TmInfoElementCount -// Method is used to retrieve the number of key-value pairs for each info type -// --------------------------------------------------------------------------------- -// -TInt CUpnpTmInfoElement::TmInfoElementCount()const - { - return iInfoElementNameArray.Count(); - } - -#endif //__UPNPTMINFOELEMENT_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmserver.h --- a/services/terminalmodeservice_plat/inc/upnptmserver.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/** -* 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: CUpnpTmServer class declaration -* -*/ - -#ifndef __UPNPTMSERVER_H__ -#define __UPNPTMSERVER_H__ - -// Include Files -#include // CBase -#include -#include -#include - -//Forward Declaration -class CUpnpTmServerImpl; - - -/** - * The Main interface for the Terminal Mode Service. - * The client of this class (Automotive Server or equivalent) is responsible - * for registering/unregistering the remotable apps and updating the status - * of the running apps. - * The client should also "start" and "stop" the service through the API - * provided in this class - */ -class CUpnpTmServer: public CBase - { -public: - /** - * Standard Symbian Two-phased constructor. - * @param aDeviceInfo The IAP and device Settings that the - * Terminal Mode Service needs to operate. - * A valid IAP ID is mandatory. - * @param aUpnpTmServerObserver The callback interface that the client - * application must implement. - */ - IMPORT_C static CUpnpTmServer* NewL( CUpnpTmServerDeviceInfo& aDeviceInfo, - MUpnpTmServerObserver& aUpnpTmServerObserver ); - ~CUpnpTmServer(); - -public: - /** - * Method to register a single App (aka Remotable App ). - * The caller must create a CUpnpRemotableApp object and - * populate it before calling this method. - * @param aRemotableApp A pointer to a Remotable App object. - * "Ownership" of the object is passed. - * Must not be NULL. - */ - IMPORT_C void RegisterAppL( CUpnpRemotableApp* aRemotableApp ); - /** - * Method to register a list of Apps (aka Remotable Apps). - * The caller must create all the CUpnpRemotableApp objects - * and populate them before calling this method. - * This list of apps will be appended to existing list of - * registered apps. - * @param aRemotableAppList A RPointerArray of Remotable App objects. - * "Ownership" of all the objects is passed. - * None of the objects must be NULL. - */ - IMPORT_C void RegisterAppsL( const RPointerArray& aRemotableAppList ); - /** - * Method to unregister a single App from the service. - * The specified App must be registered with the - * Terminal Mode Service. - * @param aAppId The ID of the app to be unregistered - */ - IMPORT_C TInt UnRegisterApp( TUint aAppId ); - /** - * Method to unregister multiple Apps from the service. - * The specified Apps must be registered with the - * Terminal Mode Service. - * In case of duplicate appIDs ,TM service will sort out the duplicate ones - * and will unregister only once for a particular appID. - * Even if a single app from the requested array is unable to get - * un-registered the method should return KErrNotFound. - * @param aAppIdArray The list of IDs of the apps to be unregistered - */ - IMPORT_C TInt UnRegisterApps( const RArray& aAppIdArray ); - /** - * Method to set the XML signature of the registered apps - * This is done as specified in XML Signature Syntax. - * The signature value is opaque to the TM Service. - * @param aSignature XML formatted buffer - */ - IMPORT_C void SetXmlSignatureL( const TDesC8& aSignature ); - /** - * Method to Start the Terminal Moder Server Device and its services. - * This must be called to initiate all the UPnP related - * activities. - */ - IMPORT_C void StartL(); - /** - * Method to Stop the Terminal Moder Server Device and its services. - * No further UPnP related activities will occur after this. - */ - IMPORT_C void StopL(); - /** - * Method to fetch the Remotable App object by passing the - * App ID of the same. Method is invoked by the Automotive Server - * when it wishes to modify any of the existing remotable app. - * @param aAppId App ID of the requested App - * @param aErr[out] Error code - * @return Returns reference to CUpnpRemotableApp object - */ - IMPORT_C CUpnpRemotableApp& GetRemotableApp( TUint aAppId, TInt& aErr ); - /** - * Method through which the notification of applications whose status - * has changed is sent across to the Car Kit through the Service . - * TM Service ignores the duplicate appIDs and sends only the list of - * unique appIDs. - * @param aUpdatedAppIdList List of appIDs whose status has changed - */ - IMPORT_C void UpdateAppStatusL( const RArray& aUpdatedAppIdList ); - /** - * Method through which the notification of applications whose entries - * in the application list have changed is sent across to the Car Kit - * through the Service. - * TM Service ignores the duplicate appIDs and sends only the list of - * unique appIDs. - * @param aUpdatedAppIdList List of appIDs whose entries haave changed - */ - IMPORT_C void UpdateAppListL( const RArray& aUpdatedAppIdList ); - /** - * Method through which the notification of profileIDs which are not used - * used by any Terminal Mode service hosted on the Terminal Mode device - * is sent across to the Car Kit through the Service. - * TM Service ignores the duplicate profileIDs and sends only the list of - * unique profileIDs. - * @param aUnusedProfileIdList List of profile IDs for profiles which are - * currently not being used by any Terminal Mode service - */ - IMPORT_C void UpdateUnusedProfileIdsL( const RArray& aUnusedProfileIdList ); - -private: - CUpnpTmServer(); - void ConstructL( CUpnpTmServerDeviceInfo& aDeviceInfo, - MUpnpTmServerObserver& aUpnpRemoteServer ); - -private: - // The "body"/implementation - CUpnpTmServerImpl* iTmServerImpl; - }; - -#endif // __UPNPTMSERVER_H__ - diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmserverdeviceinfo.h --- a/services/terminalmodeservice_plat/inc/upnptmserverdeviceinfo.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/** -* 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: CUpnpTmServerDeviceInfo class declaration -* -*/ - -#ifndef __UPNPTMSERVERDEVICEINFO_H__ -#define __UPNPTMSERVERDEVICEINFO_H__ - - -// INCLUDES -#include -#include - -/** -* This class represents device-specific parameters associated with -* Terminal Mode Server Device -*/ - -class CUpnpTmServerDeviceInfo: public CBase - { -public: - /** - * Standard Symbian Two-phased constructor. - * @param aIapId IAP ID. 32 bit unsigned integer. IAP stands for - * internet access point.It is mandatory to set IAP ID - * - */ - IMPORT_C static CUpnpTmServerDeviceInfo* NewL( TUint32 aIapId ); - /** - * Method to set the icon information associated with the Terminal Mode - * Server Device. It provides device icon information to the TM Sevice. - * @param aDeviceIcon Pointer to TM Icon object. - * Ownership of the object is passed. - * @see CUpnpTerminalModeIcon - */ - IMPORT_C void AddDeviceIconL( CUpnpTerminalModeIcon* aDeviceIcon ); - /** - * Method to set the Nokia specific additional information - * about the terminal mode server device. - * The entire deviceInfo element should as an xml formatted buffer should - * be provided as an input. - * The device info value is opaque to the TM Service. - * @param aDeviceInfo XML formatted buffer containing deviceInfo element. - */ - IMPORT_C void SetDeviceInfoL( const TDesC8& aDeviceInfo ); - /** - * Method to set Bluetooth MAC address of the TM server device. - * If this value is populated then it means that the device - * supports Bluetooth communication - * @param aBtAddress Bt MAC address - */ - IMPORT_C void SetBtAddressL( const TDesC8& aBtAddress ); - /** - * A setter to indicate that server device is able to initiate - * Bluetooth connection to client or not. - * @param aStartConn Boolean value - */ - inline void SetStartConn( TBool aStartConn ); - /** - * inlined "getter" methods for Terminal Mode Service's use. - */ - inline TUint32 IapId()const; - inline const RPointerArray& DeviceIconList()const; - inline const TDesC8& DeviceInfo( )const; - inline const TDesC8& BtAddress( )const; - inline TBool StartConn()const; - ~CUpnpTmServerDeviceInfo(); - -private: - CUpnpTmServerDeviceInfo( ); - void ConstructL( TUint32 aIapId ); - -private: - TUint32 iIapId; - HBufC8* iDeviceInfo; - HBufC8* iBtAddr; - TBool iStartConnValue; - RPointerArray iDeviceIconList; - }; - -#include - -#endif // __UPNPTMSERVERDEVICEINFO_H__ - - -// End of File diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmserverdeviceinfo.inl --- a/services/terminalmodeservice_plat/inc/upnptmserverdeviceinfo.inl Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/** -* 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: -* -*/ - -#ifndef __UPNPTMSERVERDEVICEINFO_INL__ -#define __UPNPTMSERVERDEVICEINFO_INL__ - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::SetStartConn -// Method to set the boolean value which indicates whether the server device -// is able to initiate bluetooth connection to client or not. -// @param aStartConn Boolean value ( True or false ) -// --------------------------------------------------------------------------------- -// -inline void CUpnpTmServerDeviceInfo::SetStartConn( TBool aStartConn ) - { - iStartConnValue = aStartConn; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::IapId -// Method is used to retrieve IAP ID. -// --------------------------------------------------------------------------------- -// -inline TUint32 CUpnpTmServerDeviceInfo::IapId()const - { - return iIapId; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::DeviceIconList -// Method is used to retrieve an array of device icons. -// --------------------------------------------------------------------------------- -// -inline const RPointerArray& CUpnpTmServerDeviceInfo::DeviceIconList()const - { - return iDeviceIconList; - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::DeviceInfo -// Method is used to retrieve additional information related to the device. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTmServerDeviceInfo::DeviceInfo()const - { - if ( iDeviceInfo ) - { - return *iDeviceInfo; - } - return KNullDesC8(); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::BtAddress -// Method is used to retrieve the BT MAC address of the TM server device. -// --------------------------------------------------------------------------------- -// -inline const TDesC8& CUpnpTmServerDeviceInfo::BtAddress()const - { - if ( iBtAddr ) - { - return *iBtAddr; - } - return KNullDesC8(); - } - -// --------------------------------------------------------------------------------- -// CUpnpTmServerDeviceInfo::StartConn -// Method is used to fetch the the boolean value for BT start connection preferences. -// --------------------------------------------------------------------------------- -// -inline TBool CUpnpTmServerDeviceInfo::StartConn()const - { - return iStartConnValue; - } - -#endif //__UPNPTMSERVERDEVICEINFO_INL__ diff -r 5c72fd91570d -r 594d15129e2c services/terminalmodeservice_plat/inc/upnptmserverobserver.h --- a/services/terminalmodeservice_plat/inc/upnptmserverobserver.h Tue Aug 31 16:06:48 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/** -* 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: MUpnpTmServerObserver interface definition -* -*/ - -#ifndef __UPNPTMSERVEROBSERVER_H__ -#define __UPNPTMSERVEROBSERVER_H__ - -#include -#include - -/** - * This is the main callback interface which the Terminal Mode Server application - * needs to implement to handle the soap action requests from the Terminal Mode Clients. - * It also provides a method to fetch client's icon preferences from AutomotiveServer. - * - */ -class MUpnpTmServerObserver - { -public: - /** - * Method to intimate Automotive Server about the arrival of GetApplicationList soap action. - * This is a synchronous call and the implementing class must return immediately - * @param aProfileId Profile ID of the client profile whose parameter settings will be - * applied for generating the application list - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnGetApplicationList( TUint aProfileId ) = 0; - /** - * Method to launch an app through the Automotive Server. - * This is a synchronous call and the implementing class must return after - * launching the app. - * @param aAppId The App ID as registered with the Terminal Mode Service. - * @param aUrl[out] AS provides the actual URL where the application is running. - * @param aProfileId Profile ID of the client profile whose parameter settings will be - * applied for launching and executing the application - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnLaunchApp( TUint aAppId, RBuf8& aUrl, TUint aProfileId = 0 ) = 0; - /** - * Method to terminate an app that is already running. - * @param aAppID The ID of the App as registered with the Terminal Mode Service. - * @param aProfileId Profile ID of the client profile whose parameter settings will be - * applied to the application during execution - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnTerminateApp( TUint aAppId, TUint aProfileId = 0 ) = 0; - /** - * Method through which the Terminal Mode Service Service can retrieve the status of a - * given app. - * @param aAppID The ID of the App as registered with the Terminal Mode Service. - * @param aProfileId [out]Profile ID of the client profile - * @param aStatusType [out]The App Status object to be populated - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnGetAppStatus( TUint aAppId, TUint& aProfileId ,RBuf8& aStatusType ) = 0; - /** - * AutomotiveServer returns the the value of the state variable MaxNumProfiles - * in response to the GetMaxNumProfiles action - * @param aProfileIdCount[out] The maximum number of client profiles that are supported - * simultaneously by the TmClientProfile service. - * @return Returns TerminalModeError code - */ - virtual TTerminalModeErrorCode OnGetMaxNumProfiles( TUint& aProfileIdCount ) = 0; - /** - * Method to intimate AutomotiveServer whenever the control point invokes action to register - * a client profile and notify the Terminal Mode device about its preferences, settings - * and capabilities. - * @param aProfileId The identifier of the profile record where the client profile - * settings must be stored - * @param aClientProfile Profile information about Terminal Mode client and its capabilities - * which needs to be updated in the profile record - * @param aResultProfile[out] The updated client profile. - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnSetClientProfile( TUint aProfileId, const TDesC8& aClientProfile, - RBuf8& aResultProfile ) = 0; - /** - * Method to intimate AutomotiveServer whenever the control point invokes action to - * to access the contents of a client profile stored in the Terminal Mode device - * @param aProfileId The identifier of the profile record where the client profile - * settings must be stored - * @param aClientProfile[out] Client profile corresponding to the profileID input variable - * @return Returns Terminal Mode Error code - */ - virtual TTerminalModeErrorCode OnGetClientProfile( TUint aProfileId, RBuf8& aClientProfile ) = 0; - /** - * Method to fetch the Terminal Mode Client( Car Kit )'s icon preferences from the - * AutomotiveServer for a particular client profile corresponding to the profileID supplied. - * In case client profile has no icon preferences associated with it, AutomotiveServer - * returns the Client Icon Preference object with default values. - * This method is invoked whenever the http request for a particular application icon - * comes to Terminal Mode Service. - * @param aProfileId ProfileID corresponding to a particular client profile. - * @return Returns reference to the Client Icon Preference object. - * @see CUpnpTmClientIconPref - */ - virtual const CUpnpTmClientIconPref& GetClientIconPrefsL( TUint aProfileId ) = 0; - }; - -#endif // __UPNPTMSERVEROBSERVER_H__ - diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/controlpointbase/src/upnpcpbdescriptionagent.cpp --- a/upnp/upnpstack/controlpointbase/src/upnpcpbdescriptionagent.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/controlpointbase/src/upnpcpbdescriptionagent.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -215,7 +215,7 @@ RBuf8 description; if(deviceDescription->UrlBase().Length()!=0) { - description.CreateL(aDeviceDescPath.Length()+deviceDescription->UrlBase().Length()); + description.Create(aDeviceDescPath.Length()+deviceDescription->UrlBase().Length()); description.Copy(deviceDescription->UrlBase()); TInt firstSlash(aDeviceDescPath.Locate( KSlash8()[0] ) ); if(firstSlash==0) @@ -228,7 +228,7 @@ else { TBuf<25> ipBuf; - description.CreateL(KUrlMaxLength); + description.Create(KUrlMaxLength); description.Copy(KHttp()); aAddr.Output ( ipBuf); diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/controlpointbase/src/upnpcpbembeddeddevicedescription.cpp --- a/upnp/upnpstack/controlpointbase/src/upnpcpbembeddeddevicedescription.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/controlpointbase/src/upnpcpbembeddeddevicedescription.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -300,6 +300,7 @@ { iResult = KErrNotFound; } + } } else diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/controlpointbase/src/upnpserviceinfo.cpp --- a/upnp/upnpstack/controlpointbase/src/upnpserviceinfo.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/controlpointbase/src/upnpserviceinfo.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -233,19 +233,19 @@ { result = RUpnpGenaMessageFactory::SubscribeL( subscribe, servAddress, aPath, timeoutBuf ); - break; + break; } case EResubscription: { result = RUpnpGenaMessageFactory::ResubscribeL( subscribe, servAddress, aPath, timeoutBuf ); - break; + break; } case EUnSubscription: { result = RUpnpGenaMessageFactory::UnsubscribeL( subscribe, servAddress, aPath); - break; + break; } default: { @@ -253,15 +253,16 @@ User::Leave(KErrArgument); break; } - } if(result == NULL) { // To avoid Coverity FORWARD_NULL errors User::Leave(KErrArgument); } + result->SetType( aType ); iSessionId = result->SessionId(); + return result; } diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/dlnawebserver/group/dlnawebserver.mmp --- a/upnp/upnpstack/dlnawebserver/group/dlnawebserver.mmp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/dlnawebserver/group/dlnawebserver.mmp Wed Sep 01 12:27:00 2010 +0100 @@ -87,6 +87,7 @@ //Max file size related libs +LIBRARY commonui.lib LIBRARY flogger.lib DEFFILE DLNAwebserver diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/dlnawebserver/src/upnphttpbuffer.cpp --- a/upnp/upnpstack/dlnawebserver/src/upnphttpbuffer.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/dlnawebserver/src/upnphttpbuffer.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -87,7 +87,7 @@ // void CUpnpHttpBuffer::ConstructL() { - iBuffer.CreateL( 0 ); + iBuffer.Create( 0 ); iChunkParser = CUpnpHttpChunkParser::NewL(); } diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/dlnawebserver/src/upnphttpchunkparser.cpp --- a/upnp/upnpstack/dlnawebserver/src/upnphttpchunkparser.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/dlnawebserver/src/upnphttpchunkparser.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -107,7 +107,6 @@ { case EUnknown: iContext = EHeader; - break; case EHeader: interrupt = ParseHeader(aBuffer,aPos); break; diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/dlnawebserver/src/upnphttpsession.cpp --- a/upnp/upnpstack/dlnawebserver/src/upnphttpsession.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/dlnawebserver/src/upnphttpsession.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -1445,7 +1445,7 @@ CUpnpHttpHeader* hdr = List->First(); - if(hdr != NULL) + if(hdr != NULL) { HBufC8* newHeader = NULL; newHeader = HBufC8::NewLC( KTransferPending801().Length() ); @@ -1456,7 +1456,6 @@ CleanupStack::PopAndDestroy( newHeader ); } - msg->SetOutFilenameL( *iOutFilename ); CleanupStack::Pop( msg ); NotifyUpperLayerLD( msg ); diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/dlnawebserver/src/upnptcpserver.cpp --- a/upnp/upnpstack/dlnawebserver/src/upnptcpserver.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/dlnawebserver/src/upnptcpserver.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -330,7 +330,7 @@ #endif CUpnpTcpSession* sess = ConnectionAcceptedL( iClientSocket ); - iSessionList.AppendL( sess ); + iSessionList.Append( sess ); } else diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/messagehandler/src/upnpipfiltering.cpp --- a/upnp/upnpstack/messagehandler/src/upnpipfiltering.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/messagehandler/src/upnpipfiltering.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -241,7 +241,7 @@ } // create heap descriptor - iListBuf.CreateL( buf->Size() ); + iListBuf.Create( buf->Size() ); buf->Read( 0, iListBuf, buf->Size() ); // clean up; diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpdevice.cpp --- a/upnp/upnpstack/serviceframework/src/upnpdevice.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpdevice.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -544,7 +544,7 @@ for (TInt i = 0; i < iDeviceList.Count(); i++ ) { - TRAP_IGNORE(aDevices.AppendL( iDeviceList[i] )); + aDevices.Append( iDeviceList[i] ); iDeviceList[i]->GetAllDevices(aDevices); } diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpdeviceimplementation.cpp --- a/upnp/upnpstack/serviceframework/src/upnpdeviceimplementation.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpdeviceimplementation.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -19,7 +19,7 @@ // INCLUDE FILES #include -#include +#include #include #include "upnpfileutils.h" diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpdeviceimplementationbase.cpp --- a/upnp/upnpstack/serviceframework/src/upnpdeviceimplementationbase.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpdeviceimplementationbase.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -19,7 +19,7 @@ // INCLUDE FILES #include -#include +#include #include "upnpfileutils.h" #include "upnpicon.h" diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpdispatcherengine.cpp --- a/upnp/upnpstack/serviceframework/src/upnpdispatcherengine.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpdispatcherengine.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -174,7 +174,7 @@ // adds a new customer for CUpnpDispatcherEngine if ( iCustomers.Find( &aCustomer ) == KErrNotFound ) { - TRAP_IGNORE(iCustomers.AppendL( &aCustomer )); + iCustomers.Append( &aCustomer ); } } // ----------------------------------------------------------------------------- @@ -352,7 +352,7 @@ CleanupClosePushL( currServs ); for ( TInt j = 0; j < iDevs[i].iServiceCount; j++ ) { - currServs.AppendL( (const TUpnpService*)&iServs[servIndex+j] ); + currServs.Append( (const TUpnpService*)&iServs[servIndex+j] ); } CleanupStack::Check(&currServs); servIndex += iDevs[i].iServiceCount; @@ -366,7 +366,7 @@ currServs.Reset(); CleanupStack::Pop( &currServs ); - iNewDevices.AppendL( device ); + iNewDevices.Append( device ); } delete[] iDevs; @@ -542,7 +542,7 @@ request->AddServices(array); CleanupStack::Pop(request); - iPendingRequests.AppendL(request); + iPendingRequests.Append(request); } } @@ -693,7 +693,7 @@ request->AddArgumentL( aString ); CleanupStack::Pop(request); - iPendingRequests.AppendL(request); + iPendingRequests.Append(request); } } @@ -837,7 +837,7 @@ } CleanupStack::Pop(request); - iPendingRequests.AppendL(request); + iPendingRequests.Append(request); } } diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpsilentdeviceimplementation.cpp --- a/upnp/upnpstack/serviceframework/src/upnpsilentdeviceimplementation.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpsilentdeviceimplementation.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -19,7 +19,7 @@ // INCLUDE FILES #include -#include +#include #include #include "upnpfileutils.h" diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/serviceframework/src/upnpsoapmessagefactory.cpp --- a/upnp/upnpstack/serviceframework/src/upnpsoapmessagefactory.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/serviceframework/src/upnpsoapmessagefactory.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -217,6 +217,7 @@ CUpnpHttpHeader* hdr = hdrList->First(); + while ( hdr ) { TBool flag = EFalse; diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/upnphttptransfer/src/httpfile.cpp --- a/upnp/upnpstack/upnphttptransfer/src/httpfile.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/upnphttptransfer/src/httpfile.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -231,7 +231,7 @@ } } - iHeaderArray.AppendL( CHttpHeader::NewL( aFieldName, aFieldValue ) ); + iHeaderArray.Append( CHttpHeader::NewL( aFieldName, aFieldValue ) ); } // -------------------------------------------------------------------------- diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/upnputils/src/upnpdevicelibrary.cpp --- a/upnp/upnpstack/upnputils/src/upnpdevicelibrary.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/upnputils/src/upnpdevicelibrary.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -631,7 +631,7 @@ element->SetRenew(CUpnpTimeoutElement::EOnce); element->SetTimeout(aMessage->CacheControl()); element->SetLocal(EFalse); - iElementArray.AppendL(element); + iElementArray.Append(element); CleanupStack::Pop(); // element } @@ -662,7 +662,7 @@ element->SetRenew(CUpnpTimeoutElement::EOnce); element->SetTimeout(aMessage->CacheControl()); element->SetLocal(EFalse); - iElementArray.AppendL(element); + iElementArray.Append(element); CleanupStack::Pop(); // element } @@ -679,7 +679,7 @@ element->SetRenew(CUpnpTimeoutElement::EOnce); element->SetTimeout(aMessage->CacheControl()); element->SetLocal(EFalse); - iElementArray.AppendL(element); + iElementArray.Append(element); CleanupStack::Pop(); // element } diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack/upnputils/src/upnpdominterface.cpp --- a/upnp/upnpstack/upnputils/src/upnpdominterface.cpp Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack/upnputils/src/upnpdominterface.cpp Wed Sep 01 12:27:00 2010 +0100 @@ -30,9 +30,9 @@ #include "upnpcustomlog.h" -#include -#include -#include +#include +#include +#include diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack_plat/upnp_device_api/inc/upnpdevicedescriptionstore.h --- a/upnp/upnpstack_plat/upnp_device_api/inc/upnpdevicedescriptionstore.h Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack_plat/upnp_device_api/inc/upnpdevicedescriptionstore.h Wed Sep 01 12:27:00 2010 +0100 @@ -20,9 +20,9 @@ #define C_CUPNPDEVICEDESCRIPTIONSTORE_H #include -#include -#include -#include +#include +#include +#include #include class CUpnpDevice; diff -r 5c72fd91570d -r 594d15129e2c upnp/upnpstack_plat/upnp_utils_api/inc/upnpdominterface.h --- a/upnp/upnpstack_plat/upnp_utils_api/inc/upnpdominterface.h Tue Aug 31 16:06:48 2010 +0300 +++ b/upnp/upnpstack_plat/upnp_utils_api/inc/upnpdominterface.h Wed Sep 01 12:27:00 2010 +0100 @@ -26,7 +26,7 @@ #include #include #include -#include +#include namespace UpnpDomInterface {