cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmplugintundriver.h
branchRCL_3
changeset 62 bb1f80fb7db2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmplugintundriver.h	Tue Sep 14 22:06:05 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2010 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:  TUN Driver plugin IF implementation class.
+*
+*/
+
+#ifndef TUNDRIVER_PLUGIN_INCLUDED
+#define TUNDRIVER_PLUGIN_INCLUDED
+
+#include <cmplugintundriverdef.h>
+#include <cmpluginlanbase.h>
+
+class CCDVirtualIAPNextLayerRecord;
+
+/**
+ * TUN Driver Plugin IF implementation class
+ * This class will be instantiated when the connection is created using the PluginBearer Id KPluginTUNDriverBearerTypeUid
+ * @since S^3
+ */
+NONSHARABLE_CLASS(CCmPluginTUNDriver) : public CCmPluginLanBase
+    {
+
+    public:
+
+        /**
+        * This function is invoked by the cmmanager plugin framework to load TUNDriver plugin. 
+        * This plugin will be identified based on the plugin UID from cmpluginproxy.cpp
+        * @param aInitParam Initialization parameters.
+        * @return CCmPluginTUNDriver.
+        */
+        static CCmPluginTUNDriver* NewL( TCmPluginInitParam* aInitParam );
+
+        /**
+        * Destructor. 
+        */
+        virtual ~CCmPluginTUNDriver();
+
+        /**
+        * This function is invoked by the cmmanager plugin framework while loading the plugin. 
+        * CreateInstance of the plugin will invoke each time plugin type needs to instantiated 
+        * @param aInitParam Initialization parameters.
+        * @return CCmPluginBaseEng.
+        */
+        virtual CCmPluginBaseEng* CreateInstanceL( TCmPluginInitParam& aInitParam ) const;
+        
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Once the plugin type is identified, identifies the right ServiceRecord and loads.
+        */
+        void LoadServiceSettingL();
+        
+    public:
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Check here if every data of the connection method is valid
+        * before records were saved to CommsDat.
+        * Set incorrect attribute id in iInvalidAttribute and leave
+        * with KErrArgument.
+        */
+        void PrepareToUpdateRecordsL();
+        
+        /**
+        * This is function is invoked by cmmanager framework. If Settings are enabled.
+        * Currently Settings for TUNDriver is not supported.
+        * @return KErrNotSupported.
+        */
+        virtual TInt RunSettingsL();
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Once the plugin type is identified, type of bearer and other attributes types are obtained. 
+        * @param aAttribute Attribute type.
+        * @return Integer attribute's value.
+        */
+        virtual TUint32 GetIntAttributeL( const TUint32 aAttribute ) const;
+        
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Once the plugin type is identified, finds wether the IAP selected belongs to TUNDriver. 
+        * @param aIapId IapId for the selected accesspoint
+        * @return ETrue if IAP can be handled else EFalse.
+        */
+        virtual TBool CanHandleIapIdL( TUint32 aIapId ) const;
+        
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Once the plugin type is identified, finds wether the IAP selected belongs to TUNDriver.
+        * This is identified if service type is LANService and Bearer is VirtualBearer and
+        * IfName is TunDriverIf and agent is TunDriverAgent. 
+        * @param aIapRecord - iaprecord of type CCDIAPRecord from commsdatabase
+        * @return ETrue if IAP can be handled else EFalse.
+        */
+        virtual TBool CanHandleIapIdL( CommsDat::CCDIAPRecord* aIapRecord ) const;
+        
+        /**
+        * This is function is invoked by cmmanager framework when needs to initialzed with UI.
+        * This feature is currently not supported by the plugin.
+        * @param aManuallyConfigure Manual configuration on or off.
+        * @return KErrNotSupported
+        */
+        TBool InitializeWithUiL( TBool aManuallyConfigure );
+
+        /**
+        * This is function is invoked by plugin destructor.
+        * If the function is not defined then compiler will throw error for TUNDriver plugin construction.
+        */
+        virtual void AdditionalReset();
+
+    protected:
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * @return aName is LanService name and  aRecordId the service record Id.
+        */
+        virtual void ServiceRecordIdLC( HBufC* &aServiceName, TUint32& aRecordId );
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * @param aBearerName Output parameter for bearer name.
+        * @param aRecordId Output parameter for Bearer record Id.
+        */
+        virtual void BearerRecordIdLC( HBufC* &aBearerName, TUint32& aRecordId );
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Once the plugin type is identified, this invoked for the first time when plgun is loaded
+        * while creating connection for TUNDriver plugin.
+        */
+        virtual void CreateNewServiceRecordL();
+        
+    private:
+
+        /**
+        * This is default constructor of the plugin. 
+        * @param aInitParam Initialization parameters.
+        */
+        CCmPluginTUNDriver( TCmPluginInitParam* aInitParam );
+
+        /**
+        * This is second phase constructor of the plugin.
+        * Builds the commsdatabase with the Tables required for TUNDriver plugin. 
+        */
+        void ConstructL();
+
+        /**
+        * This is function is invoked by cmmanager framework.
+        * Returns the service record of the TUN driver plugin.
+        * @return service record.
+        */
+        CommsDat::CCDLANServiceRecord& ServiceRecord()const;
+    };
+
+#endif // TUNDRIVER_PLUGIN_INCLUDED