--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IMPSengine/datautils/inc/impsfields.h Wed Sep 01 12:31:13 2010 +0100
@@ -0,0 +1,244 @@
+/*
+* Copyright (c) 2002 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:
+* Internal engine data structure for IMPS messages
+*
+*/
+
+
+
+#ifndef CImpsFields_H
+#define CImpsFields_H
+
+// INCLUDES
+#include <e32base.h>
+#include <badesca.h>
+#include "impsconst.h"
+#include "impsservercommon.h"
+#include "impscommonenums.h"
+#include "impsdata.h"
+
+// CONSTANTS
+// Maximum size for Mmessage field string value in internalize.
+const TInt KMaxHeaderStringLength = 100;
+
+// constant for TImpsPackedEntity, Notice: change always when data members change!
+// size of mem::copy for CImpsFields
+// 2*4. iPoll and iSessionType are not copied.
+const TInt KImpsPackedCopyData = 8;
+// Nbr of fields that have streamed
+const TInt KImpsPackedFieldsNbr = 4;
+
+// DATA TYPES
+// Values for recipient types
+enum TImpsRecipients
+ {
+ EImpsUser = 1,
+ EImpsGroup,
+ EImpsList,
+ EImpsScreenName
+ };
+
+// FORWARD DECLARATIONS
+class RWriteStream;
+class CImpsPresenceArray;
+class CImpsFields;
+class CImpsCapability;
+class CImpsServices;
+class CImpsGroupFields;
+
+
+/**
+* CImpsFields
+*/
+class CImpsFields : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CImpsFields* NewL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CImpsFields();
+
+ public: // New functions
+
+ /**
+ * Reset.
+ */
+ IMPORT_C void Reset( );
+
+ /**
+ * Size of the object in memory.
+ * @return object size
+ */
+ IMPORT_C TInt Size() const;
+
+ /**
+ * Set Transaction-ID
+ * @param aCid transaction ID
+ */
+ IMPORT_C void SetTidL( const TDesC& aId );
+
+ /**
+ * Get Transcation-ID
+ * @return transaction id
+ */
+ IMPORT_C TPtrC TidL();
+
+ /**
+ * Set Session-ID
+ * @param aId session ID
+ */
+ IMPORT_C void SetSessionIdL( const TDesC& aId );
+
+ /**
+ * Get Session-ID
+ * @return session id
+ */
+ IMPORT_C TPtrC SessionIdL();
+
+ /**
+ * Get LoginSession-ID
+ * @return session id
+ */
+ // TPtrC LoginSessionIdL();
+
+ /**
+ * Set CSP Message-Type
+ * @param aType message type, values defined in IMPSCONST.H
+ */
+ inline void SetMessageType( TInt aType );
+
+ /**
+ * Get CSP Message-Type
+ * @return message type.
+ */
+ inline TInt MessageType() const;
+
+ /**
+ * Response-Status accessor
+ * @return Response-Status field value
+ */
+ IMPORT_C TInt32 ResponseStatusL();
+
+
+ /**
+ * Status mutator
+ * @param aStatus status value. See Impsconst.h.
+ */
+ inline void SetStatus( const TInt aStatus );
+
+ /**
+ * Status accessor
+ * @return status value. See Impsconst.h.
+ */
+ inline TInt Status() const;
+
+ /**
+ * PollL
+ * @return ETrue if Poll
+ */
+ IMPORT_C TBool PollL();
+
+ /**
+ * SetSessionTypeL
+ */
+ IMPORT_C void SetSessionTypeL( TImpsSessionType aType );
+
+ /**
+ * SessionTypeL
+ */
+ IMPORT_C TImpsSessionType SessionTypeL();
+
+ /**
+ * accessor for fundamental specific data
+ */
+ inline CImpsData* Data( ) const;
+
+ /**
+ * Set CSP version
+ */
+ inline void SetCspVersion( TImpsCspVersion aCspVersion );
+
+ /**
+ * CSP version
+ */
+ inline TImpsCspVersion CspVersion();
+
+#ifdef _DEBUG
+ /**
+ * Data element creator.
+ * This function takes the ownership of the aData
+ * The object then belongs to CImpsData
+ */
+ void SetDataL( CImpsData& aData );
+
+
+ /**
+ * Dumps the internal data to file
+ */
+ void DumpToFileL( RFs& aFs, const TDesC& aFilename );
+#endif
+
+ public: // Functions from base classes
+
+ protected: // New functions
+
+ protected: // Functions from base classes
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CImpsFields();
+
+ /**
+ * By default Symbian OS constructor is private.
+ */
+ void ConstructL();
+
+ // By default, prohibit copy constructor
+ CImpsFields( const CImpsFields& );
+ // Prohibit assigment operator
+ CImpsFields& operator= ( const CImpsFields& );
+
+
+ public: // Data
+
+ protected: // Data
+
+ private: // Data
+ TInt32 iMsgType; // Message-Type; // This must be first!
+ TInt32 iStatus; // Status
+ CImpsData* iData; // All other data which is not in some member of impsfields
+ TImpsCspVersion iCspVersion; // CSP version in use
+
+
+ public: // Friend classes
+ friend class TImpsPackedEntity;
+ friend class CImpsSession;
+
+ };
+
+#include "impsfields.inl"
+
+#endif // ?INCLUDE_H
+
+// End of File