--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/datacommsserver/networkingdialogapi/src/ND_DLGCL.CPP Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,408 @@
+// Copyright (c) 1997-2009 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:
+// Dial Up Networking Dialog Server - Client Side Source
+//
+//
+
+/**
+ @file ND_DLGCL.CPP
+*/
+
+#include "ND_DLGSV.H"
+
+
+/**
+PctNotifier & PctRead concurrent requests
+
+@internalComponent
+*/
+const TUint KNdDlgSvMessageSlots=2;
+
+#ifdef _DEBUG
+#define SETIFDEBUG(R,FUNCTION) TInt R = FUNCTION
+#else
+#define SETIFDEBUG(R,FUNCTION) FUNCTION
+#endif
+
+EXPORT_C RGenConAgentDialogServer::RGenConAgentDialogServer()
+ : RSessionBase(),
+ iNotifier(NULL),
+ iIAP(0),
+ iModemId(0),
+ iLocationId(0),
+ iConNames(TIspConnectionNames()),
+ iPrefs(TConnectionPrefs()),
+ iBool(EFalse),
+ iPctBuffer(0),
+ iPctResponse(TPctResponse()),
+ iAuthenticationPair(TAuthenticationPair()),
+ iNewIapPrefsBuffer(TNewIapConnectionPrefs()),
+ iNotUsed(0),
+ iStatus(0),
+ iAccessPoint(0)
+/**
+RGenConAgentDialogServer Constructor.
+*/
+ {
+// __FLOG_OPEN(KDlgSvrLogSubsys, KDlgCliLogComponent);
+ }
+
+EXPORT_C RGenConAgentDialogServer::~RGenConAgentDialogServer()
+/**
+Destructor.
+*/
+ {}
+
+EXPORT_C TInt RGenConAgentDialogServer::Connect()
+/**
+Connect to the server
+
+@return KErrNone if connection succeeded and a standard error code otherwise.
+*/
+ {
+ TInt ret = CreateSession(KCommsDialogServerName,Version(),KNdDlgSvMessageSlots);
+
+ if (ret!=KErrNone)
+ {
+ ret=StartDialogThread();
+// __FLOG_1(_L("RGenConAgentDialogServer::Connect: StartDialogThread returned %d"),ret);
+ if (ret!=KErrNone)
+ {
+ return(ret);
+ }
+
+ ret = CreateSession(KCommsDialogServerName,Version(),KNdDlgSvMessageSlots);
+// __FLOG_1(_L("RGenConAgentDialogServer::Connect: CreateSession returned %d"),ret);
+ }
+
+ return ret;
+ }
+
+EXPORT_C void RGenConAgentDialogServer::Close()
+/**
+Disconnect from the notifier server.
+*/
+ {
+ RHandleBase::Close();
+ }
+
+EXPORT_C TVersion RGenConAgentDialogServer::Version(void) const
+/**
+Return the client side version number.
+
+@return The API version.
+*/
+ {
+ return(TVersion(KDialogServMajorVersionNumber,KDialogServMinorVersionNumber,KDialogServBuildVersionNumber));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::ModemAndLocationSelection(TUint32 &aModemId,TUint32 &aLocationId, TRequestStatus &aStatus)
+/**
+Shows a dialog to enable the user to choose which modem and location to use for data transactions
+
+@param aModemId The id of of the record in the modem table to be used for data transactions
+@param aLocationId The id of the record in the location table to be used for the modem for data transactions
+@param aStatus Any error code, or KErrNone if no error
+*/
+ {
+ ::new(&iModemId) TPckg<TUint32>(aModemId);
+ ::new(&iLocationId) TPckg<TUint32>(aLocationId);
+ SendReceive(EGetModemAndLocation, TIpcArgs( &iModemId, &iLocationId), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::IapConnection(TUint32& aIAP, const TConnectionPrefs& aPrefs, TRequestStatus& aStatus)
+/**
+Shows a connection dialog when CommDb database is of IAP type.
+
+@param aIAP The id of the IAP service.
+@param aPrefs Specifies the rank and desired direction of the connection and bearer.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ IapConnection(aIAP, aPrefs, KErrNone, aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::IapConnection(TUint32& aIAP, const TConnectionPrefs& aPrefs, TInt aLastError, TRequestStatus& aStatus)
+/**
+Shows a connection dialog when CommDb database is of IAP type.
+
+@param aIAP The id of the IAP service.
+@param aPrefs Specifies the rank and desired direction of the connection and bearer.
+@param aLastError The error with which previous connection failed.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ ::new(&iIAP) TPckg<TUint32>(aIAP);
+ iPrefs() = aPrefs;
+
+ SendReceive(EGetIAP, TIpcArgs(&iIAP, &iPrefs, (TAny*)aLastError), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::WarnNewIapConnection(const TConnectionPrefs& aPrefs, TInt aLastError, const TDesC& aNewIapName, TBool& aResponse, TRequestStatus& aStatus)
+/**
+Shows a dialog warning when the CommDb database is of IAP type that the previous attempt to connect
+failed and that a new connection is to be attempted.
+
+@param aPrefs Specifies the rank and desired direction of the connection and bearer.
+@param aLastError The error with which previous connection failed.
+@param aNewIapName The name of the IAP to be used for next connection.
+@param aResponse Specifies whether to proceed with the connection or stop the connection attempt.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ iPrefs() = aPrefs;
+ iConNames().iServiceName = aNewIapName;
+ ::new(&iBool) TPckg<TBool>(aResponse);
+ SendReceive(EWarnNewIAP, TIpcArgs( &iPrefs, aLastError, &iConNames().iServiceName, &iBool ), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::Login(TDes& aUsername,TDes& aPassword,TBool aIsReconnect,TRequestStatus& aStatus)
+/**
+Shows a login dialog when login information for use with a script is required any the NetDial agent.
+
+@param aUsername Username.
+@param aPassword Password.
+@param aIsReconnect Whether this is a reconnect attempt or not
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ SendReceive(EGetLogin, TIpcArgs( &aUsername, &aPassword, (TAny*)aIsReconnect), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::Authenticate(TDes& aUsername,TDes& aPassword,TBool aIsReconnect,TRequestStatus& aStatus)
+/**
+Shows an authentication dialog when the NetDial agent requests PPP authentication information.
+
+@param aUsername Username.
+@param aPassword Password.
+@param aIsReconnect Whether this is a reconnect attempt or not
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ SendReceive(EGetAuthentication, TIpcArgs(&aUsername, &aPassword, (TAny*)aIsReconnect), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::Reconnect(TBool& aBool, TRequestStatus& aStatus)
+/**
+Shows a reconnect dialog when connection has been broken during data transfer.
+
+@param aResponse Specifies whether to reconnect or cancel the reconnection attempt.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ ::new(&iBool) TPckg<TBool>(aBool);
+
+ SendReceive(EGetReconnectReq, TIpcArgs( &iBool), aStatus);
+ }
+
+EXPORT_C TInt RGenConAgentDialogServer::OpenPct()
+/**
+Opens a Post Connect Terminal dialog.
+
+@return Any error code, or KErrNone if no error.
+*/
+ {
+ return SendReceive(EOpenPct, TIpcArgs(TIpcArgs::ENothing));
+ }
+
+EXPORT_C TInt RGenConAgentDialogServer::WritePct(const TDesC& aData)
+/**
+Called by NetDial agent to write incoming data into the PCT window.
+
+@param aData Incoming data.
+@return Any error code, or KErrNone if no error.
+*/
+ {
+ return SendReceive(EWritePct, TIpcArgs(&aData));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::ReadPct(TDes& aData, TRequestStatus& aStatus)
+/**
+Called by NetDial agent when the script indicates that user needs to enter some information.
+
+@param aData Data entered by user.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ SendReceive(EReadPct, TIpcArgs( &aData), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::DestroyPctNotification(TRequestStatus& aStatus)
+/**
+Used by the NetDial agent to request that if the user cancels the dialog, then the dialog gives
+notification of this.
+
+@param aStatus KErrNone if a cancel occurs, or error code otherwise.
+*/
+ {
+ SendReceive(EDestroyPctNotification, TIpcArgs(TIpcArgs::ENothing), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::ClosePct()
+/**
+Closes the Post Connect Terminal dialog.
+
+@panic ESvrClosePctReturnedError
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(EClosePct, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrClosePctReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::QoSWarning(TBool& aResponse, TRequestStatus& aStatus)
+/**
+Shows a dialog warning that the QoS of the connection has fallen below the minimum
+values specified in commdb. Expects a response from the dialog indicating if the
+connection is to be terminated.
+
+@param aResponse Specifies whether to terminate the connection or not i.e. ETrue means terminate connection
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ ::new(&iBool) TPckg<TBool>(aResponse);
+ SendReceive(EWarnQoS, TIpcArgs( &iBool), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelModemAndLocationSelection()
+/**
+Cancels the ModemAndLocation connection dialog.
+
+@panic ESvrCancelReturnedError.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelGetModemAndLocation, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelIapConnection()
+/**
+Cancels the IAP type connection dialog.
+
+@panic ESvrCancelReturnedError.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelGetIAP, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelWarnNewIapConnection()
+/**
+Cancels the IAP type new connection warning dialog.
+
+@panic ESvrCancelReturnedError Cancel WarnNewIapConnection.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelWarnIAP, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelLogin()
+/**
+Cancels the login dialog.
+
+@panic ESvrCancelReturnedError Request Cancel for Login.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelLogin, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelAuthenticate()
+/**
+Cancels the authentication.
+
+@panic ESvrCancelReturnedError.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelAuthenticate, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelReconnect()
+/**
+Cancels the reconnect dialog.
+
+@panic ESvrCancelReturnedError Cancel Reconnect Request.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelReconnect, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelReadPct()
+/**
+Cancels the Read Post Connect Terminal request.
+
+@panic ESvrCancelReturnedError Cancel Read Pct.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelReadPct, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelDestroyPctNotification()
+/**
+Cancels the Destroy Post Connect Terminal Notification request.
+
+@panic ESvrCancelReturnedError cancel Pct Notification.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelDestroyPctNotification, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelQoSWarning()
+/**
+Cancels the QoS warning dialog
+
+@panic ESvrCancelReturnedError Request Cancel from Server.
+*/
+ {
+ SETIFDEBUG(ret, SendReceive(ECancelWarnQoS, TIpcArgs(TIpcArgs::ENothing)));
+ __ASSERT_DEBUG(ret==KErrNone, PanicServer(ESvrCancelReturnedError));
+ }
+
+EXPORT_C void RGenConAgentDialogServer::AccessPointConnection(TUint32& aAccessPoint, TInt aAccessPointGroup, TRequestStatus& aStatus)
+/**
+Shows a connection dialog when connection preference is of an AP type.
+
+@param aAP The id of the access point.
+@param aStatus Any error code, or KErrNone if no error.
+*/
+ {
+ ::new(&iAccessPoint) TPckg<TUint32>(aAccessPoint);
+ SendReceive(EGetAccessPoint, TIpcArgs(&iAccessPoint,aAccessPointGroup), aStatus);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::CancelAccessPointConnection()
+/**
+Cancels the access point selection dialog.
+*/
+ {
+ SendReceive(ECancelGetAccessPoint);
+ }
+
+EXPORT_C void RGenConAgentDialogServer::AccessPointConnection(TUint32& aAP, TUint32 aAPType, TUint32& aBearerAPInd, TUint32 aBearerAPType, TRequestStatus& aStatus)
+/**
+Shows a connection dialog when connection preference is of an AP type filtered on bearer-related info.
+
+@param aAP The id of the access point.
+@param aStatus Any error code, or KErrNone if no error.
+@param aBearerAPType an optional filter parameter to limit the data displayed to the client.
+*/
+ {
+ ::new(&iAccessPoint) TPckg<TUint32>(aAP);
+ ::new(&iIAP) TPckg<TUint32>(aBearerAPInd);
+ SendReceive(EGetAccessPointAP, TIpcArgs(&iAccessPoint,aAPType, &iIAP, aBearerAPType), aStatus);
+ }