EGong

git clone git://xatko.vsos.ethz.ch/EGong.git
Log | Files | Refs

Dependencies.c (1442B)


      1 #include <EGong/Util/Dependencies.h>
      2 #include <EGong/Util/Log.h>
      3 #include <stdlib.h>
      4 #include <EGong/Util/Socket.h>
      5 #include <EGong/Util/Waiter.h>
      6 
      7 unsigned int EGong_dep_status=0;
      8 
      9 
     10 int EGong_deps_init(unsigned int dependencies){
     11 	if(DEP_REQ(dependencies, EGONG_DEP_SOCKETS)){
     12 		do_log("Initializing sockets", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG);
     13 		if(EGong_sockets_setup()<0){
     14 			do_log("Couldn't initialize sockets", LOG_TYPE_NORMAL, LOG_LEVEL_ERROR);
     15 			return -1;
     16 		}
     17 		else{
     18 			EGong_dep_status|=EGONG_DEP_SOCKETS;
     19 		}
     20 	}
     21 	if(DEP_REQ(dependencies, EGONG_DEP_LISTENER)){
     22 		do_log("Initializing Listener", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG);
     23 		if(EGong_deps_init(EGONG_DEP_SOCKETS)<0){
     24 			return -1;
     25 		}
     26 		if(EGong_listener_init(NULL,NULL)<0){
     27 			do_log("Couldn't initialize listener", LOG_TYPE_NORMAL, LOG_LEVEL_ERROR);
     28 			return -1;
     29 		}
     30 		else{
     31 			EGong_waiter_add(EGong_listen_sock, EGONG_WAITER_SOCKET);
     32 			EGong_dep_status|=EGONG_DEP_LISTENER;
     33 		}
     34 	}
     35 	return 0;
     36 }
     37 
     38 int EGong_deps_deinit(unsigned int dependencies){
     39 	if(DEP_STOP(dependencies, EGONG_DEP_SOCKETS)){
     40 		do_log("Deinitializing sockets", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG);
     41 		EGong_sockets_shutdown();
     42 		EGong_dep_status&=~EGONG_DEP_SOCKETS;
     43 		dependencies|=EGONG_DEP_LISTENER;
     44 	}
     45 	if(DEP_STOP(dependencies, EGONG_DEP_LISTENER)){
     46 		do_log("Deinitializing Listener", LOG_TYPE_NORMAL, LOG_LEVEL_DEBUG);
     47 		EGong_listener_close(NULL);
     48 		EGong_dep_status&=~EGONG_DEP_LISTENER;
     49 	}
     50 }