xdmprotocols/XcapProtocol/XcapCache/Server/src/XcapCacheIndexTableEntry.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:23:14 +0100
branchRCL_3
changeset 35 fbd2e7cec7ef
parent 0 c8caa15ef882
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201027 Kit: 201035

/*
* Copyright (c) 2005 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: CXcapCacheIndexTableEntry  
*
*/




// INCLUDE FILES
#include "ServerDefines.h"
#include "XcapCacheServer.h"
#include "XcapCacheIndexTableEntry.h"

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::CXcapCacheIndexTableEntry
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry::CXcapCacheIndexTableEntry() : iEntryIndex( KErrNotFound ) 
    {
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::CXcapCacheIndexTableEntry
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry::CXcapCacheIndexTableEntry( const TInt aEntryIndex ) :
                                                      iEntryIndex( aEntryIndex ) 
    {
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::NewL
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry* CXcapCacheIndexTableEntry::NewL( const TInt aEntryIndex,
                                                            const TDesC8& aRootUri,
                                                            const TDesC& aDocumentUri )
    {
    CXcapCacheIndexTableEntry* self = new( ELeave ) CXcapCacheIndexTableEntry( aEntryIndex );
    CleanupStack::PushL( self );
    self->ConstructL( aRootUri, aDocumentUri );
    CleanupStack::Pop();
    return self;
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::NewL
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry* CXcapCacheIndexTableEntry::NewL( const TInt aEntryIndex,
                                                            const TDesC8& aRootUri,
                                                            const TDesC8& aDocumentUri )
    {
    CXcapCacheIndexTableEntry* self = new( ELeave ) CXcapCacheIndexTableEntry( aEntryIndex );
    CleanupStack::PushL( self );
    self->ConstructL( aRootUri, aDocumentUri );
    CleanupStack::Pop();
    return self;
    }
    
// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::NewL
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry* CXcapCacheIndexTableEntry::NewL( const TDesC8& aRootUri,
                                                            const TDesC& aDocumentUri )
    {
    CXcapCacheIndexTableEntry* self = new( ELeave ) CXcapCacheIndexTableEntry();
    CleanupStack::PushL( self );
    self->ConstructL( aRootUri, aDocumentUri );
    CleanupStack::Pop();
    return self;
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::~CXcapCacheIndexTableEntry
// 
// ----------------------------------------------------------
//
CXcapCacheIndexTableEntry::~CXcapCacheIndexTableEntry()
    {
    delete iRootUri;
    delete iDocumentUri;
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::ConstructL
// 
// ----------------------------------------------------------
//
void CXcapCacheIndexTableEntry::ConstructL( const TDesC8& aRootUri,
                                            const TDesC& aDocumentUri )
    {
    #ifdef _DEBUG
        HBufC8* eightBuffer = HBufC8::NewLC( aDocumentUri.Length() );
        TPtr8 desc( eightBuffer->Des() );
        desc.Copy( aDocumentUri );
        CXcapCacheServer::WriteToLog( _L8( "CXcapCacheIndexTableEntry::ConstructL" ) );
        CXcapCacheServer::WriteToLog( _L8( "  Root:     %S" ), &aRootUri );
        CXcapCacheServer::WriteToLog( _L8( "  Document: %S" ), &desc );
        CleanupStack::PopAndDestroy();  //eightBuffer
    #endif
    iRootUri = aRootUri.AllocL();
    iDocumentUri = HBufC8::NewL( aDocumentUri.Length() );
    iDocumentUri->Des().Copy( aDocumentUri );
    }

// ----------------------------------------------------------
// CXcapCacheIndexTableEntry::ConstructL
// 
// ----------------------------------------------------------
//
void CXcapCacheIndexTableEntry::ConstructL( const TDesC8& aRootUri,
                                            const TDesC8& aDocumentUri )
    {
    #ifdef _DEBUG
        HBufC8* eightBuffer = HBufC8::NewLC( aDocumentUri.Length() );
        TPtr8 desc( eightBuffer->Des() );
        desc.Copy( aDocumentUri );
        CXcapCacheServer::WriteToLog( _L8( "CXcapCacheIndexTableEntry::ConstructL" ) );
        CXcapCacheServer::WriteToLog( _L8( "  Root:     %S" ), &aRootUri );
        CXcapCacheServer::WriteToLog( _L8( "  Document: %S" ), &desc );
        CleanupStack::PopAndDestroy();  //eightBuffer
    #endif
    iRootUri = aRootUri.AllocL();
    iDocumentUri = HBufC8::NewL( aDocumentUri.Length() );
    iDocumentUri->Des().Copy( aDocumentUri );
    }
    
// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::EntryData
// 
// ---------------------------------------------------------
//  
TPtrC8 CXcapCacheIndexTableEntry::RootUri() const
  {
  return iRootUri != NULL ? iRootUri->Des() : TPtrC8();
  }

// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::EntryData
// 
// ---------------------------------------------------------
//  
TPtrC8 CXcapCacheIndexTableEntry::DocumentUri() const
  {
  return iDocumentUri != NULL ? iDocumentUri->Des() : TPtrC8();
  }

// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::EntryData
// 
// ---------------------------------------------------------
//  
void CXcapCacheIndexTableEntry::Increase()
  {
  iEntryIndex++;
  }
  
// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::EntryData
// 
// ---------------------------------------------------------
//  
void CXcapCacheIndexTableEntry::Decrease()
  {
  iEntryIndex--;
  }
  
// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::operator++
// 
// ---------------------------------------------------------
//  
TBool CXcapCacheIndexTableEntry::operator==( const CXcapCacheIndexTableEntry& aEntry ) const
    {
    return ( iRootUri != NULL && iDocumentUri != NULL ) &&
           ( iRootUri->Des().CompareF( aEntry.RootUri() ) == 0  ) &&
           ( iDocumentUri->Des().CompareF( aEntry.DocumentUri() ) == 0 );
    }

// ---------------------------------------------------------
// CXcapCacheIndexTableEntry::operator++
// 
// ---------------------------------------------------------
//  
TInt CXcapCacheIndexTableEntry::Index() const
    {
    return iEntryIndex;
    }