natplugins/natpnatfwsdpprovider/tsrc/testconsole/inc/nsptestconsolecenrep.h
changeset 0 1bce908db942
--- /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 <centralrepository.h>
+#include <unsafprotocolscrkeys.h>
+
+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