phonebookengines_old/contactsmodel/inc/CNTFLDST.H
changeset 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/inc/CNTFLDST.H	Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,191 @@
+// Copyright (c) 1997-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:
+//
+
+#if !defined(__CNTFLDST_H__)
+#define __CNTFLDST_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__BAMDESCA_H__)
+#include <bamdesca.h>
+#endif
+
+#if !defined(__S32STD_H__)
+#include <s32std.h>
+#endif
+
+#if !defined(__CNTDEF_H__)
+#include <cntdef.h>
+#endif
+#define KTextStreamSeparator 0x00
+
+
+
+class CStreamStore;
+
+class CContactFieldStorage : public CBase
+/** Abstract base class for the different types of contact field data storage. 
+
+CContactTextField, CContactStoreField, CContactAgentField, CContactDateField 
+and CContactNumberField are all derived from this class.
+
+A pointer to the base class can be obtained by calling CContactItemField::Storage(). 
+Pointers to the derived classes can be retrieved by calling CContactItemField::TextStorage(), 
+CContactItemField::StoreStorage() etc. 
+@publishedAll
+@released
+*/
+	{
+public:
+	/** Internalises the field data.
+	
+	@param aStream Stream from which the the contents of the field should be internalised. */
+    virtual void InternalizeL( RReadStream& aStream)=0;
+	/** Externalises the field data.
+	
+	@param aStream Write stream to which the contents of the field should be externalised. */
+    virtual void ExternalizeL(RWriteStream& aStream) const=0;
+	/** Stores the field data.
+	
+	@param aStore Reference to the stream store to which the field data is written.
+	@return The ID of the stream store. */
+	virtual TStreamId StoreL(CStreamStore& aStore) const=0;
+	/** Restores the field data.
+	
+	@param aStore Reference to the store from which the object is to be restored.
+	@param aStream Reference to the stream which should be passed to InternalizeL(). */
+	virtual void RestoreL(CStreamStore& aStore,RReadStream& aStream)=0;
+	/** Tests whether the field storage contains data.
+	
+	@return True if the field storage contains data, false if not. */
+	virtual TBool IsFull() const=0;
+private:
+	IMPORT_C virtual void CContactFieldStorage_Reserved1();
+	TAny* CContactFieldStorage_Reserved;
+	};
+
+class CContactTextField : public CContactFieldStorage
+/** Provides access to the text stored in a contact item field. 
+
+An object of this class can be retrieved using CContactItemField::TextStorage(). 
+@publishedAll
+@released
+*/
+	{
+public:
+	IMPORT_C ~CContactTextField();
+public: 
+	void InternalizeL(HBufC *aTextStream,TInt aTextFieldIndex);
+	void InternalizeL(RReadStream& aStream);
+	void ExternalizeL(RWriteStream& aStream) const;
+    void ExternalizeL(RWriteStream& aStream,TBool aIsInlineBlob,TInt aTextFieldIndex) const;
+	TStreamId StoreL(CStreamStore& aStore) const;
+	void RestoreL(CStreamStore& aStore,RReadStream& aStream);
+	IMPORT_C void SetTextL(const TDesC& aText);
+	IMPORT_C void SetText(HBufC *aHbuf);
+	IMPORT_C void SetTextArray(MDesCArray* anArray);
+	IMPORT_C TPtrC Text() const;
+	TBool IsFull() const;
+	IMPORT_C TPtrC StandardTextLC() const;
+	IMPORT_C void SetStandardTextL(const TDesC& aText);
+	IMPORT_C void SetStandardTextArray(MDesCArray* anArray);
+private:
+	HBufC *EncodeL(const TDesC& aText,TUid aConversion) const;
+	IMPORT_C /*virtual*/ void CContactFieldStorage_Reserved1();
+private:
+	HBufC* iText;
+	};
+
+class CContactStoreField : public CContactFieldStorage
+/** Provides access to the binary field data stored in an 8-bit descriptor. 
+
+An object of this class can be retrieved using CContactItemField::StoreStorage(). 
+@publishedAll
+@released
+*/
+	{
+public:
+	~CContactStoreField();
+	TStreamId StoreL(CStreamStore& aStore) const;
+	void RestoreL(CStreamStore& aStore,RReadStream& aStream);
+	IMPORT_C void SetThingL(const TDesC8& aDes);
+	IMPORT_C void SetThingL(const HBufC8& aDes);
+	IMPORT_C void SetThingL(const CBufBase* aBuf);
+	IMPORT_C HBufC8* Thing() const; 
+	void InternalizeL(RReadStream& aStream);
+    void ExternalizeL(RWriteStream& aStream) const;
+	TBool IsFull() const;
+private:
+	IMPORT_C /*virtual*/ void CContactFieldStorage_Reserved1();
+private:
+	HBufC8* iThing;
+	};
+
+class CContactAgentField : public CContactFieldStorage
+/** Provides access to an agent ID. 
+
+An agent is a field in a contact item which contains another person's 
+contact details. It corresponds to the agent property in the vCard 
+specification (version 2.1). The agent is identified by an agent ID 
+(a TContactItemId).
+
+An object of this class can be retrieved using CContactItemField::AgentStorage(). 
+@publishedAll
+@released
+*/
+	{
+public:
+	TStreamId StoreL(CStreamStore& aStore) const;
+	void RestoreL(CStreamStore& aStore,RReadStream& aStream);
+	IMPORT_C void SetAgentId(TContactItemId aId);
+	IMPORT_C TContactItemId Value() const;
+	void InternalizeL( RReadStream& aStream);
+    void ExternalizeL(RWriteStream& aStream) const;
+	TBool IsFull() const;
+private:
+	IMPORT_C /*virtual*/ void CContactFieldStorage_Reserved1();
+private:
+	TContactItemId iAgentId;
+	};
+
+class CContactDateField : public CContactFieldStorage
+/** Provides access to the date/time value stored in a contact item field. 
+
+An object of this class can be retrieved using CContactItemField::DateTimeStorage(). 
+@publishedAll
+@released
+*/
+	{
+public:
+	CContactDateField();
+	TStreamId StoreL(CStreamStore& aStore) const;
+	void RestoreL(CStreamStore& aStore,RReadStream& aStream);
+	IMPORT_C void SetTime(TTime aTime);
+	IMPORT_C void SetTime(TDateTime aDateTime);
+	IMPORT_C TTime Time() const;
+	void InternalizeL( RReadStream& aStream);
+    void ExternalizeL(RWriteStream& aStream) const;
+	TBool IsFull() const;
+private:
+	IMPORT_C /*virtual*/ void CContactFieldStorage_Reserved1();
+private:
+	TTime iTime;
+	};
+
+
+
+#endif