diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpsharing/upnpsharingalgorithm/inc/upnpcdsliteobject.h --- /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 + +/** + * 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