Re: [Cppcms-users] Design decision
Brought to you by:
artyom-beilis
From: Artyom B. <art...@ya...> - 2012-10-04 09:20:42
|
>________________________________ > From: Christian Gmeiner <chr...@gm...> >To: cpp...@li... >Sent: Thursday, October 4, 2012 11:01 AM >Subject: [Cppcms-users] Design decision > >Hi all. > >My cppcms based web application is in a quite good shape and I got >some ideas what >new features could be added. > >+ Detection of networking changes via PF_NETLINK socket > >At the moment it is possible to configure networking settings via >cppcms. For instance, >it is possible to use manual mode for an ethernet interface to specify >ip. netmask etc. or >use DHCP mode. If DHCP gets used the running system starts dhcp client >and it could >takes some seconds until it got a valid IP address. > >The basic idea is now to use SSE (server send events) and some >detection threads. > >Create a (cppcms ?) thread per ethernet interface and run something like >http://stackoverflow.com/questions/579783/how-to-detect-ip-address-change-programmatically-in-linux > >Then I would have a singleton class for SSE where I can call e.g. >SSE::instance()->ethernet("eth0", ip,...) and my front-end can update >the values. > >Can this work? > > >--- >Christian Gmeiner, MSc > Why not? Several points 1. In there link there is an example to use it without polling, so just use basic_io_device to check for readability and then call recv So basically you don't need threads just implement event driven handling in the event loop (see tutorial for examples) 2. 2nd point is that if you still want to use threads, make sure that you do not use can SSE asynchronous app from another thread, i.e. you need to post a callback to the event loop (via post) that would be executed in the main event loop. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |