1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- * File: bomberstudent_server.c
- * Author: Arthur Brandao
- *
- * Created on 14 novembre 2018
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <pthread.h>
- #include "arraylist.h"
- #include "bomberstudent_server.h"
- #include "error.h"
- /* --- Globale --- */
- arraylist get;
- arraylist post;
- /* --- Fonctions privées --- */
- void* udp_thread(void* data){
- /*Server s;
- //Cast data en serveur
- s = (Server) data;
- //Detache le thread
- if(pthread_detach(pthread_self()) != 0){
- return NULL;
- }*/
- return NULL;
- }
- /* --- Fonctions publiques --- */
- void ini_server(){
- arraylist_ini(&get);
- arraylist_ini(&post);
- }
- void add_handler(char* method, char* ressource, int(*handler)(Server, JsonParser*)){
- if(strncmp(method, "POST", 5) == 0){
- arraylist_add(&post, ressource, handler);
- } else if(strncmp(method, "POST", 5) == 0){
- arraylist_add(&get, ressource, handler);
- }
- }
- boolean launch_udp_server(int port){
- Server s;
- boolean res;
- pthread_t udp;
- //Creation serveur
- s = server_create_udp();
- res = s->server_bind(s, port);
- if(!res){
- return false;
- }
- //Lancement thread serveur udp
- if(pthread_create(&udp, NULL, udp_thread, s) != 0){
- adderror("Impossible de créer le thread UDP");
- server_close(s);
- return false;
- }
- return true;
- }
- boolean launch_tcp_server(int);
- boolean receive_client(Server);
- boolean send_client(Server, JsonEncoder*);
- boolean notify_client(Server, char*, char*, JsonEncoder*);
|