This topic describes the steps involved in implementing a NifMan Daemon.
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 SERVICE_CONFIG_DAEMON_MANAGER_NAME field in the Comms Database Dial Out ISP and GPRS Packet Service tables. The daemon server used for a connection is specified in the SERVICE_CONFIG_DAEMON_NAME field in the CommDb Dial Out ISP and GPRS Packet Service tables.
To implement a configuration daemon, you must write a Symbian platform server for more information see Using Client/Server.
The name of the server in CServer::Start() must match the name used in the CommDb SERVICE_CONFIG_DAEMON_NAME field.
The following ServiceL() implementation tests for these messages types and calls functions:
void CEgConfigDaemonSession::ServiceL(const RMessage2& 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; } }
For more information about the message types see What are the daemon message types?