datacommsserver/esockserver/inc/ss_protprov.h
changeset 0 dfb7c4ff071f
equal deleted inserted replaced
-1:000000000000 0:dfb7c4ff071f
       
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 /**
       
    17  @file 
       
    18  @internalComponent 
       
    19 */
       
    20 
       
    21 #if !defined(SS_PROTPROV_H)
       
    22 #define SS_PROTPROV_H
       
    23 
       
    24 #include <e32def.h>
       
    25 #include <comms-infras/metadata.h>
       
    26 #include <es_ini.h>
       
    27 #include <comms-infras/ss_subconnflow.h>
       
    28 #include <ss_fact.h>
       
    29 
       
    30 class CServProviderBase;
       
    31 class CProtocolBase;
       
    32 class CProtocolFamilyBase;
       
    33 
       
    34 namespace ESock
       
    35 {
       
    36     
       
    37 //=======================================================================================
       
    38 const TInt KProtocolFamilyInterfaceUid = 0x102046A0;
       
    39 /** Types of an KProtocolFamilyInterfaceUid interface represented by CProtocolFamilyFactoryBase. 
       
    40 Could be exteded either by native types less than EProtocolFamilyFactoryPrivate or user types 
       
    41 greater than EProtocolFamilyFactoryPrivate
       
    42 @internalTechnology
       
    43 @released since 9.1
       
    44 */
       
    45 enum TProtocolFamilyImplementations
       
    46 	{
       
    47 	EIPEventNotifierFactoryId = 1,
       
    48 
       
    49 	EProtocolFamilyFactoryPrivate = 128
       
    50 	};
       
    51 
       
    52 class CProtocolFamilyFactoryContainer;
       
    53 class CProtocolFamilyFactoryBase : public CCommsFactoryBase
       
    54 /** Base class for all protocol families' provider factories. Specifies the interface
       
    55     that all protocol families' providers factories must implement. It also providers the
       
    56 	ECOM framework (via CCommsFactoryBase) to load sub-connection provider factories
       
    57 	from other Dynamic Linked Libraries.
       
    58 
       
    59 @internalTechnology
       
    60 @released Since 9.1 
       
    61 */
       
    62 	{
       
    63 	friend class CProtocolFamilyBase;
       
    64 public:
       
    65 	IMPORT_C static CProtocolFamilyFactoryBase* NewL(const TDesC8& aName, CProtocolFamilyFactoryContainer& aParentContainer);
       
    66 
       
    67 	IMPORT_C CProtocolBase* FindProtocol( TUint aProtocolId );
       
    68 
       
    69 protected:
       
    70 	IMPORT_C CProtocolFamilyFactoryBase(TUid aFactoryId, CProtocolFamilyFactoryContainer& aParentContainer);
       
    71 private:
       
    72 	IMPORT_C ACommsFactoryNodeId* DoCreateObjectL(TFactoryQueryBase& aQuery);
       
    73 //	CProtocolFamilyFactoryBase() {}
       
    74 	};
       
    75 
       
    76 class CProtocolFamilyFactoryContainer : public CCommsFactoryContainer
       
    77 /** Container for protocol families' providers
       
    78 
       
    79 @internalTechnology
       
    80 @released Since 9.1 */
       
    81 	{
       
    82 protected:
       
    83     enum
       
    84         {
       
    85         EId = EProtocolFamilyFactoryContainer
       
    86         };
       
    87 public:
       
    88 	static CProtocolFamilyFactoryContainer* NewL();
       
    89 	IMPORT_C CProtocolFamilyFactoryBase* FindOrCreateL(const TDesC8& aName, TUid aFactoryId);	
       
    90 	CProtocolFamilyFactoryBase* Get(TInt aIndex) const;	
       
    91 	~CProtocolFamilyFactoryContainer();
       
    92 	
       
    93 protected:
       
    94 	CProtocolFamilyFactoryContainer();
       
    95 	};
       
    96 
       
    97 } //namespace ESock
       
    98 
       
    99 #endif	
       
   100 // SS_PROTPROV_H
       
   101