1/*** 2 This file is part of avahi. 3 4 avahi is free software; you can redistribute it and/or modify it 5 under the terms of the GNU Lesser General Public License as 6 published by the Free Software Foundation; either version 2.1 of the 7 License, or (at your option) any later version. 8 9 avahi is distributed in the hope that it will be useful, but WITHOUT 10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General 12 Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with avahi; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 17 USA. 18***/ 19 20#ifdef HAVE_CONFIG_H 21#include <config.h> 22#endif 23 24#include <assert.h> 25#include <stdlib.h> 26 27#include <avahi-common/timeval.h> 28#include <avahi-common/simple-watch.h> 29 30#include "timeeventq.h" 31#include "log.h" 32 33#define POINTER_TO_INT(p) ((int) (long) (p)) 34#define INT_TO_POINTER(i) ((void*) (long) (i)) 35 36static AvahiTimeEventQueue *q = NULL; 37 38static void callback(AvahiTimeEvent*e, void* userdata) { 39 struct timeval tv = {0, 0}; 40 assert(e); 41 avahi_log_info("callback(%i)", POINTER_TO_INT(userdata)); 42 avahi_elapse_time(&tv, 1000, 100); 43 avahi_time_event_update(e, &tv); 44} 45 46int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { 47 struct timeval tv; 48 AvahiSimplePoll *s; 49 50 s = avahi_simple_poll_new(); 51 52 q = avahi_time_event_queue_new(avahi_simple_poll_get(s)); 53 54 avahi_time_event_new(q, avahi_elapse_time(&tv, 5000, 100), callback, INT_TO_POINTER(1)); 55 avahi_time_event_new(q, avahi_elapse_time(&tv, 5000, 100), callback, INT_TO_POINTER(2)); 56 57 avahi_log_info("starting"); 58 59 for (;;) 60 if (avahi_simple_poll_iterate(s, -1) != 0) 61 break; 62 63 avahi_time_event_queue_free(q); 64 avahi_simple_poll_free(s); 65 66 return 0; 67} 68