xdmprotocols/XcapProtocol/XcapCache/Server/src/XcapCacheIndexTableEntry.cpp
branchRCL_3
changeset 18 fbd2e7cec7ef
parent 0 c8caa15ef882
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XcapProtocol/XcapCache/Server/src/XcapCacheIndexTableEntry.cpp	Wed Sep 01 12:23:14 2010 +0100
@@ -0,0 +1,210 @@
+/*
+* 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;
+    }
+
+
+