00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <netcomm/dns-sd/avahi_thread.h>
00027
00028 #include <utils/system/signal.h>
00029
00030 using namespace fawkes;
00031
00032 class QAAvahiPublisherMain : public SignalHandler
00033 {
00034 public:
00035 QAAvahiPublisherMain()
00036 {
00037 NetworkService *as = new NetworkService("Fawkes QA", "_fawkes._udp", 1910);
00038 at = new AvahiThread();
00039 at->publish_service(as);
00040 delete as;
00041 }
00042
00043 ~QAAvahiPublisherMain()
00044 {
00045 delete at;
00046 }
00047
00048 void handle_signal(int signum)
00049 {
00050 at->cancel();
00051 }
00052
00053 void run()
00054 {
00055 at->start();
00056 at->join();
00057 }
00058
00059 private:
00060 AvahiThread *at;
00061
00062 };
00063
00064 int
00065 main(int argc, char **argv)
00066 {
00067 QAAvahiPublisherMain m;
00068 SignalManager::register_handler(SIGINT, &m);
00069
00070 m.run();
00071
00072 SignalManager::finalize();
00073 }
00074
00075