diff -r 000000000000 -r f0cf47e981f9 mmshplugins/mmshsipcrplugin/inc/mussipcrplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmshplugins/mmshsipcrplugin/inc/mussipcrplugin.h Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,100 @@ +/* +* 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: +* +*/ + + +#ifndef MUSSIPCRPLUGIN_H +#define MUSSIPCRPLUGIN_H + +#include "musunittesting.h" + +#include +#include +#include + +class CMusManager; + +IMPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount ); + +/** + * CMusSipCrPlugin + */ +class CMusSipCrPlugin : public CSIPResolvedClient + { + MUS_UNITTEST( CMusSipCrPluginTest ) + +public: // constructors and destructor + + static CMusSipCrPlugin* NewL(); + + virtual ~CMusSipCrPlugin(); + +private: // constructors + + CMusSipCrPlugin(); + + void ConstructL(); + +public: // from CSIPResolvedClient + + /** + * Returns the SIP client's channel UID that indicates client's + * channel UID for connection with SIP e.g. CSIP::NewL() + * @param aMethod the method of the SIP request + * @param aRequestUri the request-URI of the SIP request + * @param aHeaders all the headers in the SIP request + * @param aContent SIP request body; zero-length descriptor if not present + * @param aContentType the content-type of the SIP request. + * Zero-pointer if body is not present. + * @return SIP client's communication channel's UID + */ + TUid ChannelL( RStringF aMethod, + const TDesC8& aRequestUri, + const RPointerArray& aHeaders, + const TDesC8& aContent, + const CSIPContentTypeHeader* aContentType=0 ); + + + /** + * Requests the client to connect to SIP with resolved + * UID in case there's no connection with resolved channel UID. + * @param aUid previously resolved channel UID + * @leave KErrNoMemory if out of memory + * @leave KErrNotFound in case non-existing channel UID was provided + */ + void ConnectL( TUid aUid ); + + /** + * Requests the implementation to provide capabilities in XML format + * in case they were not defined in the ECOM resource file. The cabablities + * to be returned must be defined according to the same DTD. + * This function will be invoked only if the capabilities are not + * defined in the ECOM resource file. + */ + const TDesC8& Capabilities(); + +private: // data + + TUid DoChannelL( RStringF aMethod ); + +private: // data + + CMusManager* iManager; + + }; + + +#endif // MUSSIPCRPLUGIN_H