phoneclientserver/phoneclient/Src/ExtCall/RPhCltExtCall.cpp
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneclientserver/phoneclient/Src/ExtCall/RPhCltExtCall.cpp	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2002-2004 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:  Ext Call
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "RPhCltServer.h"
+#include    "RPhCltExtCall.h"
+#include    "TPhCltExtPhoneDialData.h"
+#include    "PhCltClientServer.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::RPhCltExtCall
+// C++ constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+RPhCltExtCall::RPhCltExtCall() 
+    : RSubSessionBase(), iArgs( TPhCltCallArgs() )
+    {    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::Open
+// 
+// Creates a subsession, as part of the given session.
+// -----------------------------------------------------------------------------
+//
+TInt RPhCltExtCall::Open( RPhCltServer& aServer )
+    {
+    __ASSERT_ALWAYS( aServer.Handle(), User::Panic( 
+        KPhClientPanicCategory, 
+        EPhCltClientSidePanicNullHandle ) );
+
+    return CreateSubSession( 
+        aServer, 
+        EPhoneServerExtCallSubSessionOpen, 
+        TIpcArgs() );
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::Close
+// 
+// Closes the subsession.
+// -----------------------------------------------------------------------------
+//
+void RPhCltExtCall::Close()
+    {
+    CloseSubSession( EPhoneServerExtCallSubSessionClose );
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::Dial
+// 
+// Sends a dial request to the server.
+// -----------------------------------------------------------------------------
+//
+void RPhCltExtCall::Dial( 
+    TRequestStatus& aStatus, 
+    const TPhCltTelephoneNumber& aNumber,
+    const TPhCltNameBuffer& aName,
+    const TInt aWindowGroupId,
+    const TInt aRedial,
+    const TPhCltContactId aContactId,
+    const TBool aAllowNumberShowing )    
+    {
+    __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( 
+        KPhClientPanicCategory,
+        EPhCltClientSidePanicNullHandle ) );
+
+    // Populate a temporary arguments package
+    TPhCltExtPhoneDialData args( aName, aNumber, aContactId, aWindowGroupId );
+    args.SetRedial( aRedial );
+    args.SetShowNumber( aAllowNumberShowing );
+    
+    // Do the dial
+    Dial( aStatus, args );
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::Dial
+// 
+// Sends a dial request to the server.
+// -----------------------------------------------------------------------------
+//
+void RPhCltExtCall::Dial( 
+    TRequestStatus& aStatus, 
+    const TPhCltExtPhoneDialData& aData )
+    {
+    __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( KPhClientPanicCategory,
+        EPhCltClientSidePanicNullHandle ) );
+    
+    // Save the arguments
+    TPhCltCallArgs args;
+    aData.AsIPCStruct( args );
+    iArgs() = args;
+
+    // Request the dial
+    SendReceive( 
+        EPhoneServerExtCallSubSessionMakeCall, 
+        TIpcArgs( &iArgs ), 
+        aStatus );
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhCltExtCall::CancelDial
+// 
+// Cancels the pending dial request.
+// -----------------------------------------------------------------------------
+//
+void RPhCltExtCall::CancelDial() const
+    {
+    __ASSERT_ALWAYS( const_cast< RPhCltExtCall* >( this )->SubSessionHandle(), 
+        User::Panic( 
+            KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) );
+
+    SendReceive( 
+        EPhoneServerExtCallSubSessionMakeCallCancel, 
+        TIpcArgs() );
+    }
+
+
+//  End of File