--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/testexecfw/tef/utils/inc/datadictionary.h Mon Mar 08 15:03:44 2010 +0800
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2005-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:
+* @file
+* This contains DataDictionary.h
+*
+*/
+
+
+
+#ifndef __DATA_DICTIONARY_H__
+#define __DATA_DICTIONARY_H__
+
+#include <e32base.h>
+#include <e32hashtab.h>
+
+/**
+ * Data dictionary maximum name size
+ */
+const TInt KMaxDataDictionaryNameSize = 256;
+
+/**
+ * Defines a modifiable buffer descriptor to contain the name of an entry in the dictionary
+ */
+typedef TBuf<KMaxDataDictionaryNameSize> TDataDictionaryName;
+
+class CDataWrapper;
+
+class CDataDictionary : public CBase
+/**
+ * @internalAll
+ * @test
+ *
+ * @see CBase
+ *
+ * This dictionary associates a name with a data wrapper object.
+ * Maintenance of the dictionary is perfomed by the methods AddDataL and DeleteDataL.
+ */
+ {
+private:
+ /**
+ * @internalAll
+ * @test
+ *
+ * Data dictionary storage area
+ */
+ typedef RHashMap<TDataDictionaryName, CDataWrapper*> RDataStore;
+ typedef THashMapIter<TDataDictionaryName, CDataWrapper*> TDataIter;
+
+public:
+ CDataDictionary();
+ virtual ~CDataDictionary();
+
+ void AddDataL(const TDataDictionaryName& aName, CDataWrapper* aData);
+ void DeleteDataL(const TDataDictionaryName& aName);
+ void SetCurrentDataL(const TDataDictionaryName& aName);
+ CDataWrapper* GetDataL(const TDataDictionaryName& aName);
+ TAny* CurrentObject();
+ TAny* GetObjectL(const TDesC& aName);
+ void SetObjectL(const TDataDictionaryName& aName, TAny* aObject);
+ void Empty();
+ TInt Outstanding(const TDesC& aName, TBool& aMoreToDo);
+
+private:
+ static TUint32 Hash(const TDataDictionaryName& aName);
+ static TBool Identity(const TDataDictionaryName& aName1, const TDataDictionaryName& aName2);
+
+private:
+ RDataStore iStore;
+ CDataWrapper* iCurrentObject;
+ };
+
+#endif // __DATA_DICTIONARY_H__