telephonyprotocols/secondarypdpcontextumtsdriver/spudman/src/rpdpfsminterface.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/src/rpdpfsminterface.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,270 @@
+// Copyright (c) 2004-2009 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:
+// Proxy methods for RPdpFsmInterface class
+// 
+//
+
+/**
+ @file 
+ @internalComponent
+*/
+
+
+#include "rpdpfsminterface.h"
+
+
+RPdpFsmInterface::RPdpFsmInterface()
+   : iFsmImpl(NULL)
+{
+}
+
+RPdpFsmInterface::~RPdpFsmInterface()
+{
+}
+	
+void RPdpFsmInterface::OpenL(MSpudManInterface* aSpudManInterface, TName& aName)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrNotReady ));
+   iFsmImpl->OpenL (aSpudManInterface, aName);
+}
+
+void RPdpFsmInterface::Close()
+{
+   if (iFsmImpl)
+      {
+      // Clear the member first to avoid ping-ponging Close() messages
+      // between the PdpFsmInterface and SpudManInterface
+      MPdpFsmInterface* fsmImpl = iFsmImpl;
+      iFsmImpl = NULL;
+      fsmImpl->Close ();
+      }
+}
+	
+
+TInt RPdpFsmInterface::Input (TContextId aPdpId, const TInt aOperation, const TInt aParam /* =KErrNone */)
+{
+   if (iFsmImpl)
+      {
+      return iFsmImpl->Input (aPdpId, aOperation, aParam);
+      }
+   
+   // let whoever know we can't do what they ask
+   return KErrNotReady;
+}
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+
+void RPdpFsmInterface::SetIMCNSignalling(TBool aImCnSignalling)
+/**
+Set the status of IM CN Signalling Flag in UmtsGprsScpr
+
+@param aImCnSignalling IMCN signalling Status
+*/
+{
+__ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KDescNullPdpFsm, KErrNotReady ));	
+ iFsmImpl->SetIMCNSignalling(aImCnSignalling);	
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR5Requested& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KDescNullPdpFsm, KErrNotReady ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR5Negotiated& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KDescNullPdpFsm, KErrNotReady ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+#else
+// !SYMBIAN_NETWORKING_UMTSR5 
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Requested& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Negotiated& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+#endif 
+// SYMBIAN_NETWORKING_UMTSR5 
+
+
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const TTFTInfo& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const TTFTOperationCode& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TDataChannelV2& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TContextConfigGPRS& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TContextStatus& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Set (aPdpId, aParam);
+}
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR5Requested& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KDescNullPdpFsm, KErrNotReady ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR5Negotiated& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KDescNullPdpFsm, KErrNotReady ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+#else
+// !SYMBIAN_NETWORKING_UMTSR5 
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Requested& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Negotiated& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+#endif 
+// SYMBIAN_NETWORKING_UMTSR5 
+
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, TTFTInfo& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, TTFTOperationCode& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TDataChannelV2& aParam) const
+{
+   if (iFsmImpl == NULL) 
+      {
+      // Since the RPdpFsmInterface implementation hasn't been initialised yet we need to provide
+      // a response. This is only going to happen as lower nifs are being created and before the
+      // UmtsGprsSCPR has had a chance to initialise our iFsmImpl pointer, and only if they do a
+      // ReadDes() for ModemBearer\CSYName, or ModemBearer\PortName. Luckily for us at this
+      // early stage Etel always response with an empty TDataChannelV2 structure.
+      aParam.iChannelId = KNullDesC;
+      aParam.iCsy = KNullDesC;
+      aParam.iPort = KNullDesC;
+      return KErrNone;
+      }
+   else
+      {
+      return iFsmImpl->Get (aPdpId, aParam);
+      }
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TContextConfigGPRS& aParam) const
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->Get (aPdpId, aParam);
+}
+
+TInt RPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TContextStatus& aParam) const
+{
+   if (iFsmImpl) 
+      {
+      return iFsmImpl->Get (aPdpId, aParam);
+      }
+      
+   return KErrNotReady;
+}
+
+void RPdpFsmInterface::Set(const RPacketService::TStatus aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   iFsmImpl->Set (aParam);
+}
+
+void RPdpFsmInterface::Get(RPacketService::TStatus& aParam)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   iFsmImpl->Get (aParam);
+}
+
+TInt RPdpFsmInterface::GetLastErrorCause(TContextId aPdpId, TInt& aLastErrorCause) const
+{
+   if (iFsmImpl) 
+      {
+      return iFsmImpl->GetLastErrorCause (aPdpId, aLastErrorCause);
+      }
+      
+   return KErrNone;
+}
+
+const TName& RPdpFsmInterface::TsyName(void)
+{
+   __ASSERT_DEBUG (iFsmImpl != NULL, User::Panic( KNullDesC, KErrGeneral ));
+   return iFsmImpl->TsyName ();
+}
+	
+void RPdpFsmInterface::SetContextTerminationErrorAndStop(TContextId aPdpId, TInt aErrorCode)
+{
+   if (iFsmImpl) 
+      {
+      iFsmImpl->SetContextTerminationErrorAndStop (aPdpId, aErrorCode);
+      }
+}
+
+
+void RPdpFsmInterface::Init (const MPdpFsmInterface* aSpudMan)
+{
+   // This should only be getting set the once, but so long as its the same instance we'll let it slip
+   ASSERT (iFsmImpl == NULL || aSpudMan == iFsmImpl);
+   iFsmImpl = const_cast<MPdpFsmInterface*>(aSpudMan);
+}
+
+
+
+
+