DirectPrint/DirectPrintApp/inc/directprintpropertydata.h
branchRCL_3
changeset 11 613a5ff70823
child 19 2275db202402
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DirectPrint/DirectPrintApp/inc/directprintpropertydata.h	Wed Mar 31 00:04:55 2010 +0900
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2010 Kanrikogaku Kenkyusho, Ltd.
+* 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:
+* Kanrikogaku Kenkyusho, Ltd. - Initial contribution
+*
+* Contributors:
+*
+* Description:
+* {Description of the file}
+*
+*/
+
+// Protection against nested includes
+#ifndef __DIRECTPRINTPROPERTYDATA_H__
+#define __DIRECTPRINTPROPERTYDATA_H__
+
+// System includes
+#include <e32base.h>
+#include <e32cmn.h>
+
+// User includes
+#include "DirectPrintDef.h"
+
+// Class declaration
+/**
+ *  Printer property data class
+ *  more_complete_description
+ */
+class TDirectPrintPropertyData
+	{
+public:
+	/**
+	 * Internalize operation.
+	 *
+	 * @param aStream ReadStream.
+	 */
+	inline void InternalizeL(RReadStream& aStream);
+
+	/**
+	 * Externalize operation.
+	 *
+	 * @param aStream WriteStream.
+	 */
+	inline void ExternalizeL(RWriteStream& aStream)const;
+
+	/**
+	 * Substitution operator.
+	 *
+	 * @param aData Printer property data.
+	 * @return Printer property data.
+	 */
+	inline TDirectPrintPropertyData& operator=(const TDirectPrintPropertyData& aData);
+
+public:
+	/** The ID of printer data. */
+	TInt iPrinterId;
+	/** The ID of application. */
+	TInt iApplicationId;
+	/** The ID of item type. */
+	TInt iItemType;
+	/** The ID of item. */
+	TInt iItemId;
+	/** Name of item. */
+	TBuf<KDirectPrintNameLength> iItemName;
+	/** Numerical value. */
+	TInt iItemValue;
+	/** Text value. */
+	TBuf<KDirectPrintNameLength> iItemTextValue;
+	};
+
+typedef RArray<TDirectPrintPropertyData> RDPPropertyDataArray;
+
+
+
+inline void TDirectPrintPropertyData::InternalizeL(RReadStream& aStream)
+	{
+	iItemType = aStream.ReadInt32L();
+	iItemId = aStream.ReadInt32L();
+	TInt length = aStream.ReadInt32L();
+	if(length > 0)
+		{
+		aStream.ReadL(iItemName, length);
+		}
+	iItemValue = aStream.ReadInt32L();
+	length = aStream.ReadInt32L();
+	if(length > 0)
+		{
+		aStream.ReadL(iItemTextValue, length);
+		}
+	}
+
+inline void TDirectPrintPropertyData::ExternalizeL(RWriteStream& aStream) const
+	{
+	aStream.WriteInt32L(iItemType);
+	aStream.WriteInt32L(iItemId);
+	aStream.WriteInt32L(iItemName.Length());
+	if (iItemName.Length() > 0)
+		{
+		aStream.WriteL(iItemName);
+		}
+	aStream.WriteInt32L(iItemValue);
+	aStream.WriteInt32L(iItemTextValue.Length());
+	if (iItemTextValue.Length() > 0)
+		{
+		aStream.WriteL(iItemTextValue);
+		}
+	}
+
+inline TDirectPrintPropertyData& TDirectPrintPropertyData::operator=(const TDirectPrintPropertyData& aData)
+	{
+	iPrinterId = aData.iPrinterId;
+	iApplicationId = aData.iApplicationId;
+	iItemType = aData.iItemType;
+	iItemId = aData.iItemId;
+	iItemName.Copy(aData.iItemName);
+	iItemValue = aData.iItemValue;
+	iItemTextValue.Copy(aData.iItemTextValue);
+	return *this;
+	}
+
+#endif // __DIRECTPRINTPROPERTYDATA_H__