diff -r 000000000000 -r af10295192d8 networkcontrol/iptransportlayer/inc/netmcprups.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/iptransportlayer/inc/netmcprups.h Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,111 @@ +// Copyright (c) 2007-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 + @internalTechnology + @prototype +*/ + +#ifndef SYMBIAN_NETMCPRUPS_H +#define SYMBIAN_NETMCPRUPS_H + +#define SYMBIAN_NETWORKING_UPS +#ifdef SYMBIAN_NETWORKING_UPS + +#include "netmcpr.h" + + +namespace NetUps + { + class CNetUps; + } + +// + +NONSHARABLE_CLASS(CUpsNetworkMetaConnectionProvider) : public CNetworkMetaConnectionProvider +/** +CUpsNetworkMetaConnectionProvider + +UPS specific support in NetMCpr base class. +*/ + { +public: + static CUpsNetworkMetaConnectionProvider* NewL(ESock::CMetaConnectionProviderFactoryBase& aFactory, + const ESock::TProviderInfo& aProviderInfo); + +public: + struct TUpsClientHandleRefCount + { + TUpsClientHandleRefCount(const Messages::TNodeId& aCommsId, TInt32 aCount) : iCommsId(aCommsId), iCount(aCount) {} + + Messages::TNodeId iCommsId; + TInt32 iCount; + }; + +public: + + // from CMetaConnectionProviderBase + void ShowAccessPointRecordL(CommsDat::CMDBSession* aSession, CommsDat::CCDAccessPointRecord* aApRec); + + // @TODO PREQ1116 - revisit (see TUpsProcessProviderStatusChange) + inline TBool ProviderStatusDown() const; + inline void SetProviderStatusDown(TBool aStatus); + + inline TBool UpsDisabled() const; + inline void SetUpsDisabled(TBool aUpsDisabled); + + inline const TDesC& ApName() const; // retrieve Access Point name + inline void SetApNameL(const TDesC& aApName); // store Access Point name + inline void FreeApName(); // free Access Point Name storage + + inline NetUps::CNetUps* NetUps(); + inline void SetNetUps(NetUps::CNetUps* aNetUps); + + inline TBool UpsControlClientPresent(); + inline void SetUpsControlClientPresent(); + + void CloseNetUps(); + + TBool FindUpsClientHandle(const Messages::TNodeId& aCommsId, TInt32& aIndex, TInt32& aCount); + void IncrementUpsClientHandle(const Messages::TNodeId& aCommsId); + void DecrementUpsClientHandle(const Messages::TNodeId& aCommsId, TBool& aAllHandlesDeleted); + void AddUpsClientCommsIdL(const Messages::TNodeId& aCommsId); + +protected: + CUpsNetworkMetaConnectionProvider(ESock::CMetaConnectionProviderFactoryBase& aFactory, + const ESock::TProviderInfo& aProviderInfo, + const MeshMachine::TNodeActivityMap& aActivityMap); + void ConstructL(); + + virtual ~CUpsNetworkMetaConnectionProvider(); + +private: + RBuf iApName; // Access Point record name + NetUps::CNetUps* iNetUps; + TInt iNetUpsRefCount; + TUint iProviderStatusDown:1; // Set if TProviderStatusChange "down" has been received + // @TODO PREQ1116 - hack - revisit (see TUpsProcessProviderStatusChange) + TUint iUpsDisabled:1; // Set if UPS has been disabled ("short circuited") + TUint iUpsControlClientPresent:1; // Indicates that the there are multiple UPS clients associated with this Node. + + RPointerArray iUpsClientHandleRefCount; + }; + +#include "netmcprups.inl" + +#endif //SYMBIAN_NETWORKING_UPS + +#endif //SYMBIAN_NETMCPRUPS_H