services/terminalmodeservice/inc/upnptmclientprofileservice.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:06:48 +0300
branchRCL_3
changeset 29 5c72fd91570d
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/**
* Copyright (c) 2010 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: CUpnpTmClientProfileService class declaration
*
*/

#ifndef __UPNPTMCLIENTPROFILESERVICE_H__
#define __UPNPTMCLIENTPROFILESERVICE_H__


// Include Files
#include <upnpserviceimplementation.h>
#include <upnphttpserverobserver.h>
#include <upnphttpservertransactioncreator.h>
#include <upnpcommonupnplits.h>
#include <upnpsettings.h>
#include <upnphttpserversession.h>
#include <upnphttpserverruntime.h>

// FORWARD DECLARATIONS
class CUPnPTmServerDevice;
class CUpnpTmServerImpl;

// CLASS DECLARATION

/**
 * TerminalMode Client Profile Service class. It encapsulates all the actions related to the client 
 * profile and their related state variables.
 */
class CUpnpTmClientProfileService: public CUpnpServiceImplementation
    {               
public: // Constructors and destructors
    /**
    * Two-phased constructor.
    * @param aService Parent service 
    */
    static CUpnpTmClientProfileService* NewL( CUpnpDevice& aUpnpDevice, const TDesC& aDescriptionPath , 
                                                                     CUpnpTmServerImpl& aTmServerImpl );
                                      
    /**
    * Destructor function called automatically from the destructor of a 
    * derived class
    **/
    ~CUpnpTmClientProfileService();
               
public: //from CUpnpServiceImplementation
    /**
    * This functions is a entry point for actions. See coments in base class
    */
    void ActionReceivedLD( CUpnpAction* aAction );
 
    void UnUsedProfileIdEventL(const TDesC8& aUnusedProfileIdBuffer);   
   
private:  
    // Actions supported by the client profile service
    TUpnpErrorCode GetMaxNumProfilesActionL( CUpnpAction* aAction );
    TUpnpErrorCode SetClientProfileActionL( CUpnpAction* aAction );
    TUpnpErrorCode GetClientProfileActionL( CUpnpAction* aAction );

private: // Constructors 
    /**
    * C++ default constructor.
    */
    CUpnpTmClientProfileService( CUpnpDevice& aUpnpDevice, 
                                    CUpnpTmServerImpl& aTmServerImp );
    /**
    * Second phase of the constructor.
    * Initialises a DOM tree.
    * By default Symbian 2nd phase constructor is private.
    * @param service Parent service
    */
    void ConstructL(const TDesC& aDescriptionPath );
    
private:
    CUpnpHttpServerSession*     iHttpServerSession;
    CUpnpDevice&                iUpnpDevice;
    CUpnpTmServerImpl&          iTmServerImpl;
    };

#endif  // __UPNPTMCLIENTPROFILESERVICE_H__

// End Of File