contentstorage/cautils/src/cainnerquery.cpp
changeset 88 7f0462e8c3da
parent 86 e492551a0d54
child 89 1e87eb3b400f
--- a/contentstorage/cautils/src/cainnerquery.cpp	Tue Mar 23 23:42:03 2010 +0200
+++ b/contentstorage/cautils/src/cainnerquery.cpp	Tue Mar 23 23:55:55 2010 +0200
@@ -30,6 +30,7 @@
     {
     delete iEntryTypeNames;
     iIds.Close();
+    iAttributes.ResetAndDestroy();
     }
 
 // ---------------------------------------------------------------------------
@@ -81,6 +82,8 @@
         aStream.WriteL( iEntryTypeNames->MdcaPoint( i ),
                 iEntryTypeNames->MdcaPoint( i ).Length() );
         }
+    iAttributes.ExternalizeL( aStream );
+    aStream.CommitL();
     }
 
 // ---------------------------------------------------------------------------
@@ -114,6 +117,7 @@
         iEntryTypeNames->AppendL( buf );
         CleanupStack::PopAndDestroy( &buf );
         }
+    iAttributes.InternalizeL( aStream );
     }
 
 // ---------------------------------------------------------------------------
@@ -302,3 +306,30 @@
     {
     return iCount;
     }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CCaInnerQuery::AddAttributeL( const TDesC& aKey,
+        const TDesC& aValue )
+    {
+    // to avoid duplicated attribute
+    if( iAttributes.Exist( aKey ) )
+        {
+        iAttributes.RemoveAttribute( aKey );
+        }
+    CCaEntryAttribute* attr = CCaEntryAttribute::NewLC( aKey );
+    attr->SetValueL( aValue );
+    iAttributes.AppendL( attr );
+    CleanupStack::Pop( attr );
+    }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const RCaEntryAttrArray& CCaInnerQuery::GetAttributes() const
+    {
+    return iAttributes;
+    }