diff -r 000000000000 -r dfb7c4ff071f datacommsserver/esockserver/inc/ss_tiermanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/inc/ss_tiermanager.h Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,115 @@ +// Copyright (c) 2006-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 + @publishedPartner + @released +*/ + +#ifndef SYMBIAN_SS_TIER_MANAGER_H +#define SYMBIAN_SS_TIER_MANAGER_H + +#include +#include +#include + +namespace ESock +{ + +class CTierManagerFactoryContainer; + +// +//CTierManagerBase +class CTierManagerFactoryBase; +class CTierManagerBase : public CBase, public ACommsFactoryNodeId, public ACFMMNodeBase, + public TCFTierManager +/** Base class for a meta connection provider. +*/ + { + friend class CTierManagerFactoryBase; +public: + /** + @return the uid for the tier + */ + IMPORT_C TUid TierId() const; + IMPORT_C TUid TierImplId()const; + const RPointerArray& GetMetaConnectionProviders() const {return iMetaConnectionProviders;} + IMPORT_C void AddMetaConnectionProviderL(const CMetaConnectionProviderBase* aMetaConnectionProvider); + IMPORT_C void RemoveMetaConnectionProvider(const CMetaConnectionProviderBase* aMetaConnectionProvider); + +public: + virtual TBool HandleContentionL(CMetaConnectionProviderBase* aMcpr, Messages::TNodeId& aPendingCprId, TUint aPriority) = 0; + virtual TBool IsUnavailableDueToContention(const CMetaConnectionProviderBase* aMetaConnectionProvider) const = 0; + + const Messages::TNodeId& Id () const + { + return ANodeId::Id (); + } + +protected: + IMPORT_C CTierManagerBase(CTierManagerFactoryBase& aFactory, const MeshMachine::TNodeActivityMap& aActivityMap); + IMPORT_C virtual ~CTierManagerBase(); + IMPORT_C virtual NetInterfaces::TInterfaceControl* FetchNodeInterfaceControlL(TInt aInterfaceId); +protected: + RPointerArray iMetaConnectionProviders; + }; + +// +//Factories - base +class CTierManagerFactoryBase : public CCommsFactoryBase +/** Base class for selection resolver factories. Specifies the interface + that selection resolver factories must implement. +*/ + { + friend class CTierManagerFactoryContainer; +public: + /** + Destructor + */ + IMPORT_C virtual ~CTierManagerFactoryBase(); + IMPORT_C TUid TierTypeId() const; + +protected: + /** + @param aFactoryUid Uid of the factory being created + @param aParentContainer Factory container within which the factory is being created + */ + IMPORT_C CTierManagerFactoryBase(TUid aTierTypeId, TUid aFactoryUid, CTierManagerFactoryContainer& aParentContainer); + + /** + Create object + @param aQuery Parameters with which to create object + @return The node id of the created object + */ + IMPORT_C virtual ACommsFactoryNodeId* DoCreateObjectL(TFactoryQueryBase& aQuery); + + /** + Find or create object + @param aQuery Parameters with which to find or create the object + @return The node id of the found or created object + */ + IMPORT_C virtual ACommsFactoryNodeId* DoFindOrCreateObjectL(TFactoryQueryBase& aQuery); +protected: + TUid iTierTypeId; + }; + +} //namespace ESock + + + +#endif //SYMBIAN_SS_TIER_MANAGER_H + +