mmshplugins/mmshaoplugin/inc/musaoplugin.h
changeset 0 f0cf47e981f9
child 32 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshaoplugin/inc/musaoplugin.h	Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,153 @@
+/*
+* 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:  Main plugin class
+*
+*/
+
+
+#ifndef MUSAOPLUGIN_H
+#define MUSAOPLUGIN_H
+
+
+#include <e32base.h>    
+#include <AlwaysOnlineEComInterface.h>
+#include <ecom/implementationproxy.h>
+#include <etel.h>    
+#include <etelmm.h>  
+#include <e32property.h>
+
+#include "musunittesting.h"
+
+// Enable the below line if Kodiak Ptt has to be monitered
+//class CMusPttCallMonitor;
+class CMusPropertyMonitor;
+class CMusTsyPropertyMonitor;
+
+IMPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount );
+
+/**
+ * Main plugin class
+ *
+ * @lib musaoplugin.dll
+ */
+class CMusAoPlugin : public CAlwaysOnlineEComInterface                      
+    {
+public:
+
+    /**
+     * Two-phased constructor
+     *
+     * @since S60 v3.2
+     * @return New CMusAoPlugin instance
+     */
+    static CMusAoPlugin* NewL();
+
+    /**
+     * C++ destructor.
+     */
+    virtual ~CMusAoPlugin();
+    
+    
+public: // new API
+
+    /**
+     * Define start up resource properties
+     *
+     * @since S60 v3.2
+     */
+    void DefinePropertiesL();
+
+    /**
+     * Delete when AO end
+     *
+     * @since S60 v3.2
+     */
+
+    void DeleteProperties();
+
+private: // constructors
+
+    /**
+     * C++ constructor.
+     */
+    CMusAoPlugin();
+
+    /**
+     * Symbian second-phase constructor.
+     */
+    void ConstructL();
+    
+    /**
+     * Utility function to define and set keys.
+     */
+	void DefinePropertyL(TInt aKey,RProperty::TType aType,TInt aVal);
+
+    /**
+     * Utility function to define and set keys.
+     */
+	void DefinePropertyL(TInt aKey,RProperty::TType aType,const TDesC& aVal);
+
+    /**
+     * Utility function to delete keys.
+     */
+	void DeleteProperty(TInt aKey);
+	
+public: // from base class CAlwaysOnlineEComInterface
+
+    /**
+     *  Commands from alwaysonlinemanager to plugin
+     *
+     * @since S60 v3.2
+     * @param aCommand, command Id
+     * @param aParameters, parameter pack
+     * @return return value
+     */
+    virtual TAny* HandleServerCommandL( TInt aCommand,
+                                        TDesC8* aParameters );	
+
+private: // data
+   
+    /* Property Monitor  */
+    CMusPropertyMonitor*      iPropertyMonitor;
+
+    /** 
+     *  Telephony Property Key monitor.
+     *  Monitors the call connect/disconnect events.
+     */
+    CMusTsyPropertyMonitor*   iTsyPropertyMonitor;
+
+    /* Ptt Call Monitor  */
+    // Enable the below line if Kodiak Ptt has to be monitered
+    // CMusPttCallMonitor*       iPttCallMonitor;
+
+    /**
+     * RTelServer handle
+     */
+    RTelServer iServer;
+
+    /**
+     * RMobilePhone handle
+     */
+    RMobilePhone iPhone;    
+
+    /** 
+     *  Error status.
+     */
+    TInt iError;
+   
+    MUS_UNITTEST( UT_CMusAoPlugin )
+
+    };
+
+#endif // MUSAOPLUGIN_H