datacommsserver/esockserver/inc/es_sock_partner.h
changeset 0 dfb7c4ff071f
child 9 77effd21b2c9
equal deleted inserted replaced
-1:000000000000 0:dfb7c4ff071f
       
     1 // Copyright (c) 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  @publishedPartner
       
    19  @released
       
    20 */
       
    21 
       
    22 
       
    23 #if !defined(__ES_SOCK_PARTNER_H__)
       
    24 #define __ES_SOCK_PARTNER_H__
       
    25 
       
    26 
       
    27 #include <e32base.h>
       
    28 #include <es_sock.h>
       
    29 
       
    30 
       
    31 /**
       
    32 @publishedPartner
       
    33 @released
       
    34 */
       
    35 
       
    36 const TUint KCOLConnection = 1;						// level for RConnection::Control()
       
    37 const TUint KCOLProvider = 2;						// level for RConnection::Control()
       
    38 const TUint KConnInternalOptionBit = 0x80000000;	// Must not be set for client requests
       
    39 const TUint KConnWriteUserDataBit = 0x40000000;
       
    40 const TUint KConnReadUserDataBit = 0x20000000;
       
    41 
       
    42 /**
       
    43 Level for RConnection::Control()
       
    44 
       
    45 @publishedPartner
       
    46 @deprecated in 8.1
       
    47 @capability NetworkControl Restrict access to connection clients
       
    48 @ref RConnection::Control()
       
    49 */
       
    50 const TUint KCoEnumerateConnectionClients  =  1 | (KConnWriteUserDataBit | KConnReadUserDataBit);
       
    51 
       
    52 /**
       
    53 Level for RConnection::Control()
       
    54 Information about client
       
    55 
       
    56 @publishedPartner
       
    57 @deprecated in 8.1
       
    58 @capability NetworkControl Restrict access to connection client info
       
    59 @ref RConnection::Control()
       
    60 */
       
    61 const TUint KCoGetConnectionClientInfo     =  2 | (KConnWriteUserDataBit | KConnReadUserDataBit);
       
    62 
       
    63 const TUint KCoEnumerateConnectionSockets  =  3 | (KConnWriteUserDataBit | KConnReadUserDataBit);
       
    64 
       
    65 /**
       
    66 Level for RConnection::Control()
       
    67 Information about connected socket
       
    68 
       
    69 @publishedPartner
       
    70 @deprecated
       
    71 @capability NetworkControl Restrict access to socket info on a connection
       
    72 @ref RConnection::Control()
       
    73 */
       
    74 const TUint KCoGetConnectionSocketInfo     =  4 | (KConnWriteUserDataBit | KConnReadUserDataBit);
       
    75 
       
    76 
       
    77 /**
       
    78 Setting only: enable processes to "clone" open this RConnection instance via a call to
       
    79 RConnection::Open(..., TName&), as long as they conform to the security policy
       
    80 passed as argument (specified as a TSecurityPolicyBuf).
       
    81 @internalTechnology
       
    82 */
       
    83 const TUint KCoEnableCloneOpen				= 5 | (KConnReadUserDataBit);
       
    84 
       
    85 /**
       
    86 Setting only: disable "clone" open of this RConnection instance, which was enabled via
       
    87 a previous KCoEnableCloneOpen option.
       
    88 @internalTechnology
       
    89 */
       
    90 const TUint KCoDisableCloneOpen				= 6 | (KConnReadUserDataBit);
       
    91 
       
    92 
       
    93 
       
    94 class RParameterFamilyBundle;
       
    95 class CSubConParameterBundle : public CObject
       
    96 /** Container for (bundle of) SubConnection parameter families.
       
    97 
       
    98 May contain and 0..N parameter families.
       
    99 
       
   100 Note:
       
   101 If the CSubConParameterBundle object takes ownership of any CSubConParameterFamily object, 
       
   102 then when the bundle object is destroyed, any family owned by this object will also be 
       
   103 destroyed.
       
   104 
       
   105 THIS API IS DEPRECATED IN FAVOUR OF RParameterFamilyBundle
       
   106 
       
   107 @publishedPartner
       
   108 @deprecated since v9.6 */
       
   109 	{
       
   110 	friend class RSubConParameterBundle;
       
   111 public:
       
   112 	IMPORT_C static CSubConParameterBundle* NewL();
       
   113 	IMPORT_C static CSubConParameterBundle* LoadL(TDesC8& aDes);
       
   114 	
       
   115 	IMPORT_C ~CSubConParameterBundle();
       
   116 
       
   117 	IMPORT_C TUint Length() const;
       
   118 	IMPORT_C TInt Load(const TDesC8& aDes);
       
   119 	IMPORT_C TInt Store(TDes8& aDes) const;
       
   120 	IMPORT_C void AddFamilyL(CSubConParameterFamily* aFamily);
       
   121 	IMPORT_C CSubConParameterFamily* FindFamily(TUint32 aFamilyId);
       
   122 	IMPORT_C CSubConParameterFamily* FindFamily(TUint32 aFamilyId) const;
       
   123 	IMPORT_C void ClearAllParameters(CSubConParameterFamily::TParameterSetType aType);
       
   124 
       
   125 protected:
       
   126 	IMPORT_C CSubConParameterBundle();
       
   127 
       
   128 private:
       
   129 	CSubConParameterBundle(const CSubConParameterBundle& aBundle);
       
   130 	CSubConParameterBundle& operator=(const CSubConParameterBundle& aBundle);
       
   131 
       
   132 protected:
       
   133 	RPointerArray<CSubConParameterFamily> iFamilies;
       
   134 	};
       
   135 
       
   136 #endif // __ES_SOCK_PARTNER_H__
       
   137