epoc32/include/sipresolvedclient.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:
williamr@2
    15
* Name        : SipResolvedClient.h
williamr@2
    16
* Part of     : SDK API, SIP Client Resolver API
williamr@2
    17
* Version     : 1.0
williamr@2
    18
*
williamr@2
    19
*/
williamr@2
    20
williamr@2
    21
williamr@2
    22
williamr@2
    23
#ifndef CSIPRESOLVEDCLIENT_H
williamr@2
    24
#define CSIPRESOLVEDCLIENT_H
williamr@2
    25
williamr@2
    26
// INCLUDES
williamr@2
    27
#include <ecom/ecom.h>
williamr@2
    28
#include <stringpool.h>
williamr@2
    29
williamr@2
    30
//FORWARD DECLARATIONS
williamr@2
    31
class CSIPHeaderBase;
williamr@2
    32
class CSIPContentTypeHeader;
williamr@2
    33
williamr@2
    34
// CONSTANTS
williamr@2
    35
/** Interface UID of this ECOM interface*/
williamr@2
    36
const TUid KSIPResolvedClientIFUid = { 0x102010dd };
williamr@2
    37
williamr@2
    38
// CLASS DEFINITION
williamr@2
    39
/**
williamr@2
    40
* @publishedAll
williamr@2
    41
* @released
williamr@2
    42
*
williamr@2
    43
* Interface that clients must realize
williamr@2
    44
* in order to enable client resolution mechanism upon the reception
williamr@2
    45
* of SIP request outside the SIP dialog. Data provided in 
williamr@2
    46
* the ECOM resource file or optionally requested from the interface implementation 
williamr@2
    47
* will be used for target client determination by the SIP implementation.
williamr@2
    48
* Note that channel UIDs must be unique accross all SIP clients e.g. clients may
williamr@2
    49
* use UIDs assigned for binaries.
williamr@2
    50
*/
williamr@2
    51
class CSIPResolvedClient : public CBase
williamr@2
    52
	{
williamr@2
    53
	public:	// Destructor
williamr@2
    54
williamr@2
    55
		/**
williamr@2
    56
		* Destructor
williamr@2
    57
		*/
williamr@2
    58
		virtual inline ~CSIPResolvedClient();
williamr@2
    59
williamr@2
    60
	public: // Abstract methods
williamr@2
    61
williamr@2
    62
		/**
williamr@2
    63
		* Returns the SIP client's channel UID that indicates client's
williamr@2
    64
		* channel UID for connection with SIP e.g. CSIP::NewL()
williamr@2
    65
		* @param aMethod the method of the SIP request
williamr@2
    66
        * @param aRequestUri the request-URI of the SIP request
williamr@2
    67
        * @param aHeaders all the headers in the SIP request
williamr@2
    68
        * @param aContent SIP request body; zero-length descriptor if not present
williamr@2
    69
        * @param aContentType the content-type of the SIP request. 
williamr@2
    70
        *        Zero-pointer if body is not present.
williamr@2
    71
		* @return SIP client's communication channel's UID
williamr@2
    72
		*/
williamr@2
    73
		virtual TUid ChannelL(RStringF aMethod,
williamr@2
    74
                              const TDesC8& aRequestUri,
williamr@2
    75
                              const RPointerArray<CSIPHeaderBase>& aHeaders,
williamr@2
    76
                              const TDesC8& aContent,
williamr@2
    77
                              const CSIPContentTypeHeader* aContentType=0) = 0;
williamr@2
    78
williamr@2
    79
		/**
williamr@2
    80
		* Requests the client to connect to SIP with resolved
williamr@2
    81
		* UID in case there's no connection with resolved channel UID.
williamr@2
    82
		* @param aUid previously resolved channel UID
williamr@2
    83
		* @leave KErrNoMemory if out of memory
williamr@2
    84
		* @leave KErrNotFound in case non-existing channel UID was provided
williamr@2
    85
		*/
williamr@2
    86
		virtual void ConnectL(TUid aUid) = 0;
williamr@2
    87
williamr@2
    88
		/**
williamr@2
    89
		* Requests the implementation to provide capabilities in XML format
williamr@2
    90
		* in case they were not defined in the ECOM resource file. The cabablities
williamr@2
    91
		* to be returned must be defined according to the same DTD.
williamr@2
    92
		* This function will be invoked only if the capabilities are not
williamr@2
    93
		* defined in the ECOM resource file.
williamr@2
    94
		*/
williamr@2
    95
		virtual const TDesC8& Capabilities();
williamr@2
    96
williamr@2
    97
	public: // Data
williamr@2
    98
williamr@2
    99
		/// Unique key for implementations of this interface.
williamr@2
   100
		TUid iInstanceKey;
williamr@2
   101
williamr@2
   102
	protected: // Constructors:
williamr@2
   103
williamr@2
   104
		inline CSIPResolvedClient();
williamr@2
   105
	};
williamr@2
   106
williamr@2
   107
#include <sipresolvedclient.inl>
williamr@2
   108
williamr@2
   109
#endif // CSIPRESOLVEDCLIENT_H