--- a/defaultapplicationsettings/services_db/src/services_db.cpp Thu Aug 19 09:55:50 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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: Implements the Services DB API
-*
-*/
-
-
-#include <e32std.h>
-#include <bautils.h>
-#include <StringLoader.h>
-
-#include <services_db.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CServicesDB::NewLC()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CServicesDB* CServicesDB::NewLC( TResourceReader* aResReader )
- {
- CServicesDB* self = new (ELeave) CServicesDB();
- CleanupStack::PushL(self);
- self->ConstructL(aResReader);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CServicesDB::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CServicesDB* CServicesDB::NewL( TResourceReader* aResReader )
- {
- CServicesDB* self = CServicesDB::NewLC(aResReader);
- CleanupStack::Pop(self);
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CServicesDB::CServicesDB()
-//
-//
-// ---------------------------------------------------------------------------
-//
-CServicesDB::CServicesDB()
- {
- //no implementation necessary
- }
-
-// ---------------------------------------------------------------------------
-// CServicesDB::~CServicesDB()
-//
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CServicesDB::~CServicesDB()
- {
- iServiceUids.Close();
- iServiceNames.ResetAndDestroy();
- iServiceLoc.ResetAndDestroy();
- }
-
-// ---------------------------------------------------------------------------
-// The class is constructed by reading the data from the specified resource id into memory
-// ---------------------------------------------------------------------------
-//
-void CServicesDB::ConstructL( TResourceReader* aResReader )
- {
- TInt i;
- TInt count = aResReader->ReadInt16();
- for ( i = 0; i < count; i++ )
- {
- //read the service uid
- TInt uid=aResReader->ReadInt32();
- if(uid == 0)User::Leave(KErrArgument);
- //read the service name
- HBufC* service=aResReader->ReadHBufCL();
- if(!service)User::Leave(KErrArgument);
- //read the localized string
- HBufC* serviceLoc=aResReader->ReadHBufCL();
- if(!serviceLoc)User::Leave(KErrArgument);
-
- //append things
- iServiceUids.Append(uid);
- iServiceNames.Append(service);//takes ownership
- iServiceLoc.Append(serviceLoc);//takes ownership
- }
- //done
- }
-
-// ---------------------------------------------------------------------------
-// Returns the number of available services
-// (the number of services read from the resource during construction)
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CServicesDB::Count() const
- {
- return iServiceUids.Count();
- }
-
-// ---------------------------------------------------------------------------
-// Function to return the Uid of a service (by index).
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TUid CServicesDB::ServiceUidL(TInt aIndex) const
- {
- if(aIndex<0 || aIndex>=iServiceUids.Count())
- User::Leave(KErrArgument);
- return TUid::Uid(iServiceUids[aIndex]);
- }
-
-
-// ---------------------------------------------------------------------------
-// Function to return the localized name associated with a service. If the returned
-// strings accepts a parameter, this can be specified as aParam
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CServicesDB::ServiceStringLC(TInt aIndex, const TDes& aParam) const
- {
- TInt size=aParam.Size();
- HBufC *string=NULL;
-
- //check parameters
- if(aIndex<0 || aIndex>=iServiceUids.Count())
- User::Leave(KErrArgument);
-
- //get the size of the new string
- size+=iServiceLoc[aIndex]->Size();
- //allocate the string
- string = HBufC::NewLC(size);
- //create string content
- TPtr ptr=string->Des();
- if(aParam.Size())
- {
- //we have something in aParam
- //ptr.Format(*iServiceLoc[aIndex],&aParam);
- StringLoader::Format(ptr,*iServiceLoc[aIndex],-1,aParam);
- }
- else
- {
- //nothing in aParam, just copy the localized string to string
- ptr.Copy(*iServiceLoc[aIndex]);
- }
- //done, return
- return string; //string is on the stack, too
- }
-
-// ---------------------------------------------------------------------------
-// Function to return the localized name associated with a service. If the returned
-// strings accepts a parameter, this can be specified as aParam
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CServicesDB::ServiceStringLC(TUid aServiceUid, const TDes& aParam) const
- {
- HBufC* string=NULL;
- TInt i;
-
- //look for the service UIDs
- for(i=0; i<iServiceUids.Count(); i++)
- {
- if(iServiceUids[i] == aServiceUid.iUid)
- {
- string = ServiceStringLC(i,aParam);
- break;//service found
- }
- }
- if(!string)CleanupStack::PushL(string);//otherwise, string is already on the stack!
- return string;
- }
-
-// ---------------------------------------------------------------------------
-// Function to return the generic name of a service.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CServicesDB::ServiceNameLC(TInt aIndex) const
- {
- HBufC* string=NULL;
- TInt size=0;
-
- //check parameters
- if(aIndex<0 || aIndex>=iServiceUids.Count())
- User::Leave(KErrArgument);
-
- //get the size of the new string
- size=iServiceNames[aIndex]->Size();
- //allocate the string
- string = HBufC::NewLC(size);
- //create string content
- TPtr ptr=string->Des();
- ptr.Copy(*iServiceNames[aIndex]);
- return string;
- }
-
-// ---------------------------------------------------------------------------
-// Function to return the generic name of a service.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CServicesDB::ServiceNameLC(TUid aServiceUid) const
- {
- HBufC* string=NULL;
- TInt i;
-
- //loc for the service UIDs
- for(i=0; i<iServiceUids.Count(); i++)
- {
- if(iServiceUids[i] == aServiceUid.iUid)
- {
- string = ServiceNameLC(i);
- break;//service found
- }
- }
- if(!string)CleanupStack::PushL(string);//otherwise, string is already on the stack!
- return string;
- }
-