williamr@4: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: // All rights reserved. williamr@4: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@4: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: // williamr@4: // Initial Contributors: williamr@4: // Nokia Corporation - initial contribution. williamr@4: // williamr@4: // Contributors: williamr@4: // williamr@4: // Description: williamr@4: // SS_PROTBINDER.H williamr@4: // williamr@4: // williamr@4: williamr@4: /** williamr@4: @file williamr@4: @publishedPartner williamr@4: */ williamr@4: williamr@4: #if !defined(SS_PROTBINDER_H_INCLUDED_) williamr@4: #define SS_PROTBINDER_H_INCLUDED_ williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: struct TBinderInfo williamr@4: { williamr@4: TUint iFeatures; /** Feature flags */ williamr@4: TInt iMtu; /** Maximum transmission unit. */ williamr@4: TInt iRMtu; /** Maximum transmission unit for receiving. */ williamr@4: TInt iSpeedMetric; /** approximation of the interface speed in Kbps. */ williamr@4: private: williamr@4: TInt iReserved1; williamr@4: TInt iReserved2; williamr@4: }; williamr@4: williamr@4: class TBinderConfig : public Meta::SMetaData williamr@4: { williamr@4: public: williamr@4: TUint iFamily; /** KAfInet / KAfInet6 - selects TBinderConfig4/6 */ williamr@4: williamr@4: template williamr@4: static CONFIG* Cast(TBinderConfig& aConfig) williamr@4: { williamr@4: if(aConfig.GetTypeId().iType == CONFIG::ETypeId && aConfig.GetTypeId().iUid == TUid::Uid(CONFIG::EUid)) williamr@4: { williamr@4: CONFIG* config = &static_cast(aConfig); williamr@4: return config; williamr@4: } williamr@4: else williamr@4: { williamr@4: return NULL; williamr@4: } williamr@4: } williamr@4: }; williamr@4: williamr@4: class TBinderConfig4 : public TBinderConfig williamr@4: { williamr@4: public: williamr@4: TBinderInfo iInfo; williamr@4: TInetAddr iAddress; /** Interface IP address. */ williamr@4: TInetAddr iNetMask; /** IP netmask. */ williamr@4: TInetAddr iBrdAddr; /** IP broadcast address. */ williamr@4: TInetAddr iDefGate; /** IP default gateway or peer address (if known). */ williamr@4: TInetAddr iNameSer1; /** IP primary name server (if any). */ williamr@4: TInetAddr iNameSer2; /** IP secondary name server (if any). */ williamr@4: williamr@4: enum williamr@4: { williamr@4: EUid = 0x101F7482, williamr@4: ETypeId = 1, williamr@4: }; williamr@4: williamr@4: public: williamr@4: EXPORT_DATA_VTABLE_AND_FN williamr@4: }; williamr@4: williamr@4: class TBinderConfig6 : public TBinderConfig williamr@4: { williamr@4: public: williamr@4: TBinderInfo iInfo; williamr@4: TSockAddr iLocalId; williamr@4: TSockAddr iRemoteId; williamr@4: TInetAddr iNameSer1; williamr@4: TInetAddr iNameSer2; williamr@4: williamr@4: williamr@4: enum williamr@4: { williamr@4: EUid = 0x101F7482, williamr@4: ETypeId = 2, williamr@4: }; williamr@4: williamr@4: public: williamr@4: EXPORT_DATA_VTABLE_AND_FN williamr@4: }; williamr@4: williamr@4: #endif // SS_PROTBINDER_H_INCLUDED_ williamr@4: