--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/cmmapi/src/cmdestinationapi.cpp Mon May 03 12:53:07 2010 +0300
@@ -0,0 +1,416 @@
+/*
+* Copyright (c) 2009-2010 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:
+* Client side IPC handling for Connection Method Manager server.
+*
+*/
+
+
+#include "cmmserverdefs.h"
+#include "cmdestinationapi.h"
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmdestinationapiTraces.h"
+#endif
+
+
+RCmDestinationApi::RCmDestinationApi()
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_RCMDESTINATIONAPI_ENTRY );
+ iSessionConnected = EFalse;
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_RCMDESTINATIONAPI_EXIT );
+ }
+
+TBool RCmDestinationApi::SessionConnected()
+ {
+ return iSessionConnected;
+ }
+
+void RCmDestinationApi::ConnectAndGetDestWithIdL(
+ const RSessionBase& aSession,
+ const TUint32 aId,
+ TInt& aExistingHandle )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CONNECTANDGETDESTWITHIDL_ENTRY );
+
+ if ( iSessionConnected )
+ {
+ User::Leave( KErrAlreadyExists );
+ }
+
+ aExistingHandle = 0;
+ TPckg<TInt> pckg( aExistingHandle );
+ TIpcArgs args( aId, &pckg );
+ TInt result = CreateSubSession( aSession, EDestGetDestination, args );
+ if ( !aExistingHandle )
+ {
+ User::LeaveIfError( result );
+ iSessionConnected = ETrue;
+ }
+ else
+ {
+ if ( result != KErrAlreadyExists )
+ {
+ User::Leave( result );
+ }
+ }
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CONNECTANDGETDESTWITHIDL_EXIT );
+ }
+
+void RCmDestinationApi::ConnectAndCreateDestWithNameL(
+ const RSessionBase& aSession,
+ const TDesC& aName )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CONNECTANDCREATEDESTWITHNAMEL_ENTRY );
+
+ if ( iSessionConnected )
+ {
+ User::Leave( KErrAlreadyExists );
+ }
+ TIpcArgs args( &aName );
+ User::LeaveIfError( CreateSubSession( aSession, EDestCreateDestinationWithName, args ) );
+ iSessionConnected = ETrue;
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CONNECTANDCREATEDESTWITHNAMEL_EXIT );
+ }
+
+void RCmDestinationApi::ConnectAndCreateDestWithNameAndIdL(
+ const RSessionBase& aSession,
+ const TDesC& aName,
+ const TUint32 aId )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CONNECTANDCREATEDESTWITHNAMEANDIDL_ENTRY );
+
+ if ( iSessionConnected )
+ {
+ User::Leave( KErrAlreadyExists );
+ }
+ TIpcArgs args( &aName, aId );
+ User::LeaveIfError( CreateSubSession( aSession, EDestCreateDestinationWithNameAndId, args ) );
+ iSessionConnected = ETrue;
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CONNECTANDCREATEDESTWITHNAMEANDIDL_EXIT );
+ }
+
+void RCmDestinationApi::ConnectAndGetConnMethodAsEmbeddedDestL(
+ const RSessionBase& aSession,
+ const TInt aConnMethodHandle,
+ TInt& aExistingHandle )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CONNECTANDGETCONNMETHODASEMBEDDEDDESTL_ENTRY );
+
+ if ( iSessionConnected )
+ {
+ User::Leave( KErrAlreadyExists );
+ }
+
+ aExistingHandle = 0;
+ TPckg<TInt> pckg( aExistingHandle );
+ TIpcArgs args( aConnMethodHandle, &pckg );
+ TInt result = CreateSubSession( aSession, EDestGetEmbeddedDestination, args );
+ if ( !aExistingHandle )
+ {
+ User::LeaveIfError( result );
+ iSessionConnected = ETrue;
+ }
+ else
+ {
+ if ( result != KErrAlreadyExists )
+ {
+ User::Leave( result );
+ }
+ }
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CONNECTANDGETCONNMETHODASEMBEDDEDDESTL_EXIT );
+ }
+
+void RCmDestinationApi::Close()
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CLOSE_ENTRY );
+
+ if ( iSessionConnected )
+ {
+ CloseSubSession( EDestCloseDestination );
+ iSessionConnected = EFalse;
+ }
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CLOSE_EXIT );
+ }
+
+TInt RCmDestinationApi::ConnectionMethodCount( TInt& aCount )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_CONNECTIONMETHODCOUNT_ENTRY );
+
+ TPckg<TInt> pckg( aCount );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestGetConnMethodCount, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_CONNECTIONMETHODCOUNT_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::Priority( const TInt aHandle, TUint& aPriority )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_PRIORITY_ENTRY );
+
+ TPckg<TUint> pckg( aPriority );
+ TIpcArgs args( aHandle, &pckg );
+ TInt err = SendReceive( EDestGetConnMethodPriority, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_PRIORITY_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::GetName( HBufC* aBuffer )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_GETNAME_ENTRY );
+
+ TPtr descriptor( aBuffer->Des() );
+ TIpcArgs args( &descriptor );
+ TInt err = SendReceive( EDestGetName, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_GETNAME_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::GetId( TUint32& aId )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_GETID_ENTRY );
+
+ TPckg<TUint32> pckg( aId );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestGetId, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_GETID_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::GetElementId( TUint32& aElementId )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_GETELEMENTID_ENTRY );
+
+ TPckg<TUint32> pckg( aElementId );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestGetElementId, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_GETELEMENTID_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::GetMetadata(
+ const TUint32 aMetadataField,
+ TUint32& aValue )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_GETMETADATA_ENTRY );
+
+ TPckg<TUint32> pckg( aValue );
+ TIpcArgs args( aMetadataField, &pckg );
+ TInt err = SendReceive( EDestMetadata, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_GETMETADATA_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::GetProtectionLevel( TInt& aProtectionLevel )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_GETPROTECTIONLEVEL_ENTRY );
+
+ TPckg<TInt> pckg( aProtectionLevel );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestGetProtectionLevel, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_GETPROTECTIONLEVEL_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::AddConnectionMethod(
+ const TInt aConnMethodHandle,
+ TInt& aIndex )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_ADDCONNECTIONMETHOD_ENTRY );
+
+ TPckg<TInt> pckg( aIndex );
+ TIpcArgs args( aConnMethodHandle, &pckg );
+ TInt err = SendReceive( EDestAddConnMethod, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_ADDCONNECTIONMETHOD_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::AddEmbeddedDestination(
+ const TInt aDestHandle,
+ TInt& aIndex )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_ADDEMBEDDEDDESTINATION_ENTRY );
+
+ TPckg<TInt> pckg( aIndex );
+ TIpcArgs args( aDestHandle, &pckg );
+ TInt err = SendReceive( EDestAddEmbeddedDestination, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_ADDEMBEDDEDDESTINATION_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::DeleteConnectionMethod(
+ const TInt aConnMethodHandle )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_DELETECONNECTIONMETHOD_ENTRY );
+
+ TIpcArgs args( aConnMethodHandle );
+ TInt err = SendReceive( EDestDeleteConnMethod, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_DELETECONNECTIONMETHOD_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::RemoveConnectionMethod(
+ const TInt aConnMethodHandle )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_REMOVECONNECTIONMETHOD_ENTRY );
+
+ TIpcArgs args( aConnMethodHandle );
+ TInt err = SendReceive( EDestRemoveConnMethod, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_REMOVECONNECTIONMETHOD_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::ModifyPriority(
+ const TInt aConnMethodHandle,
+ const TUint aIndex )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_MODIFYPRIORITY_ENTRY );
+
+ TIpcArgs args( aConnMethodHandle, aIndex );
+ TInt err = SendReceive( EDestModifyPriority, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_MODIFYPRIORITY_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::SetName( const TDesC& aValue )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_SETNAME_ENTRY );
+
+ TIpcArgs args( &aValue );
+ TInt err = SendReceive( EDestSetName, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_SETNAME_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::SetMetadata(
+ const TUint32 aMetaField,
+ const TUint32 aValue )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_SETMETADATA_ENTRY );
+
+ TIpcArgs args( aMetaField, aValue );
+ TInt err = SendReceive( EDestSetMetadata, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_SETMETADATA_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::SetProtection( const TInt aValue )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_SETPROTECTION_ENTRY );
+
+ TIpcArgs args( aValue );
+ TInt err = SendReceive( EDestSetProtection, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_SETPROTECTION_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::SetHidden( const TBool aHidden )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_SETHIDDEN_ENTRY );
+
+ TIpcArgs args( aHidden );
+ TInt err = SendReceive( EDestSetHidden, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_SETHIDDEN_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::Update()
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_UPDATE_ENTRY );
+
+ TInt err = SendReceive( EDestUpdate );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_UPDATE_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::Refresh()
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_REFRESH_ENTRY );
+
+ TInt err = SendReceive( EDestRefresh );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_REFRESH_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::Delete()
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_DELETE_ENTRY );
+
+ TInt err = SendReceive( EDestDelete );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_DELETE_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::IsConnected( TBool& aResult )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_ISCONNECTED_ENTRY );
+
+ TPckg<TBool> pckg( aResult );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestIsConnected, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_ISCONNECTED_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::IsHidden( TBool& aResult )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_ISHIDDEN_ENTRY );
+
+ TPckg<TBool> pckg( aResult );
+ TIpcArgs args( &pckg );
+ TInt err = SendReceive( EDestIsHidden, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_ISHIDDEN_EXIT );
+ return err;
+ }
+
+TInt RCmDestinationApi::IsEqual( const TInt aHandle, TBool& aResult )
+ {
+ OstTraceFunctionEntry0( RCMDESTINATIONAPI_ISEQUAL_ENTRY );
+
+ TPckg<TBool> pckg( aResult );
+ TIpcArgs args( aHandle, &pckg );
+ TInt err = SendReceive( EDestIsEqual, args );
+
+ OstTraceFunctionExit0( RCMDESTINATIONAPI_ISEQUAL_EXIT );
+ return err;
+ }
+
+// End of file