--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpsharing/upnpsharingalgorithm/inc/upnpcdsliteobject.h Wed Nov 03 11:45:09 2010 +0200
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 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: Lite object for storing container/item structure
+*
+*/
+
+#ifndef C_UPNP_CDS_LITE_OBJECT_H
+#define C_UPNP_CDS_LITE_OBJECT_H
+
+// INCLUDES
+#include <e32base.h>
+
+/**
+ * Defines the CUpnpCdsLiteObject class. Used to store container/item
+ * structure of the CDS.
+ *
+ * @lib upnpsharingalgorithm.lib
+ * @since S60 5.2
+ */
+class CUpnpCdsLiteObject : public CBase
+ {
+
+ public: // Enums
+
+ enum TCdsLiteObjectType
+ {
+ EContainer = 1,
+ EItem,
+ EItemReference,
+ EUnknown
+ };
+
+ public: // Constructors and destructors
+
+ /**
+ * Two-phased constructor. Leaves with KErrArgument if the given
+ * parameters are not valid. Can also leave in case of out-of-memory.
+ *
+ * @since S60 5.2
+ * @param aName, filename/container title of the object
+ * @param aType, type of the object
+ * @param aObjectId, CDS object ID of the object
+ * @param aParentId, CDS object ID of the parent object
+ * @param aObjectClass, object class type
+ * @return CDSLite object
+ */
+ IMPORT_C static CUpnpCdsLiteObject* NewL( const TDesC8 &aName,
+ const TCdsLiteObjectType aType,
+ const TDesC8 &aObjectId,
+ const TDesC8 &aParentId,
+ const TDesC8 &aObjectClass );
+
+ /**
+ * Destructor.
+ *
+ * @since S60 5.2
+ */
+ IMPORT_C virtual ~CUpnpCdsLiteObject();
+
+ public: // Business logic methods
+
+ /**
+ * Returns the name of the object. For UpnpItems and UpnpItemRefences
+ * this is the filename (including filepath). For UpnpContainer this
+ * it the title of the container.
+ *
+ * @since S60 5.2
+ * @return object name
+ */
+ IMPORT_C TDesC8& Name();
+
+ /**
+ * Returns the type of the object
+ *
+ * @since S60 5.2
+ * @return object type
+ */
+ IMPORT_C CUpnpCdsLiteObject::TCdsLiteObjectType Type();
+
+ /**
+ * Returns the CDS object ID of the object
+ *
+ * @since S60 5.2
+ * @return object id
+ */
+ IMPORT_C TDesC8& ObjectId();
+
+ /**
+ * Returns the CDS object ID of the parent object
+ *
+ * @since S60 5.2
+ * @return parent object id
+ */
+ IMPORT_C TDesC8& ParentId();
+
+ /**
+ * Returns the object class
+ *
+ * @since S60 5.2
+ * @return object class
+ */
+ IMPORT_C TDesC8& ObjectClass();
+
+ /**
+ * Returns the CDS object ID of the original object. Leaves with
+ * KErrNotSupported if the type of the object is not EItemReference.
+ * Can also leave in case of out-of-memory.
+ *
+ * @since S60 5.2
+ * @return original item id
+ */
+ IMPORT_C TDesC8& OriginalItemIdL();
+
+ /**
+ * Sets the CDS object ID of the original object. Leaves with
+ * KErrArgument if the given parameter is not valid. Can also leave
+ * in case of out-of-memory.
+ *
+ * @since S60 5.2
+ * @param aOriginalItemId, CDS object ID of the original UpnpItem
+ */
+ IMPORT_C void SetOriginalItemIdL( const TDesC8 &aOriginalItemId );
+
+ private: // Constructors
+
+ /**
+ * Default c++ constructor
+ *
+ * @since S60 5.2
+ */
+ CUpnpCdsLiteObject();
+
+ /**
+ * Second-phase constructor.
+ *
+ * @since S60 5.2
+ * @param aName, filename/container title of the object
+ * @param aType, type of the object
+ * @param aObjectId, CDS object ID of the object
+ * @param aParentId, CDS object ID of the parent object
+ * @param aObjectClass, object class type
+ */
+ void ConstructL( const TDesC8 &aName,
+ const TCdsLiteObjectType aType,
+ const TDesC8 &aObjectId,
+ const TDesC8 &aParentId,
+ const TDesC8 &aObjectClass );
+
+ private: // Data members
+
+ /**
+ * The type of the object
+ */
+ TCdsLiteObjectType iType;
+
+ /**
+ * The name of the object. Owned.
+ */
+ HBufC8* iName;
+
+ /**
+ * The CDS object ID. Owned.
+ */
+ HBufC8* iObjectId;
+
+ /**
+ * The CDS object ID of the parent container. Owned.
+ */
+ HBufC8* iParentId;
+
+ /**
+ * The CDS object class type. Owned.
+ */
+ HBufC8* iObjectClass;
+
+ /**
+ * The CDS object ID of the original UpnpItem to which this
+ * reference item points to. Used only if the type is EItemReference.
+ * Owned.
+ */
+ HBufC8* iOriginalItemId;
+
+ };
+
+#endif /* C_UPNP_CDS_LITE_OBJECT_H */
+// End of File