diff -r 000000000000 -r af10295192d8 linklayercontrol/networkinterfacemgr/src/IF_INT.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayercontrol/networkinterfacemgr/src/IF_INT.CPP Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,185 @@ +// Copyright (c) 1997-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: +// + +/** + @file IF_INT.CPP +*/ + +#include +#include "NI_STD.H" +#include + + +// +// CNifIfFactory default implementations +// + +EXPORT_C CNifIfBase* CNifIfFactory::NewInterfaceL(const TDesC& aName, MNifIfNotify* /*aNotify*/) +/** + * Create a new instance of the nif contained within this DLL, passing in the interface to nifman for nifs that need the MNifIfNotify pointer for early initialisation (eg: for CommDb access). + * @note This should only be used as a temporary method of stacking nifs, where the commdb access is used to find out which additional nif to load + * @param aName The name of the nif instance to create + * @since v7.0s + */ + { + return NewInterfaceL(aName); // By default, call the standard NewInterfaceL() virtual + } + + +// +// CNifIfBase default implementations +// + +EXPORT_C CNifIfBase::CNifIfBase(CNifIfFactory& aFactory) +/** +Constructor + */ + : iFactory(&aFactory) + { + + iFactory->Open(); + } + +EXPORT_C CNifIfBase::CNifIfBase(CNifIfLink& aLink) +/** +Constructor + */ + : iFactory(aLink.iFactory), iNotify(aLink.iNotify) + { + + iFactory->Open(); + } + +EXPORT_C CNifIfBase::CNifIfBase() +/** +Constructor + */ + { + + } + +EXPORT_C CNifIfBase::~CNifIfBase() +/** +Destructor +*/ + { + + if(iFactory) + iFactory->Close(); + } + +EXPORT_C void CNifIfBase::Open() +/** +Increment reference count +*/ + { + ++iRefCount; + } + + +EXPORT_C void CNifIfBase::Close() +/** +Decrement reference count +*/ + { + + --iRefCount; + __ASSERT_DEBUG(iRefCount>=0, Panic(ENifManPanic_NegativeCloseCount)); + if(iRefCount<=0) + delete this; + } + +EXPORT_C void CNifIfBase::Cleanup(TAny* aIf) +/** +Clean up an interface +*/ + { + + ((CNifIfBase*)aIf)->Close(); + } + + +EXPORT_C void CNifIfBase::BindL(TAny* /*aId*/) +/** + * Bind to the protocol layer (store the pointer to the CProtocolBase object) + * @param aId A pointer to the protocol layer (should be cast to a CProtocolBase object) + */ + { + + } + +EXPORT_C TInt CNifIfBase::Control(TUint /*aLevel*/, TUint /*aName*/, TDes8& /*aOption*/, TAny* /*aSource*/) +/** + * Control function for additional control of the nif + * @param aLevel The intended level for this control option + * @param aName The name of the control option + * @param aOption Any data associated with this control option, contained within a TPckg(Buf) + * @param aSource If provided, an identifier for the source of the control option; by default, zero + * @return KErrNone if successful; otherwise one of the standard Symbian OS error codes + */ + { + return KErrNotSupported; + } + +EXPORT_C TInt CNifIfBase::State() +/** + * Return the current state of the interface + * @return A TIfStatus indicating the current state of the interface + * @note Return interface as being up for BC + * @since v2.0? + */ + { + // Panic as each nif should implement this method, however, for BC reasons this cannot be made pure virtual + __ASSERT_DEBUG(ETrue, Panic(ENifManPanic_IncorrectNifOperation)); + return TInt(EIfUp); + } + + +// +// CNifIfLink default implementations +// + +EXPORT_C CNifIfLink::CNifIfLink(CNifIfFactory& aFactory) +/** + * + */ + : CNifIfBase(aFactory) +/** +Constructor +*/ + { + } + +EXPORT_C void CNifIfLink::AuthenticateComplete(TInt /*aResult*/) +/** + * Indicate that the data returned by MNifIfNotify::Authenticate() is now valid + * @note This function is unused because [*** to do ***] + * @param aResult The error code, if any, from fetching the authentication data + */ + { + } + +EXPORT_C void CNifIfLink::Restart(CNifIfBase* /*aIf*/) +/** + * Do nothing, as nifs do not have to support binder layer restart functionality + * @note Obviously if a nif does support binder layer restart, then it should overload this method + * @param aIf Pointer to the CNifIfBase binder layer to restart + */ + { + } + + + +