upnpharvester/common/cmlibrary/src/cmfilllistitem.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:16:49 +0100
branchRCL_3
changeset 13 e0762c15653a
parent 0 7f85d04be362
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201012 Kit: 201035

/*
* Copyright (c) 2006-2007 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:      Capsulating fill file list item
*
*/






#include <e32std.h>
#include <s32mem.h>
#include "cmfilllistitem.h"
#include "msdebug.h"


// ======== LOCAL FUNCTIONS ========
// ---------------------------------------------------------------------------
// NewL
// ---------------------------------------------------------------------------
//
EXPORT_C CCmFillListItem* CCmFillListItem::NewL()
    {    
    CCmFillListItem* self = CCmFillListItem::NewLC();
    CleanupStack::Pop( self ); 
    return self;
    }
 
// ---------------------------------------------------------------------------
// NewLC
// ---------------------------------------------------------------------------
//    
EXPORT_C CCmFillListItem* CCmFillListItem::NewLC()
    {    
    CCmFillListItem* self = new ( ELeave ) CCmFillListItem();
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;  
    }    

// ---------------------------------------------------------------------------
// NewLC with parameters
// ---------------------------------------------------------------------------
// 
EXPORT_C CCmFillListItem* CCmFillListItem::NewLC( const TUint aPriority, 
    const TUint aListId, const TUint aStatus, 
    const TCmFillRuleStatus aSelected )
    {
    CCmFillListItem* self = new ( ELeave ) CCmFillListItem();
    CleanupStack::PushL( self );
    self->ConstructL( aPriority, aListId, aStatus, aSelected ); 
    return self;
    }
        
// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
//
EXPORT_C CCmFillListItem::~CCmFillListItem()
    {
    delete iUpnpClass;
    delete iUri;
    delete iItemId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetUpnpClassL
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetUpnpClassL( const TDesC& aUpnpClass )
    {
    if( &aUpnpClass )
        {
        delete iUpnpClass;
        iUpnpClass = NULL;
        iUpnpClass = aUpnpClass.AllocL();        
        }
    else
        {
        delete iUpnpClass;
        iUpnpClass = NULL;
        iUpnpClass = KNullDesC().AllocL();        
        }    
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetUriL
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetUriL( const TDesC8& aUri )
    {
    if( &aUri )
        {
        delete iUri;
        iUri = NULL;
        iUri = aUri.AllocL();         
        }
    else
        {
        delete iUri;
        iUri = NULL;
        iUri = KNullDesC8().AllocL();
        }
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetItemIdL
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetItemIdL( const TDesC8& aItemId )
    {
    if( &aItemId )
        {
        delete iItemId;
        iItemId = NULL;
        iItemId = aItemId.AllocL();         
        }
    else
        {
        delete iItemId;
        iItemId = NULL;
        iItemId = KNullDesC8().AllocL();
        }            
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetListId
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetListId( const TUint aId )
    {
    iListId = aId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetDevId
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetDevId( const TUint8 aDevId )
    {
    iDevId = aDevId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetPriority
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetPriority( const TUint8 aPriority )
    {
    iPriority = aPriority;
    }       

// ---------------------------------------------------------------------------
// CCmFillListItem::SetSelected
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetSelected( 
    TCmFillRuleStatus aSelected  )
    {
    iSelected = aSelected;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetDriveId
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::SetDriveId( const TUint aDriveId )
    {
    iDriveId = aDriveId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::SetDriveNumber
// ---------------------------------------------------------------------------
//    
EXPORT_C void CCmFillListItem::SetDriveNumber( const TInt aDriveNumber )
    {
    iDriveNumber = aDriveNumber;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::UpnpClass
// ---------------------------------------------------------------------------
//
EXPORT_C TDesC& CCmFillListItem::UpnpClass() const
    {
    return *iUpnpClass;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::Uri
// ---------------------------------------------------------------------------
//
EXPORT_C TDesC8& CCmFillListItem::Uri() const
    {
    return *iUri;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::ItemId
// ---------------------------------------------------------------------------
//
EXPORT_C TDesC8& CCmFillListItem::ItemId() const
    {
    return *iItemId;    
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::ListId
// ---------------------------------------------------------------------------
//
EXPORT_C TUint CCmFillListItem::ListId() const
    {
    return iListId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::DevId
// ---------------------------------------------------------------------------
//
EXPORT_C TUint8 CCmFillListItem::DevId() const
    {
    return iDevId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::Priority
// ---------------------------------------------------------------------------
//
EXPORT_C TUint8 CCmFillListItem::Priority() const
    {
    return iPriority;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::Selected
// ---------------------------------------------------------------------------
//
EXPORT_C TCmFillRuleStatus CCmFillListItem::Selected() const
    {
    return iSelected;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::DriveId
// ---------------------------------------------------------------------------
//
EXPORT_C TUint CCmFillListItem::DriveId() const
    {
    return iDriveId;
    }

// ---------------------------------------------------------------------------
// CCmFillListItem::DriveNumber
// ---------------------------------------------------------------------------
//
EXPORT_C TInt CCmFillListItem::DriveNumber() const
    {
    return iDriveNumber;
    }
                     
// ---------------------------------------------------------------------------
// CCmFillListItem::ExternalizeL
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::ExternalizeL( RWriteStream& aStream ) const
    {
    aStream.WriteInt32L( iUpnpClass->Length() );
    if ( iUpnpClass )
        {
        aStream << *iUpnpClass;
        }
    else
        {
        aStream << KNullDesC();
        }
    aStream.WriteInt32L( iUri->Length() );
    if ( iUri )
        {
        aStream << *iUri;
        }
    else
        {
        aStream << KNullDesC();
        }
    aStream.WriteInt32L( iItemId->Length() );
    if ( iItemId )
        {
        aStream << *iItemId;
        }
    else
        {
        aStream << KNullDesC();
        }
                
    aStream.WriteUint16L( iListId );
    aStream.WriteUint8L( iDevId );
    aStream.WriteUint8L( iPriority );
    aStream.WriteInt32L( iSelected );
    aStream.WriteUint32L( iDriveId );
    aStream.WriteInt32L( iDriveNumber );
    CCmBaseListItem::ExternalizeL(aStream);         
    }
        
// ---------------------------------------------------------------------------
// CCmFillListItem::InternalizeL
// ---------------------------------------------------------------------------
//
EXPORT_C void CCmFillListItem::InternalizeL( RReadStream& aStream )
    {
    // Content
    if ( iUpnpClass )
        {
        delete iUpnpClass;
        iUpnpClass = NULL;
        }
    TInt bufLength = aStream.ReadInt32L();    
    iUpnpClass = HBufC::NewL( aStream, bufLength ); 
    if ( iUri )
        {
        delete iUri;
        iUri = NULL;
        }
    bufLength = aStream.ReadInt32L();    
    iUri = HBufC8::NewL( aStream, bufLength );
    if ( iItemId )
        {
        delete iItemId;
        iItemId = NULL;
        }
    bufLength = aStream.ReadInt32L();    
    iItemId = HBufC8::NewL( aStream, bufLength );    
    iListId = aStream.ReadUint16L();
    iDevId = aStream.ReadUint8L();
    iPriority = aStream.ReadUint8L();
    iSelected = (TCmFillRuleStatus)aStream.ReadInt32L();
    iDriveId = aStream.ReadUint32L();
    iDriveNumber = aStream.ReadInt32L();
    CCmBaseListItem::InternalizeL(aStream);      
    }
        
// ---------------------------------------------------------------------------
// Default constructor
// ---------------------------------------------------------------------------
//    
CCmFillListItem::CCmFillListItem()
    {
    }

// ---------------------------------------------------------------------------
// ConstructL
// ---------------------------------------------------------------------------
//    
void CCmFillListItem::ConstructL()
    {
    // construct base class
    CCmBaseListItem::ConstructL();
    
    // then construct the rest
    iUpnpClass = KNullDesC().AllocL();
    iUri = KNullDesC8().AllocL();
    iItemId = KNullDesC8().AllocL();
    }
    
// ---------------------------------------------------------------------------
// ConstructL with parameters
// ---------------------------------------------------------------------------
//    
void CCmFillListItem::ConstructL( const TUint aPriority, const TUint aListId, 
    const TUint aStatus, const TCmFillRuleStatus aSelected )
    {
    // construct base class
    CCmBaseListItem::ConstructL();
    
    SetPriority( aPriority );
    SetListId( aListId );
    SetStatus( (TCmListItemStatus)aStatus );
    SetSelected( aSelected );
    iUpnpClass = KNullDesC().AllocL();
    iUri = KNullDesC8().AllocL();
    iItemId = KNullDesC8().AllocL();      
    }          

// End of file