//
//  Header.h
//  ordi
//
//  Created by léo LELLOUCHE on 20/05/2016.
//  Copyright © 2016 léo LELLOUCHE. All rights reserved.
//

#ifndef Header_h
#define Header_h

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <string.h>
#include "Structures.h"

#define BUFF_SIZE 15
typedef	struct		s_list
{
    void			*content;
    size_t			content_size;
    struct s_list	*next;
}                   t_list;

// ft_free_2d
void	ft_free_2d(void ***tab, size_t size);

// ft_strsplit
char		**ft_strsplit(char const *s, char c);

// get_next_line
int			get_next_line(int const fd, char **line);

// Sous Fonctions GNL
void        ft_lstadd(t_list **alst, t_list *new);
char		*ft_strnjoin(char const *s1, char const *s2, size_t len);
t_list      *ft_lstnew(void const *content, size_t content_size);
char        *ft_strchr(const char *s, int c);
char        *ft_strdup(const char *s1);
char        *ft_strndup(const char *str, size_t len);
char        *ft_strnew(size_t size);

// Ouverture Fichiers
int         nb_line(int fd);
void        ouverture_fichiers(int **fd, int **size);
void        fermeture_fichiers(int **fd, int **size);


// Recuperation base de données
void        recup_cartes_meres(int fd, int size, t_donnees *données);
void        recup_RAM(int fd, int size, t_donnees *données);
void        recup_processeurs(int fd, int size, t_donnees *données);
void        recup_graphic(int fd, int size, t_donnees *données);
void        recup_HDD(int fd, int size, t_donnees *données);
void        recup_ecran(int fd, int size, t_donnees *données);
void        recup_softs(int fd, int size, t_donnees *données);
void        recup_config(int fd, int size, t_donnees *données);


// Selection Ordi
void    affichage_config_possible(const t_donnees donnees, const t_besoin besoin, int nb_configs);
void    choix_softs(t_besoin *besoin, t_donnees donnees, int size_struct_soft);
void    choix_RAM(t_besoin *besoin);
void    choix_prix(t_besoin *besoin);
void    choix_conso(t_besoin *besoin);




#endif /* Header_h */
