upnpmediaserver/contentdirectoryservice/inc/upnpfiletransfer.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/** @file
* Copyright (c) 2005-2006 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:  Implements th upnpfiletransfer class
*
*/



#ifndef C_CUPNPFILETRANSFER_H
#define C_CUPNPFILETRANSFER_H

//  INCLUDES
#include <e32std.h>

#include "upnpcons.h"
#include "upnphttpmessage.h" 

// FORWARD DECLARATIONS
class CUpnpFileTransferEvent;


/**
*  Storage Struct for file transfer
*
*  @lib ContentDirectory
*  @since Series 60 2.6
*/
class CUpnpFileTransfer: public CBase
{
public:
//transfer type
enum TTransferType
    {
    EImport, 
    EExport,
    EUpload
    };

public:
    // Constructors and destructor
    
    /**
    * Two-phased constructor. returns a pointer to the new element.    
    */
    static CUpnpFileTransfer* NewL(TInt aTransferId, TInt aObjectId, TTransferType aType);
    
    /**
    * Two-phased constructor. returns a pointer to the new element.    
    */
    static CUpnpFileTransfer* NewLC(TInt aTransferId, TInt aObjectId, TTransferType aType);

    /**
    * Destructor. Deletes the element from memory. 
    */
    virtual ~CUpnpFileTransfer();
    
    TTransferStatus TransferState( );
    
    void SetTransferState(TTransferStatus aState);
    
    TInt ImportNumber();
    
    void SetImportNumber(TInt aNum);
    
    TInt TransferLength();
    
    void SetTransferLength(TInt aLen);
    
    TInt TransferTotal();
    
    void SetTransferTotal(TInt aTotal);
    
    TTransferType TransferType();
    
    TInt ObjectId();
    
    CUpnpFileTransferEvent* Event();
    
    void SetEvent(CUpnpFileTransferEvent* aEvent);
    
    CUpnpFileTransferEvent* RemoveEvent();
    
    TInt TransferId();
    
    
private:

    /**
    * C++ default constructor.
    */
    CUpnpFileTransfer(TInt aTransferId, TInt aObjectId, TTransferType aType);
    
    void ConstructL();    

public:
    // Data
    
    // Transfer Id
    TInt         iTransferId;

    // Transfer state
    TTransferStatus iTransferState;
    
    //
    TBool        iRemove;
    
    // used for checking if file transfer is Import (GET)
    // or Export (POST). iGet is ETrue if transfer was Import
    TBool        iGet;
    
    TTransferType iType;
    
    // last number in Import uri to match HTTP 200 OK with Import uri
    // number
    TInt         iImportNumber;
    
    TInt         iTransferLength;
    TInt         iTransferTotal;
    // Object id
    TInt         iObjectId;
    
    CUpnpFileTransferEvent* iEvent;
    
};

#endif      // C_CUPNPFILETRANSFER_H   
        
// End of File