upnp/upnpstack/serviceframework/inc/upnpgenamessagefactory.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:12:20 +0200
changeset 0 f5a58ecadc66
permissions -rw-r--r--
Revision: 201003

/** @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:  Declares the RUpnpGenaMessageFactory class. 
*
*/


#ifndef C_RUPNPGENAMESSAGEFACTORY_H
#define C_RUPNPGENAMESSAGEFACTORY_H

// INCLUDES

#include <e32base.h>
#include "upnpgenamessage.h"

// CLASS DECLARATION

/**
*  @brief Gena Message Factory.
*  
*  Used to create standard GENA-messages.
*
*  @since Series60 2.6
*/
class RUpnpGenaMessageFactory
{
public: // New functions

    /**
    * Constructor function; Creates subscription message with following 
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aCallback Callback address.
    */
    IMPORT_C static CUpnpGenaMessage* SubscribeL( const TDesC8& aPath,
                                                  TInetAddr& aHost,
                                                  const TDesC8& aCallback );
        
    /**
    * Constructor function; Creates subscription message with following 
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aCallback Callback address.
    * @param aTimeout Requested subscription timeout.
    */
    IMPORT_C static CUpnpGenaMessage* SubscribeL( const TDesC8& aPath,
                                                  TInetAddr& aHost,
                                                  const TDesC8& aCallback,
                                                  const TDesC8& aTimeout );

    /**
    * Constructor function; Creates resubscription message with following
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aSid Subscription id.
    */
    IMPORT_C static CUpnpGenaMessage* ResubscribeL( const TDesC8& aPath,
                                                    TInetAddr& aHost,
                                                    const TDesC8& aSid );

    /**
    * Constructor function; Creates resubscription message with following 
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aSid Subscription id.
    * @param aTimeout Requested subscription timeout.
    */
    IMPORT_C static CUpnpGenaMessage* ResubscribeL( const TDesC8& aPath,
                                                    TInetAddr& aHost,
                                                    const TDesC8& aSid,
                                                    const TDesC8& aTimeout );

    /**
    * Constructor function; Creates unsubscription message with following 
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aSid Subscription id.
    */
    IMPORT_C static CUpnpGenaMessage* UnsubscribeL( const TDesC8& aPath,
                                                    TInetAddr& aHost,
                                                    const TDesC8& aSid );

    /**
    * Constructor function; Creates  subscription response message with
    * following parameters.
    * @since Series60 2.6
    * @param aSessionId Sennion id to respond.
    * @param aDestination Destination address.
    * @param aSid Subscription id.
    * @param aTimeout Timeout defined by the Service. Integer or Infinite.
    * @return Response which is ready to send.
    */
    IMPORT_C static CUpnpGenaMessage* SubscribeResponseL( TInt aSessionId,
                                                          const TInetAddr& aDestination,
                                                          const TDesC8& aSid,
                                                          const TDesC8& aTimeout );

    /**
    * Constructor function; Creates  subscription response message with 
    * following parameters.
    * @since Series60 2.6
    * @param aSessionId Sennion id to respond.
    * @param aDestination Destination address.
    * @param aTimeStamp ETrue appends date-header to the message.
    * @param aSid Subscription id.
    * @param aTimeout Timeout defined by the Service. Integer or Infinite.
    * @return Response which is ready to send.
    */
    IMPORT_C static CUpnpGenaMessage* SubscribeResponseL(
                                                 TInt aSessionId,
                                                 const TInetAddr& aDestination,
                                                 TBool aTimeStamp,
                                                 const TDesC8& aSid,
                                                 const TDesC8& aTimeout );

    /**
    * Constructor function; Creates  unsubscription response message with
    * following parameters.
    * @since Series60 2.6
    * @param aSessionId Sennion id to respond.
    * @param aDestination Destination address.
    */
    IMPORT_C static CUpnpGenaMessage* UnsubscribeResponseL(
                                                         TInt aSessionId,
                                                         const TInetAddr& aDestination );

    /**
    * Constructor function; Creates a event message header with following 
    * parameters.
    * @since Series60 2.6
    * @param aPath Publisher path.
    * @param aHost Publisher host and port.
    * @param aSid Subscription ID.
    * @param aSeq Sequence key.
    * @return Event-message without body. Attach body using SetBodyL-function.
    */
    IMPORT_C static CUpnpGenaMessage* EventingLC( const TDesC8& aPath,
                                                  TInetAddr& aHost,
                                                  const TDesC8& aSid,
                                                  TUint32 aSeq );
};

#endif // C_RUPNPGENAMESSAGEFACTORY_H

// End of File