voipplugins/sipconnectionprovider/ipvoicemailengine/inc/ipvmbxinterface.h
changeset 0 a4daefaec16c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voipplugins/sipconnectionprovider/ipvoicemailengine/inc/ipvmbxinterface.h	Mon Jan 18 20:12:36 2010 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2007-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:  Interface class to control voice mail engine
+*
+*/
+
+
+
+
+#ifndef C_IPVMBXINTERFACE_H
+#define C_IPVMBXINTERFACE_H
+
+#include <e32base.h>
+
+#include "ipvmbxobserver.h"
+#include "ipvmbxconstants.h"
+
+
+class CIpVmbxEngine;
+class CSIPProfile;
+
+
+/**
+ *  Interface class for IPVoiceMailEngine
+ *
+ *  This class is used to instantiate
+ *  IPVoiceMailEngine. It offers functions to to control
+ *  subscription state to Voice mail servers.
+ *
+ *  @lib IPVoiceMailAppEnginedll.lib
+ */
+
+NONSHARABLE_CLASS( CIpVmbxInterface ) : public CBase
+    {
+    
+public:
+
+    /**
+     * Two-phased constructor.
+     * 
+     * @param aEngineObserver Observer instance for status messages (SCP)
+     * @return Interface to IPVME
+     */
+    IMPORT_C static CIpVmbxInterface* NewL( 
+        MIpVmbxObserver& aEngineObserver );
+    
+    /**
+    * Destructor.
+    */
+    virtual ~CIpVmbxInterface();
+
+    /**
+     * Subscribes service to ip voice mail server
+     *
+     * @param aServiceProviderId Service to be subscribed
+     * @param aSipProfile Sip profile used for subscription
+     */
+    IMPORT_C void SubscribeL( 
+        TUint32 aServiceProviderId, 
+        CSIPProfile& aSipProfile );
+
+    /**
+     * Un-subscribes service from ip voice mail server
+     *
+     * @param aServiceProviderId Service to be un-subscribed
+     */
+    IMPORT_C void UnsubscribeL( TUint32 aServiceProviderId );
+
+    /**
+     * Check if service is subscribed to ip voice mail server
+     *
+     * @param aServiceProviderId Service which connection status will be 
+     *        checked
+     * @param aProfileSubscribed Is subscribed
+     * @return KErrNotFound if instance does not exist
+     */
+    IMPORT_C TInt IsSubscribed( 
+        TUint32 aServiceProviderId, 
+        TBool& aProfileSubscribed ) const;
+    
+    /**
+     * Send messages through observer when subscribe status of service 
+     * is changed
+     *
+     * @param aServiceProviderId Service which state has changed
+     * @param aMessage Service subscription state
+     */
+    void SendMessage( 
+        TUint32 aServiceProviderId, 
+        MIpVmbxObserver::TVmbxMessage aMessage );
+
+
+private:
+
+    /**
+     * Constructor.
+     * 
+     * @param aEngineObserver Observer for messages (SCP).
+     */
+    CIpVmbxInterface( MIpVmbxObserver& aEngineObserver );
+
+    void ConstructL();
+
+
+private: // data
+
+    /**
+     * Engine class
+     * Own.
+     */
+    CIpVmbxEngine* iIpVmbxEngine;
+    
+    /**
+     * Observer instance (to SCP)
+     */
+    MIpVmbxObserver& iEngineObserver;
+
+    
+    EUNIT_IMPLEMENTATION
+    };
+
+#endif // C_IPVMBXINTERFACE_H