--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browserutilities/downloadmgr/DownloadMgrClntSrv/inc/DownloadMgrDefAttrib.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: This file contains the declaration of the default attrib of Download Mgr Server.
+*
+*/
+
+
+
+#ifndef __DOWNLOADMGR_DEFATTRIB_H__
+#define __DOWNLOADMGR_DEFATTRIB_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <HttpDownloadMgrCommon.h>
+
+// DATA TYPES
+typedef TPckgBuf< TInt32 > THttpDownloadMgrIntegerBuf;
+
+// CLASS DECLARATION
+class CDefaultAttrib;
+
+/**
+* Class for spack/unpack utils
+*
+* @lib -
+* @since Series 60 2.8
+*/
+NONSHARABLE_CLASS( TDMgrUtils )
+ {
+ public: // Constructor
+
+ TDMgrUtils();
+
+ public: // New functions
+
+ /**
+ * Get the next default/event attribute from the packed attribute list.
+ * @param aAttrib unpacked attribute
+ * @param aCount the next attribute to be unpack
+ * @param aPackedAttribs packed attribute list
+ * @return TBool.
+ */
+ TBool NextAttribL( CDefaultAttrib* aAttrib,
+ const TDesC8& aPackedAttribs );
+
+ /**
+ * Allocate buffer for default attributes.
+ * @param aAttrib unpacked attributes
+ * @return HBufC8*.
+ */
+ static HBufC8* AllocDefAttribBufLC( CArrayPtrFlat< CDefaultAttrib >* aAttribs );
+
+ /**
+ * Pack attributes.
+ * @param aAttrib unpacked attributes
+ * @return HBufC8*.
+ */
+ static HBufC8* PackedAttributesL( CArrayPtrFlat< CDefaultAttrib >* aAttribs );
+
+ /**
+ * Alloc and pack event attributes.
+ * @param aUserData User data
+ * @param aDownloadedSize Downloaded size
+ * @param aAttrLength Attribute length
+ * @return HBufC8*.
+ */
+ static HBufC8* PackEventAttribL( TInt32 aUserData = 0,
+ TInt32 aMODownloadedSize = 0,
+ TInt32 aDownloadedSize = 0,
+ TInt32 aMOAttrLength = 0,
+ TInt32 aAttrLength = 0 );
+
+ /**
+ * Unpack event attributes.
+ * @param aPack Package
+ * @param aUserData User data
+ * @param aDownloadedSize Downloaded size
+ * @param aAttrLength Attribute length
+ * @return None.
+ */
+ static void UnPackEventAttribL( const TDesC8& aPack,
+ TInt32& aUserData,
+ TInt32& aMODownloadedSize,
+ TInt32& aDownloadedSize,
+ TInt32& aMOAttrLength,
+ TInt32& aAttrLength,
+ TInt32& aMoIndex );
+
+ public: // Members
+
+ // utils used by the default/event attributes
+ TPtrC8 iPtr;
+ TInt iCurrent;
+ };
+
+/**
+* Class for storing default attribute
+*
+* @lib -
+* @since Series 60 2.8
+*/
+NONSHARABLE_CLASS( CDefaultAttrib ) : public CBase
+ {
+ public:
+
+ /**
+ * Default attribute type
+ *
+ * @lib -
+ * @since Series 60 2.8
+ */
+ enum TAttribType
+ {
+ EInt,
+ EBool,
+ EString8,
+ EString16
+ };
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructors.
+ */
+ static CDefaultAttrib* NewL();
+
+ static CDefaultAttrib* NewL( THttpDownloadAttrib aAttribute,
+ TInt32 aValue );
+
+ static CDefaultAttrib* NewL( THttpDownloadAttrib aAttribute,
+ TBool aValue );
+
+ static CDefaultAttrib* NewL( THttpDownloadAttrib aAttribute,
+ const TDesC8& aValue );
+
+ static CDefaultAttrib* NewL( THttpDownloadAttrib aAttribute,
+ const TDesC16& aValue );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CDefaultAttrib();
+
+ protected:
+
+ /**
+ * C++ default constructor.
+ */
+ CDefaultAttrib( THttpDownloadAttrib aAttribute, TAttribType aType );
+ CDefaultAttrib();
+
+ /**
+ * By default Symbian 2nd phase constructors are private.
+ */
+ void ConstructL();
+ void ConstructL( TInt32 aValue );
+ void ConstructL( TBool aValue );
+ void ConstructL( const TDesC8& aValue );
+ void ConstructL( const TDesC16& aValue );
+
+ public:
+
+ TInt32 AsTInt32L() const;
+ TBool AsTBoolL() const;
+ TPtrC8 AsTPtrC8L() const;
+ TPtrC16 AsTPtrC16L() const;
+
+ void SetL( const TDesC8& aType, const TDesC8& aAttribute, const TDesC8& aValue );
+ void Reset();
+
+ void PackAttribute( TDes8& aPackage );
+ TInt PackedAttribSize();
+
+ public: // Data
+
+ // attribute name
+ THttpDownloadAttrib iAttribute;
+ // attribute type
+ TAttribType iType;
+ // Possible attribute values
+ TInt32 iInt32; // Storage for integer based data
+ TBool iBool; // Storage for TBool
+ HBufC8* iBufC8; // Storage for 8 bits buffer based data.
+ HBufC16* iBufC16; // Storage for 16 bits buffer based data.
+
+ };
+
+#endif // __DOWNLOADMGR_DEFATTRIB_H__
+
+// End of File