Symbian3/SDK/Source/GUID-82499F0B-2791-59B6-9BAE-F9F87234FBF1.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 15:24:34 +0100
changeset 9 59758314f811
parent 7 51a74ef9ed63
permissions -rw-r--r--
Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"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: 
-->
<!DOCTYPE task
  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="GUID-82499F0B-2791-59B6-9BAE-F9F87234FBF1" xml:lang="en"><title>Implementing
a NifMan Daemon Tutorial</title><shortdesc>This topic describes the steps involved in implementing a NifMan
Daemon. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
<context id="GUID-7EC934F1-F965-49D7-A029-52F7154C75EC"><p>Daemons are loaded when a connection is started that requires
network layer configuration. The ECom configuration daemon manager used for
a connection is specified in the <xref href="GUID-F0251041-3AFA-3FD1-88C7-10FB5E98F28B.dita"><apiname>SERVICE_CONFIG_DAEMON_MANAGER_NAME</apiname></xref> field
in the <xref href="GUID-BD971173-E009-58DA-AF9C-F4AAFF77B138.dita">Comms Database</xref> Dial
Out ISP and GPRS Packet Service tables. The daemon server used for a connection
is specified in the <xref href="GUID-2768D204-6FA4-3D07-91E8-D1963FFE028D.dita"><apiname>SERVICE_CONFIG_DAEMON_NAME</apiname></xref> field in
the CommDb Dial Out ISP and GPRS Packet Service tables. </p> <p>To implement a configuration daemon, you must write a Symbian platform
server for more information see <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">Using
Client/Server</xref>. </p> <p>The name of the server in <xref href="GUID-D75692B1-FB2C-3893-9CF1-33BD02BBC63F.dita#GUID-D75692B1-FB2C-3893-9CF1-33BD02BBC63F/GUID-5D37DC05-93BC-3ED0-87EC-B500ADF55526"><apiname>CServer::Start()</apiname></xref> must
match the name used in the CommDb <xref href="GUID-2768D204-6FA4-3D07-91E8-D1963FFE028D.dita"><apiname>SERVICE_CONFIG_DAEMON_NAME</apiname></xref> field. </p> <p>The
following <codeph>ServiceL()</codeph> implementation tests for these messages
types and calls functions: </p> <codeblock id="GUID-8E8F8E53-5D7E-583D-8341-1C6658A2B5FE" xml:space="preserve">void CEgConfigDaemonSession::ServiceL(const RMessage2&amp; aMessage)
  {
  switch (aMessage.Function())
    {
  case EConfigDaemonConfigure:
    ConfigureL(aMessage);
    break;
  case EConfigDaemonDeregister:
    DeregisterL(aMessage);
    break;
  case EConfigDaemonLinkLayerDown:
    LinkLayerDownL(aMessage);
    break;
  case EConfigDaemonLinkLayerUp:
    LinkLayerUpL(aMessage);
    break;
  case EConfigDaemonProgress:
    ProgressL(aMessage);
    break;
  case EConfigDaemonIoctl:
    IoctlL(aMessage);
    break;
  case EConfigDaemonCancel:
    Cancel(aMessage);
    break;
  case EConfigDaemonCancelMask:
    CancelMask(aMessage);
    break;
  default:
    User::Leave(KErrNotSupported);
    break;
    }
  }</codeblock> <p>For more information about the message types see <xref href="GUID-B380482B-CF42-50BF-B09C-F4B3BDAA1679.dita">What are the daemon message
types?</xref>  </p> </context>
</taskbody><related-links>
<link href="GUID-F8482AFB-BD49-5EF2-8092-EAA11862F9C4.dita"><linktext>What is Network
Interface Management (NifMan)?</linktext></link>
<link href="GUID-BF4E220C-2388-517B-87D8-78AB1EA6382E.dita"><linktext>Architecture</linktext>
</link>
<link href="GUID-9F96807F-25DC-5DE1-B327-3E339665FF64.dita"><linktext>Reference</linktext>
</link>
</related-links></task>