--- a/upnpharvester/common/cmsqlwrapper/src/cmsqldbclause.cpp Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,944 +0,0 @@
-/*
-* Copyright (c) 2008 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: SQL database sql clause class
-*
-*/
-
-
-
-
-
-
-#include <utf.h>
-#include "cmfillrule.h"
-#include "cmsqlpropertycollector.h"
-#include "cmsqlpropertycontainer.h"
-#include "cmsqlpropertyitem.h"
-#include "cmsqldbclause.h"
-#include "cmsqlclausedef.h"
-#include "msdebug.h"
-
-// CONSTANTS
-// The size of buf that need to allot for store the rule amount
-const TUint KCmRuleAmountSize = 5;
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::NewL
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause* CCmSqlDbClause::NewL()
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::NewL"));
- CCmSqlDbClause* self = CCmSqlDbClause::NewLC();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::NewLC
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause* CCmSqlDbClause::NewLC()
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::NewLC"));
- CCmSqlDbClause* self = new ( ELeave ) CCmSqlDbClause();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::~CCmSqlDbClause
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause::~CCmSqlDbClause()
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::~CCmSqlDbClause"));
-
- delete iClause;
- delete iFreeText;
- iProfileFilters.Reset();
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatClauseL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatClauseL( CCmFillRule& aRule,
- TCmMetadataField aField, TCmMediaType aMedia )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatClauseL"));
-
- delete iClause;
- iClause = NULL;
- if( aField == ECmNone && &aRule )
- {
- if( ECmAudio != aRule.MediaType() )
- {
- iClause = KCmSqlBaseSelect().AllocL();
- }
- else
- {
- iClause = KCmSqlMusicSelect().AllocL();
- }
- TRACE(Print(_L("[SQL wrapper]\t Formating media type...")));
- FormatMediatypeL( aRule );
- TRACE(Print(_L("[SQL wrapper]\t Formating params...")));
- FormatParamsL( aRule );
- TRACE(Print(_L("[SQL wrapper]\t Formating devices...")));
- FormatDevicesL( aRule );
- TRACE(Print(_L("[SQL wrapper]\t Formating profile filters...")));
- FormatProfileFiltersL();
- TRACE(Print(_L("[SQL wrapper]\t Formating ordering...")));
- FormatOrderingL( aRule.Method() );
- TRACE(Print(_L("[SQL wrapper]\t Formating amount...")));
- FormatAmountL( aRule );
- // Finish clause
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSemicolon().Length() );
- iClause->Des().Append( KCmSqlSemicolon() );
- }
- else
- {
- FormatProperyQueryL( aField, aMedia );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatFilteringClauseL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatFilteringClauseL(
- CCmSqlPropertyCollector& aPropertys )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatFilteringClauseL"));
-
- delete iClause;
- iClause = NULL;
-
- TInt count = aPropertys.PropertyContainerCount();
-
- if( count == 1 && aPropertys.PropertyContainer( 0 )->Type() == ECmTitle)
- {
- //video
- iClause = KCmSqlFilteredPropertySelectVideo().AllocL();
- }
- else
- {
- iClause = KCmSqlFilteredPropertySelect().AllocL();
- }
-
- FormatPropertyFilterL( aPropertys );
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::ClauseL
-// ---------------------------------------------------------------------------
-//
-TDesC8& CCmSqlDbClause::ClauseL() const
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::ClauseL"));
-
-#ifdef _DEBUG
- HBufC* data16bitBuf = HBufC::NewLC(iClause->Length());
- TPtr data16bitPtr = data16bitBuf->Des();
-
- TInt conversionError =
- CnvUtfConverter::ConvertToUnicodeFromUtf8(data16bitPtr,
- *iClause );
- TPtrC temp;
- for( TInt i = 0; i < (data16bitPtr.Length())/100 + 1 ; i++ )
- {
- if( i == (data16bitPtr.Length())/100 )
- {
- temp.Set( data16bitPtr.Mid(100*i ) );
- TRACE( Print(_L("SQL clause %S"), &temp ) );
- }
- else
- {
- temp.Set( data16bitPtr.Mid(100*i, 100 ) );
- TRACE( Print(_L("SQL clause %S"), &temp ) );
- }
- }
- CleanupStack::PopAndDestroy( data16bitBuf );
-#endif
- return *iClause;
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::SetDlnaProfileFilters
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::SetDlnaProfileFilters(
- const RArray<TInt64>& aProfileIds )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::SetDlnaProfileFilters"));
-
- iProfileFilters.Reset();
- for( TInt i = 0; i < aProfileIds.Count() ; i++ )
- {
- iProfileFilters.InsertInSignedKeyOrder( aProfileIds[i] );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatMediatypeL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatMediatypeL( CCmFillRule& aRule )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMediatypeL"));
-
- TBuf8<20>mediatype;
- mediatype.Format( KCmSqlSelectMediatype, aRule.MediaType() );
- iClause = iClause->ReAllocL( iClause->Length() + mediatype.Length() );
- iClause->Des().Append( mediatype );
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatParamsL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatParamsL( CCmFillRule& aRule )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatParamsL"));
-
- TCmMetadataField metadataColum;
- TPtrC8 dataField;
- TInt dataFieldIndex;
- TCmOperatorType oper;
- TInt paramCount;
- TBool operatorAdded( EFalse );
- for( TInt i = 0; i < aRule.RuleCount(); i++ )
- {
- aRule.RuleL( i, &metadataColum, &oper, ¶mCount );
- if( paramCount )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlAnd().Length() + KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlAnd );
- iClause->Des().Append( KCmSqlLeftBracket() );
- for( TInt j = 0; j < paramCount; j++ )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlLeftBracket() );
-
- FormatMetadataColumnL( metadataColum, aRule.MediaType() );
- // Data field may change to integer value ( index to table )
- aRule.RuleParamL( i, j, &dataField );
- aRule.RuleParamL( i, j, dataFieldIndex );
-
- // If rule is free text rule, operator is already appended
- // into Sql clause
- operatorAdded = EFalse;
- if( ECmFreeText != metadataColum &&
- ECmArtist != metadataColum &&
- ECmAlbum != metadataColum &&
- ECmResolution != metadataColum &&
- ECmGenre != metadataColum &&
- ECmUpnpClass != metadataColum &&
- ECmTitle != metadataColum )
- {
- FormatOperatorL( metadataColum, oper );
- operatorAdded = ETrue;
- }
-
- if( dataField.Size() &&
- ( iFreeText || ECmDate == metadataColum ||
- ECmFileSize == metadataColum ||
- ECmDuration == metadataColum ) )
- {
- if( ECmDate != metadataColum &&
- ECmFileSize != metadataColum &&
- ECmDuration != metadataColum )
- {
- TInt multiplier( 1 );
- if( aRule.MediaType() == ECmAudio &&
- metadataColum == ECmFreeText )
- {
- // Three fields are used in audio free text search
- multiplier = 3;
- }
- iFreeText = iFreeText->ReAllocL( iFreeText->Length() +
- ( dataField.Length() * multiplier ) );
- HBufC8* temp = HBufC8::NewMaxL( iFreeText->Length() +
- ( dataField.Length() * multiplier ) );
- // Format dataField into clause
- if( multiplier == 1 )
- {
- temp->Des().Format( *iFreeText, &dataField );
- }
- else
- {
- temp->Des().Format( *iFreeText, &dataField,
- &dataField, &dataField );
- }
- if( iFreeText )
- {
- delete iFreeText;
- iFreeText = NULL;
- }
- iClause = iClause->ReAllocL( iClause->Length() +
- temp->Length() );
- iClause->Des().Append( *temp );
- delete temp;
- }
- else
- {
- // Date is appended in TInt64 format
- TLex8 lex( dataField );
- TInt64 num;
- lex.Val( num );
- iClause = iClause->ReAllocL( iClause->Length() +
- dataField.Length() );
- iClause->Des().AppendNum( num );
- }
- }
- else
- {
- if( operatorAdded )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- sizeof( dataFieldIndex ) );
-
- HBufC8* temp = HBufC8::NewMaxLC( iClause->Length() );
- temp->Des().Format( *iClause, dataFieldIndex );
- delete iClause;
- iClause = NULL;
- iClause = temp->AllocL();
- CleanupStack::PopAndDestroy( temp );
- }
- else
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- sizeof( dataFieldIndex ) );
- iClause->Des().AppendNum( dataFieldIndex );
- }
- }
-
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
-
- if( j < paramCount - 1 )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlOr().Length() );
- iClause->Des().Append( KCmSqlOr() );
- }
- }
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatDevicesL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatDevicesL( CCmFillRule& aRule )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatDevicesL"));
-
- TPtrC8 mediaServer;
- TInt msId(0);
- if( aRule.MediaServerCount() )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlAnd().Length() );
- iClause->Des().Append( KCmSqlAnd() );
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlLeftBracket() );
- }
- for( TInt k = 0; k < aRule.MediaServerCount(); k++ )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlLeftBracket() );
- aRule.MediaServerL( k, msId );
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectDeviceId().Length() + sizeof( msId ) );
- iClause->Des().Append( KCmSqlSelectDeviceId );
- iClause->Des().AppendNum( msId );
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- if( k < aRule.MediaServerCount() - 1 )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlOr().Length() );
- iClause->Des().Append( KCmSqlOr() );
- }
- }
- if( aRule.MediaServerCount() )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatOrderingL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatOrderingL( TCmFillMethod aMethod )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatOrderingL"));
-
- switch( aMethod )
- {
- case ECmRandom:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlOrderByRandom().Length() );
- iClause->Des().Append( KCmSqlOrderByRandom() );
- break;
- }
- case ECmLatest:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlOrderByDate().Length() + KCmSqlDesc().Length() );
- iClause->Des().Append( KCmSqlOrderByDate() );
- iClause->Des().Append( KCmSqlDesc() );
- break;
- }
- case ECmOldest:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlOrderByDate().Length() + KCmSqlAsc().Length() );
- iClause->Des().Append( KCmSqlOrderByDate() );
- iClause->Des().Append( KCmSqlAsc() );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatAmountL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatAmountL( CCmFillRule& aRule )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatAmountL"));
-
- if( aRule.LimitType() == EPieces )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLimit().Length() + KCmRuleAmountSize );
- iClause->Des().Append( KCmSqlLimit() );
- iClause->Des().AppendNum( aRule.Amount() );
- }
- else if( aRule.LimitType() == EMbits )
- {
- // If amount is wanted in MBytes, no possibility to
- // LIMIT result set in this phase
- }
- else
- {
- // Unlimited rule
- // Fill quota is used as a maximun amount
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatMetadataColumnL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatMetadataColumnL( TCmMetadataField aField,
- TCmMediaType aMediaType )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL"));
-
- if( iFreeText )
- {
- delete iFreeText; iFreeText = NULL;
- }
- TRACE(Print(_L("[SQL wrapper]\t Formating data field = %d"),
- (TInt) aField ));
-
- switch( aField )
- {
- case ECmArtist:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectArtistById().Length() );
- iClause->Des().Append( KCmSqlSelectArtistById() );
- break;
- }
- case ECmAlbum:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectAlbumById().Length() );
- iClause->Des().Append( KCmSqlSelectAlbumById() );
- break;
- }
- case ECmGenre:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectGenreById().Length() );
- iClause->Des().Append( KCmSqlSelectGenreById() );
- break;
- }
- case ECmDuration:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectDuration().Length() );
- iClause->Des().Append( KCmSqlSelectDuration() );
- break;
- }
- case ECmTitle:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectTitle().Length() );
- iClause->Des().Append( KCmSqlSelectTitle() );
- break;
- }
- case ECmUpnpClass:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectUpnpclassById().Length() );
- iClause->Des().Append( KCmSqlSelectUpnpclassById );
- break;
- }
- case ECmContentURI:
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL \
- aField = ECmContentURI"));
- break;
- }
- case ECmFileSize:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectSize().Length() );
- iClause->Des().Append( KCmSqlSelectSize() );
- break;
- }
- case ECmBitrate:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectBitrate().Length() );
- iClause->Des().Append( KCmSqlSelectBitrate );
- break;
- }
- case ECmResolution:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectResolutionById().Length() );
- iClause->Des().Append( KCmSqlSelectResolutionById );
- break;
- }
- case ECmDate:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSelectDate().Length() );
- iClause->Des().Append( KCmSqlSelectDate );
- break;
- }
- case ECmFreeText:
- {
- switch( aMediaType )
- {
- case ECmAudio:
- {
- // Title, Artist or album field contains specified field
- iFreeText = KCmSqlFreeTextSelectAudio().AllocL();
- break;
- }
- case ECmImage:
- case ECmVideo:
- {
- // Title contains specified field
- iFreeText = KCmSqlFreeTextSelectImageOrVideo().AllocL();
- break;
- }
- default:
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::\
- FormatMetadataColumnL mediatype not found"));
- break;
- }
- }
- break;
- }
- default:
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatMetadataColumnL \
- field not found"));
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatOperatorL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatOperatorL( TCmMetadataField aMetadataColum,
- TCmOperatorType aOper )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatOperatorL"));
-
- switch( aOper )
- {
- case ECmEquals:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlEqual().Length() + KCmSqlAppendString().Length() );
- iClause->Des().Append( KCmSqlEqual() );
- iClause->Des().Append( KCmSqlAppendInteger() );
- break;
- }
- // Greater and smaller operator are always integer operators
- case ECmGreater:
- {
- if( aMetadataColum != ECmDate && aMetadataColum != ECmFileSize &&
- aMetadataColum != ECmDuration )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlGreater().Length() +
- KCmSqlAppendInteger().Length() );
- iClause->Des().Append( KCmSqlGreater() );
- iClause->Des().Append( KCmSqlAppendInteger() );
- }
- else
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlGreater().Length() + KCmSqlAppendLong().Length() );
- iClause->Des().Append( KCmSqlGreater() );
- }
- break;
- }
- case ECmSmaller:
- {
- if( aMetadataColum != ECmDate && aMetadataColum != ECmFileSize &&
- aMetadataColum != ECmDuration )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSmaller().Length() +
- KCmSqlAppendInteger().Length() );
- iClause->Des().Append( KCmSqlSmaller() );
- iClause->Des().Append( KCmSqlAppendInteger() );
- }
- else
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlSmaller().Length() + KCmSqlAppendLong().Length() );
- iClause->Des().Append( KCmSqlSmaller() );
- }
- break;
- }
- case ECmConsistOf:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLike().Length() + KCmSqlConsistOf().Length() );
- iClause->Des().Append( KCmSqlLike() );
- iClause->Des().Append( KCmSqlConsistOf() );
- break;
- }
- case ECmBeginsWith:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLike().Length() + KCmSqlBeginsWith().Length() );
- iClause->Des().Append( KCmSqlLike() );
- iClause->Des().Append( KCmSqlBeginsWith() );
- break;
- }
- case ECmEndsWith:
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLike().Length() + KCmSqlEndsWith().Length() );
- iClause->Des().Append( KCmSqlLike() );
- iClause->Des().Append( KCmSqlEndsWith() );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatProperyQueryL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatProperyQueryL( TCmMetadataField aField,
- TCmMediaType aMedia )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatProperyQueryL"));
-
- if( iClause )
- {
- delete iClause;
- iClause = NULL;
- }
-
- switch( aField )
- {
- case ECmArtist:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlArtist().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlArtist );
- break;
- }
- case ECmAlbum:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlAlbum().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlAlbum );
- break;
- }
- case ECmGenre:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlGenre().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlGenre );
- break;
- }
- case ECmUpnpClass:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlUpnpclass().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlUpnpclass );
- break;
- }
- case ECmTitle:
- {
- iClause = HBufC8::NewL( KCmSqlSelectTitleAndId().Length() +
- sizeof( aMedia ) );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectTitleAndId, aMedia );
- break;
- }
- case ECmResolution:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlResolutions().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlResolutions );
- break;
- }
- case ECmProfileId:
- {
- iClause = HBufC8::NewL( KCmSqlSelectPropertyValues().Length() +
- KCmSqlResolutions().Length() );
- TPtr8 ptr( iClause->Des() );
- ptr.Format( KCmSqlSelectPropertyValues, &KCmSqlUpnpProfiles );
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatProfileFiltersL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatProfileFiltersL( )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatProfileFiltersL"));
-
- if( iProfileFilters.Count() )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlAnd().Length() );
- iClause->Des().Append( KCmSqlAnd() );
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlLeftBracket() );
- }
- for( TInt k = 0; k < iProfileFilters.Count(); k++ )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlLeftBracket().Length() );
- iClause->Des().Append( KCmSqlLeftBracket() );
-
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlFilterUpnpProfileId().Length() +
- sizeof( iProfileFilters[k] ) );
- iClause->Des().Append( KCmSqlFilterUpnpProfileId );
- iClause->Des().AppendNum( iProfileFilters[k] );
-
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- if( k < iProfileFilters.Count() - 1 )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlAnd().Length() );
- iClause->Des().Append( KCmSqlAnd() );
- }
- }
- if( iProfileFilters.Count() )
- {
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- }
- iClause = iClause->ReAllocL( iClause->Length() +
- KCmSqlRightBracket().Length() );
- iClause->Des().Append( KCmSqlRightBracket() );
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::FormatPropertyFilterL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::FormatPropertyFilterL(
- CCmSqlPropertyCollector& aPropertys )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::FormatPropertyFilterL"));
-
- CCmSqlPropertyContainer* container = NULL;
- HBufC8* temp = NULL;
- for( TInt i = 0; i < aPropertys.PropertyContainerCount(); i++ )
- {
- container = aPropertys.PropertyContainer( i );
- switch( container->Type() )
- {
- case ECmTitle:
- {
- AddPropertyFilterL( *container,
- KCmSqlSelectTitle(), temp );
- break;
- }
- case ECmArtist:
- {
- AddPropertyFilterL( *container,
- KCmSqlSelectArtistById(), temp );
- break;
- }
- case ECmAlbum:
- {
- AddPropertyFilterL( *container,
- KCmSqlSelectAlbumById(), temp );
- break;
- }
- case ECmGenre:
- {
- AddPropertyFilterL( *container,
- KCmSqlSelectGenreById(), temp );
- break;
- }
- default:
- {
- break;
- }
- }
- container = NULL;
- }
-
- if( temp )
- {
- iClause = iClause->ReAllocL( iClause->Length() + temp->Length() );
- iClause->Des().Append( *temp );
- delete temp;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmSqlDbClause::AddPropertyFilterL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::AddPropertyFilterL(
- CCmSqlPropertyContainer& aContainer, const TDesC8& aField,
- HBufC8*& aClause )
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::AddPropertyFilterL"));
-
- if( aClause && aContainer.PropertyItemCount() )
- {
- aClause = aClause->ReAllocL( aClause->Length() +
- KCmSqlAnd().Length() + ( 2 * KCmSqlSpace().Length() ) );
- aClause->Des().Append( KCmSqlSpace() );
- aClause->Des().Append( KCmSqlAnd() );
- aClause->Des().Append( KCmSqlSpace() );
- }
- if( aContainer.PropertyItemCount() && !aClause )
- {
- aClause = KCmSqlAnd().AllocL();
- }
- if( aContainer.PropertyItemCount() && aClause )
- {
- aClause = aClause->ReAllocL( aClause->Length() +
- KCmSqlLeftBracket().Length() );
- aClause->Des().Append( KCmSqlLeftBracket );
-
- for( TInt j = 0; j < aContainer.PropertyItemCount() ; j++ )
- {
- aClause = aClause->ReAllocL( aClause->Length() +
- KCmSqlSelectTitle().Length() +
- sizeof( aContainer.PropertyItem( j )->Id() ) );
- aClause->Des().Append( aField );
- aClause->Des().AppendNum(
- aContainer.PropertyItem( j )->Id() );
- if( j < aContainer.PropertyItemCount() - 1 )
- {
- aClause = aClause->ReAllocL( aClause->Length() +
- KCmSqlOr().Length() + ( 2 * KCmSqlSpace().Length() ) );
- aClause->Des().Append( KCmSqlSpace() );
- aClause->Des().Append( KCmSqlOr() );
- aClause->Des().Append( KCmSqlSpace() );
- }
- }
-
- aClause = aClause->ReAllocL( aClause->Length() +
- KCmSqlRightBracket().Length() );
- aClause->Des().Append( KCmSqlRightBracket );
-
- for( TInt k = 0; k < aContainer.PropertyItemCount() ; k++ )
- {
- aContainer.DeletePropertyItem( k );
- k--;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-CCmSqlDbClause::CCmSqlDbClause()
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::CCmSqlDbClause"));
- }
-
-// ---------------------------------------------------------------------------
-// ConstructL
-// ---------------------------------------------------------------------------
-//
-void CCmSqlDbClause::ConstructL()
- {
- LOG(_L("[SQL Wrapper]\t CCmSqlDbClause::ConstructL"));
- }
-
-// End of file
-