--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/rconfigdaemon.cpp Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,157 @@
+// Copyright (c) 2003-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:
+// CS_Daemon.CPP
+//
+//
+
+#include "rconfigdaemon.h"
+#include "rconfigdaemonmess.h"
+
+const TInt KConfigDaemonMajorVersionNumber = 2;
+const TInt KConfigDaemonMinorVersionNumber = 0;
+const TInt KConfigDaemonBuildVersionNumber = 0;
+
+
+TVersion RConfigDaemon::Version() const
+/**
+ * The RConfigDaemon::Version method
+ *
+ * Extract the version of the API
+ *
+ * @internalTechnology
+ *
+ * @return Version of the API
+ */
+ {
+ return TVersion(KConfigDaemonMajorVersionNumber,KConfigDaemonMinorVersionNumber,KConfigDaemonBuildVersionNumber);
+ }
+
+void RConfigDaemon::Configure(const TDes8& aInfo, TRequestStatus& aStatus )
+/**
+ * The RConfigDaemon::Connect method
+ *
+ * Connect the Handle to the Server
+ * Must be called before all other methods except Version()
+ *
+ * @internalTechnology
+ *
+ * @param aInfo The startup info for the connection
+ * @param aStatus The request status of the active object to be completed
+ *
+ * @return KErrNone if successful, otherwise the error that occurred
+ */
+ {
+ SendReceive(EConfigDaemonConfigure,TIpcArgs(&aInfo), aStatus);
+ }
+
+void RConfigDaemon::LinkLayerDown()
+/**
+ * Informs the daemon of the start of link layer renegotiation.
+ *
+ * @internalTechnology
+ *
+ * @param aStatus Active object iStatus to complete
+ */
+ {
+ Send(EConfigDaemonLinkLayerDown);
+ }
+
+void RConfigDaemon::LinkLayerUp()
+/**
+ * Informs the daemon of the completion of link layer renegotiation.
+ *
+ * @internalTechnology
+ *
+ * @param aStatus Active object iStatus to complete
+ */
+ {
+ Send(EConfigDaemonLinkLayerUp);
+ }
+
+void RConfigDaemon::Deregister(TInt aCause, TDes8* aActionStatus, TRequestStatus& aStatus)
+/**
+ * Issues a deregistration request.
+ *
+ * @internalTechnology
+ * @param aCause Specifies what caused the deregister call (idle timer or Stop call)
+ * @param aActionStatus Returns the action to be executed by Nifman
+ * (shut down the NIF and the agent or keep them up)
+ * @param aStatus Active object iStatus to complete
+ */
+ {
+ SendReceive(EConfigDaemonDeregister, TIpcArgs(aCause, aActionStatus), aStatus);
+ }
+
+void RConfigDaemon::ProgressNotification(TDaemonProgressBuf& aProgressBuf, TRequestStatus& aStatus)
+/**
+ * Issues a progress notification request. This request will be completed when the daemon has
+ * something to report.
+ *
+ * @internalTechnology
+ * @param aProgressBuf Returns the progress information
+ * @param aStatus Active object iStatus to complete
+ */
+ {
+ SendReceive(EConfigDaemonProgress, TIpcArgs(&aProgressBuf), aStatus);
+ }
+
+void RConfigDaemon::Ioctl(TUint aOptionLevel, TUint aOptionName, TRequestStatus& aStatus, TDes8* aDes)
+/**
+ * Issues an asynchronous command. Various option's levels & names could be supported
+ * by the loaded daemon
+ *
+ * @internalTechnology
+ * @return TInt An error code
+ * @param aOptionLevel - Control level
+ * @param aOptionName - Name of control request
+ * @param aStatus - active object iStatus to complete
+ * @param aOption - Buffer for data to be retrieved
+ */
+ {
+ SendReceive(EConfigDaemonIoctl, TIpcArgs(aOptionLevel, aOptionName, aDes, aDes ? aDes->MaxLength() : 0), aStatus);
+ }
+
+void RConfigDaemon::Cancel(TRequestStatus& aStatus)
+/**
+ * Cancels current request asynchronously =>
+ * just one request at the time could be issued see
+ * CNifConfigurationControl::StoreClientStatus functinon in NIFConfigurationControl.cpp
+ *
+ * @internalTechnology
+ * @param aStatus - active object iStatus to complete
+ * @return TInt An error code
+ */
+ {
+ //!!This async call assumes there will be always place in the daemon queue to send the
+ //cancel message. The msg queue is 10 requests long, each daemon processes one request at the
+ //time => dangerous situation occures when there'r running more than 3 different links, each
+ //configured by daemon, each having outstanding request
+ //and we cancel all of them at the same time. Very, very unlikely situation.
+ SendReceive(EConfigDaemonCancel, TIpcArgs(), aStatus);
+ }
+
+void RConfigDaemon::Cancel(TUint aOpMask, TRequestStatus& aStatus)
+/**
+ * Cancels an asynchronous operation. The operation to be canceled is specified
+ * in the mask.
+ *
+ * @internalTechnology
+ * @param aOpMask Specifies the operation to be canceled
+ * @param aStatus active object iStatus to complete
+ */
+ {
+ SendReceive(EConfigDaemonCancelMask, TIpcArgs(aOpMask), aStatus);
+ }
+
+