upnp/upnpstack/serviceframework/inc/upnpnonmoderatedeventqueuemanager.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 11 Jun 2010 14:30:51 +0300
changeset 12 78fbd574edf4
parent 0 f5a58ecadc66
permissions -rw-r--r--
Revision: 201022 Kit: 2010123

/** @file
* Copyright (c) 2008-2008 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 algoritms for modereted events
*
*/


#ifndef C_CUPNPNONMODERATEDEVENTQUEUEMANAGER_H
#define C_CUPNPNONMODERATEDEVENTQUEUEMANAGER_H

// INCLUDES
#include <e32std.h>
#include <e32base.h>

#include "upnphttptransaction.h"
#include "upnpserviceimplementation.h"
#include "upnpeventcontroller.h"
#include "upnpeventqueuemanagerbase.h"
#include "upnpsubscriberlibrary.h"


// CLASS DECLARATION

/**
*  Implements algoritms for serving nonmoderated events
* 
*/
NONSHARABLE_CLASS( CUpnpNonModeratedEventQueueManager ): public CUpnpEventQueueManagerBase
    {
public:
    // Constructors and destructor

    /**
     * Destructor.
     */
    ~CUpnpNonModeratedEventQueueManager();

    /**
     * Two-phased constructor.
     */
    static CUpnpNonModeratedEventQueueManager* NewL( CUpnpServiceImplementation& aServiceImpl,
                                                     CUpnpEventController& aEventController,
                                                     CUpnpSubscriberLibrary* aSubscriberLibrary );

    /**
     * Two-phased constructor.
     */
    static CUpnpNonModeratedEventQueueManager* NewLC( CUpnpServiceImplementation& aServiceImpl,
                                                      CUpnpEventController& aEventController,
                                                      CUpnpSubscriberLibrary* aSubscriberLibrary );
                                                      
private:    

    /**
    * algoritm implemetation
    */
    void SendEvent();
    
    /**
    * algoritm implemetation
    * @param aEvent buffer for message body
    * @param aVariableList list of evented variables
    * @return number of evented variables
    */
    TInt FillEventBodyL( TDes8& aEvent, const RPointerArray<CUpnpStateVariable>& aVariableList );
    
    /**
    * Creates event message
    * @param aMessage will be encapsulete into http transaction
    * @return Http transcaction with event message
    */
    CUpnpHttpTransaction* CreateTransactionL( CUpnpHttpMessage* aMessage );                                                      
    
    /**
    * 
    */
    void SendEventL();
    
private:

    /**
     * Constructor for performing 1st stage construction
     */
    CUpnpNonModeratedEventQueueManager( CUpnpServiceImplementation& iServiceImpl,
                                        CUpnpEventController& iEventController,
                                        CUpnpSubscriberLibrary* aSubscriberLibrary );

    /**
    * Constructor for performing 2st stage construction
    */
    void ConstructL();

private:
    
    };

#endif // C_CUPNPNONMODERATEDEVENTQUEUEMANAGER_H
//end of file