Many of the components were not compilingm,because bld.inf had undefined flag #ifdef RD_CUSTOMIZABLE_AI. All the flags removed now. Components do not compile right away. E.g. many icons are missing and need to be copied from Symbian3. See example from MCSPlugin. Shortcut plugin does not need to be compiled as MCSPlugin replaces it.
/*
* 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: Represent string pool for dom strings
*
*/
// INCLUDE FILES
#include "hspsdomstringpool.h"
// ============================ LOCAL FUNCTIONS ================================
// -----------------------------------------------------------------------------
// Adds string to string pool. If string doesn't appear yet, it is added to
// the string pool and index to pool is returned.
// @param aString String to add
// @param aArray A pool which holds strings
// @return Index to string pool
// -----------------------------------------------------------------------------
//
LOCAL_C TInt AddToStringPoolL( const TDesC8& aString, RPointerArray<HBufC8>& aArray )
{
TBool found( EFalse );
TInt index( 0 );
TInt count( aArray.Count() );
for (; index < count && !found; )
{
if ( aArray[ index ]->Des().Compare( aString ) == 0 )
{
found = ETrue;
}
else
{
index++;
}
}
if ( !found )
{
HBufC8* tmp = aString.AllocLC();
aArray.AppendL( tmp );
CleanupStack::Pop( tmp );
index = aArray.Count()-1; //Last item
}
return index;
}
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// ChspsDomStringPool::ChspsDomStringPool
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
ChspsDomStringPool::ChspsDomStringPool()
{
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void ChspsDomStringPool::ConstructL()
{
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
ChspsDomStringPool* ChspsDomStringPool::NewL()
{
ChspsDomStringPool* self = new( ELeave ) ChspsDomStringPool;
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop(self);
return self;
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::NewL
// Two-phased stream constructor.
// -----------------------------------------------------------------------------
//
ChspsDomStringPool* ChspsDomStringPool::NewL( RReadStream& aStream )
{
ChspsDomStringPool* self = new( ELeave ) ChspsDomStringPool;
CleanupStack::PushL( self );
aStream >> *self;
CleanupStack::Pop(self);
return self;
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::~ChspsDomStringPool
// Destructor
// -----------------------------------------------------------------------------
//
ChspsDomStringPool::~ChspsDomStringPool()
{
iStringPool.ResetAndDestroy();
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::CloneL
// -----------------------------------------------------------------------------
//
ChspsDomStringPool* ChspsDomStringPool::CloneL()
{
ChspsDomStringPool* clone = ChspsDomStringPool::NewL();
CleanupStack::PushL( clone );
TInt count( iStringPool.Count() );
for ( TInt i=0; i<count; i++ )
{
HBufC8* tmp = iStringPool[i]->Des().AllocLC();
clone->iStringPool.AppendL( tmp );
CleanupStack::Pop( tmp );
}
CleanupStack::Pop( clone );
return clone;
}
// -----------------------------------------------------------------------------
// ChspsDomNode::AddStringL
// -----------------------------------------------------------------------------
//
EXPORT_C TInt ChspsDomStringPool::AddStringL( const TDesC8& aString )
{
return AddToStringPoolL( aString, iStringPool );
}
// -----------------------------------------------------------------------------
// ChspsDomNode::String
// -----------------------------------------------------------------------------
//
const TDesC8& ChspsDomStringPool::String( const TInt aStringRef )
{
if ( aStringRef < iStringPool.Count() )
return (*iStringPool[ aStringRef ]);
else
return KNullDesC8;
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::Size
// -----------------------------------------------------------------------------
//
TInt ChspsDomStringPool::Size() const
{
TInt size( 0 );
TInt count( iStringPool.Count() );
for ( TInt i=0; i<count; i++ )
{
size += sizeof(TInt16); //Length
size++; //HBufC control mark
size++; //HBufC control mark
size += iStringPool[i]->Size(); //Buffer sixe in bytes
}
return size;
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::ExternalizeL
// -----------------------------------------------------------------------------
//
void ChspsDomStringPool::ExternalizeL( RWriteStream& aStream ) const
{
TInt count( iStringPool.Count() );
aStream.WriteInt16L( count );
for ( TInt i=0; i<count; i++ )
{
aStream.WriteInt16L( iStringPool[i]->Length() );
aStream << *iStringPool[i];
}
}
// -----------------------------------------------------------------------------
// ChspsDomStringPool::InternalizeL
// -----------------------------------------------------------------------------
//
void ChspsDomStringPool::InternalizeL( RReadStream& aStream )
{
TInt len(0);
TInt16 count ( aStream.ReadInt16L() );
for ( TInt i=0; i<count; i++ )
{
len = aStream.ReadInt16L();
HBufC8* tmp = HBufC8::NewLC( aStream, len );
iStringPool.AppendL( tmp );
CleanupStack::Pop( tmp );
}
}
// End of File