diff -r 000000000000 -r 1bce908db942 natplugins/natpnatfwsdpprovider/tsrc/testconsole/inc/nsptestconsolecenrep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/natplugins/natpnatfwsdpprovider/tsrc/testconsole/inc/nsptestconsolecenrep.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2008 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: +* +*/ + +#ifndef NSPTESTCONSOLECENREP_H +#define NSPTESTCONSOLECENREP_H + +#include +#include + +class TCenrepKeys + { +public: // Methods + + inline TUint32 DomainKey() + { + return KUNSAFProtocolsDomainMask; + } + + inline TUint32 IapKey() + { + return KUNSAFProtocolsIAPIdMask; + } + + inline TUint32 DomainSpecificAprotocol() + { + return KUNSAFProtocolsUsedNATProtocolMask; + } + + inline TUint32 DomainSpecificStunSrvAddr() + { + return KUNSAFProtocolsSTUNServerMask; + } + + inline TUint32 DomainSpecificStunSrvPort() + { + return KUNSAFProtocolsSTUNServerPortMask; + } + }; + +class TCenrepReader : private TCenrepKeys +{ +public: // Methods + + inline TCenrepReader( CRepository& aCenrep ) + : iCenrep( aCenrep ) + { + } + + inline CRepository& Cenrep() + { + return iCenrep; + } + + inline void ReadDomainL( TDes& aBuffer ) + { + TBuf8<255> buffer; + ReadDomainL( buffer ); + aBuffer.Copy( buffer ); + } + + inline void ReadDomainL( TDes8& aBuffer ) + { + if ( KErrNotFound == iCenrep.Get( DomainKey(), aBuffer ) ) + { + aBuffer.Zero(); + User::LeaveIfError( iCenrep.Create( DomainKey(), aBuffer ) ); + } + } + + inline void ReadIapL( TUint32& aIap ) + { + TInt value( 0 ); + + if ( KErrNotFound == iCenrep.Get( IapKey(), value ) ) + { + aIap = 0; + User::LeaveIfError( iCenrep.Create( IapKey(), value ) ); + } + + aIap = (TUint32) value; + } + + inline void ReadAProtocolL( TDes& aBuffer ) + { + TBuf8<255> buffer; + ReadAProtocolL( buffer ); + aBuffer.Copy( buffer ); + } + + inline void ReadAProtocolL( TDes8& aBuffer ) + { + const TUint32 key = DomainSpecificAprotocol(); + + if ( KErrNotFound == iCenrep.Get( key, aBuffer ) ) + { + aBuffer.Zero(); + User::LeaveIfError( iCenrep.Create( key, aBuffer ) ); + } + } + + inline void ReadStunSrvAddrL( TDes& aBuffer ) + { + TBuf8<255> buffer; + ReadStunSrvAddrL( buffer ); + aBuffer.Copy( buffer ); + } + + inline void ReadStunSrvAddrL( TDes8& aBuffer ) + { + const TUint32 key = DomainSpecificStunSrvAddr(); + + if ( KErrNotFound == iCenrep.Get( key, aBuffer ) ) + { + aBuffer.Zero(); + User::LeaveIfError( iCenrep.Create( key, aBuffer ) ); + } + } + + inline void ReadStunSrvPortL( TUint& aPort ) + { + const TUint32 key = DomainSpecificStunSrvPort(); + TInt value( 0 ); + + if ( KErrNotFound == iCenrep.Get( key, value ) ) + { + aPort = 0; + User::LeaveIfError( iCenrep.Create( key, value ) ); + } + + aPort = (TUint) value; + } + +private: // data + + CRepository& iCenrep; +}; + +class TCenrepWriter : private TCenrepKeys +{ +public: // Methods + + inline TCenrepWriter( CRepository& aCenrep ) + : iCenrep( aCenrep ) + { + } + + inline CRepository& Cenrep() + { + return iCenrep; + } + + inline void WriteDomainL( const TDesC& aBuffer ) + { + TBuf8<255> buffer; + buffer.Copy( aBuffer ); + WriteDomainL( buffer ); + } + + inline void WriteDomainL( const TDesC8& aBuffer ) + { + if ( KErrNotFound == iCenrep.Set( DomainKey(), aBuffer ) ) + { + User::LeaveIfError( iCenrep.Create( DomainKey(), aBuffer ) ); + } + } + + inline void WriteIapL( TUint32 aIap ) + { + TInt value = (TInt) aIap; + + if ( KErrNotFound == iCenrep.Set( IapKey(), value ) ) + { + User::LeaveIfError( iCenrep.Create( IapKey(), value ) ); + } + } + + inline void WriteAProtocolL( const TDesC& aBuffer ) + { + TBuf8<255> buffer; + buffer.Copy( aBuffer ); + WriteAProtocolL( buffer ); + } + + inline void WriteAProtocolL( const TDesC8& aBuffer ) + { + const TUint32 key = DomainSpecificAprotocol(); + + if ( KErrNotFound == iCenrep.Set( key, aBuffer ) ) + { + User::LeaveIfError( iCenrep.Create( key, aBuffer ) ); + } + } + + inline void WriteStunSrvAddrL( const TDesC& aBuffer ) + { + TBuf8<255> buffer; + buffer.Copy( aBuffer ); + WriteStunSrvAddrL( buffer ); + } + + inline void WriteStunSrvAddrL( const TDesC8& aBuffer ) + { + const TUint32 key = DomainSpecificStunSrvAddr(); + + if ( KErrNotFound == iCenrep.Set( key, aBuffer ) ) + { + User::LeaveIfError( iCenrep.Create( key, aBuffer ) ); + } + } + + inline void WriteStunSrvPortL( TUint aPort ) + { + const TUint32 key = DomainSpecificStunSrvPort(); + TInt value = (TInt) aPort; + + if ( KErrNotFound == iCenrep.Set( key, value ) ) + { + User::LeaveIfError( iCenrep.Create( key, value ) ); + } + } + +private: // data + + CRepository& iCenrep; +}; + +#endif // NSPTESTCONSOLECENREP_H