harvester/common/inc/harvestdata.inl
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Feb 2010 23:14:48 +0200
branchRCL_3
changeset 8 6752808b2036
parent 0 c53acadfccc6
child 40 910a23996aa0
permissions -rw-r--r--
Revision: 201003 Kit: 201007

/*
* Copyright (c) 2007-2009 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:  Harvester image plugin data transfer objects
*
*/





// ---------------------------------------------------------------------------
// Constructor for CLocationData.
// ---------------------------------------------------------------------------
//
CLocationData::CLocationData( TReal64 aGpsLatitude, TReal64 aGpsLongitude,
    TReal64 aGpsAltitude, TBool aGpsLaLExists, TBool aGpsAExists )
    : iGpsLatitude(aGpsLatitude), iGpsLongitude(aGpsLongitude), iGpsAltitude(aGpsAltitude)
    , iGpsLatAndLongExists(aGpsLaLExists), iGpsAltitudeExists(aGpsAExists)
    {
    // initializers are enough
    }

// ---------------------------------------------------------------------------
// NewL
// ---------------------------------------------------------------------------
//
CLocationData* CLocationData::NewL( TReal64 aGpsLatitude, TReal64 aGpsLongitude,
    TReal64 aGpsAltitude, TBool aGpsLaLExists, TBool aGpsAExists )
    {
    CLocationData* self = new (ELeave) CLocationData( aGpsLatitude,
        aGpsLongitude, aGpsAltitude, aGpsLaLExists, aGpsAExists );
    return self;
    }

// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
//
CObjectDataArray::CObjectDataArray()
    {
    // no implementation required
    }

// ---------------------------------------------------------------------------
// Destructor for CObjectDataArray.
// ---------------------------------------------------------------------------
//
CObjectDataArray::~CObjectDataArray()
    {
    ResetAndDestroy();
    Close();
    }

// CObjectDataArray

// ---------------------------------------------------------------------------
// NewL
// ---------------------------------------------------------------------------
//
CObjectDataArray* CObjectDataArray::NewL()
    {
    CObjectDataArray* self = new (ELeave) CObjectDataArray();
    return self;
    }

// ---------------------------------------------------------------------------
// Appends a new entry to a CObjectDataArray.
// ---------------------------------------------------------------------------
//
void CObjectDataArray::Append( CMdEObject* aMdeObject, CLocationData* aLocationData, CMdEQuery* aQuery )
    {
    iMdeObjectArray.Append( aMdeObject );
    iLocationArray.Append( aLocationData );
    iQueryArray.Append( aQuery );
    }

// ---------------------------------------------------------------------------
// Removes an entry from the array.
// ---------------------------------------------------------------------------
//
void CObjectDataArray::Remove( TInt aIndex )
    {
    if ( aIndex < 0 || aIndex >= iMdeObjectArray.Count() )
        {
        return;
        }
    delete iMdeObjectArray[aIndex];
    delete iLocationArray[aIndex];
    delete iQueryArray[aIndex];
    iMdeObjectArray.Remove( aIndex );
    iLocationArray.Remove( aIndex );
    iQueryArray.Remove( aIndex );
    
    if( iMdeObjectArray.Count() == 0 )
        {
        iMdeObjectArray.Compress();
        }

    if( iLocationArray.Count() == 0 )
        {
        iLocationArray.Compress();
        }

    if( iQueryArray.Count() == 0 )
        {
        iQueryArray.Compress();
        }    
    }

// ---------------------------------------------------------------------------
// Returns the count of objects in the array.
// ---------------------------------------------------------------------------
//
TInt CObjectDataArray::Count()
    {
    return iMdeObjectArray.Count();
    }

// ---------------------------------------------------------------------------
// ResetAndDestroy()
// ---------------------------------------------------------------------------
//
void CObjectDataArray::ResetAndDestroy()
    {
    iMdeObjectArray.ResetAndDestroy();
    iLocationArray.ResetAndDestroy();
    iQueryArray.ResetAndDestroy();
    }

// ---------------------------------------------------------------------------
// Close()
// ---------------------------------------------------------------------------
//
void CObjectDataArray::Close()
    {
    iMdeObjectArray.Close();
    iLocationArray.Close();
    iQueryArray.Close();
    }

// ---------------------------------------------------------------------------
// ObjectL()
// ---------------------------------------------------------------------------
//
CMdEObject* CObjectDataArray::ObjectL( const TInt aIndex ) 
    {
    if ( aIndex < 0 || aIndex >= iMdeObjectArray.Count() )
        {
        User::Leave( KErrArgument );
        }
    return iMdeObjectArray[aIndex];
    }

// ---------------------------------------------------------------------------
// LocationDataL
// ---------------------------------------------------------------------------
//
CLocationData* CObjectDataArray::LocationDataL( const TInt aIndex )
    {
    if ( aIndex < 0 || aIndex >= iLocationArray.Count() )
        {
        User::Leave( KErrArgument );
        }
    return iLocationArray[aIndex];
    }

// ---------------------------------------------------------------------------
// QueryL
// ---------------------------------------------------------------------------
//
CMdEQuery* CObjectDataArray::QueryL( const TInt aIndex )
    {
    if ( aIndex < 0 || aIndex >= iQueryArray.Count() )
        {
        User::Leave( KErrArgument );
        }
    return iQueryArray[aIndex];
    }

// ---------------------------------------------------------------------------
// SetQuery
// ---------------------------------------------------------------------------
//
void CObjectDataArray::SetQuery( const TInt aIndex, CMdEQuery* aQuery )
    {
    if ( aIndex < 0 || aIndex >= iQueryArray.Count() )
        {
        return;
        }
    iQueryArray[aIndex] = aQuery;
    }

// ---------------------------------------------------------------------------
// MdeObjectArray
// ---------------------------------------------------------------------------
//
RPointerArray<CMdEObject>& CObjectDataArray::MdeObjectArray()
    {
    return iMdeObjectArray;
    }


// CFileData

// ---------------------------------------------------------------------------
// NewL
// ---------------------------------------------------------------------------
//
CFileData* CFileData::NewL()
    {
    CFileData* self = new (ELeave) CFileData;
    return self;
    }

// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
//
CFileData::CFileData()
    {
    // no implementation needed
    }

// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
//
CFileData::~CFileData()
    {
    if ( iImageData )
        {
        delete iImageData;
        iImageData = NULL;
        }
    iImageDef = NULL;
    iUri = NULL;
    }

    
// CHarvestData

// ---------------------------------------------------------------------------
// NewL
// ---------------------------------------------------------------------------
//
CHarvestData* CHarvestData::NewL()
    {
    CHarvestData* self = new (ELeave) CHarvestData;
    return self;
    }

// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
//
CHarvestData::CHarvestData()
    {
    // no implementation needed
    }

// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
//
CHarvestData::~CHarvestData()
    {
    if ( iDescription16 )
        {
        delete iDescription16;
        iDescription16 = NULL;
        }
        
    if ( iComment16 )
        {
        delete iComment16;
        iComment16 = NULL;
        }
        
    if ( iCopyright16 )
        {
        delete iCopyright16;
        iCopyright16 = NULL;
        }
        
    if ( iDateModified8 )
        {
        delete iDateModified8;
        iDateModified8 = NULL;
        }
        
    if ( iDateOriginal8 )
        {
        delete iDateOriginal8;
        iDateOriginal8 = NULL;
        }
        
    if ( iDateDigitized8 )
        {
        delete iDateDigitized8;
        iDateDigitized8 = NULL;
        }
        
    if ( iMake )
        {
        delete iMake;
        iMake = NULL;
        }
        
    if ( iModel )
        {
        delete iModel;
        iModel = NULL;
        }
        
    if ( iArtist )
        {
        delete iArtist;
        iArtist = NULL;
        }
        
    if ( iRelatedSoundFile )
        {
        delete iRelatedSoundFile;
        iRelatedSoundFile = NULL;
        }
    }