Merge remote-tracking branch 'refs/remotes/origin/bac2' into bac2
This commit is contained in:
		| @ -1,41 +1,44 @@ | ||||
| #include <stdlib.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| struct node{ | ||||
| 	struct node* prev; | ||||
| typedef struct Node* LIFO; | ||||
|  | ||||
| struct Node{ | ||||
| 	struct Node* prev; | ||||
| 	void* data; | ||||
| }; | ||||
|  | ||||
| typedef struct node* LIFO;  | ||||
|  | ||||
| LIFO* mklifo (); | ||||
| void push(LIFO* lst , void*); | ||||
| void* pop(LIFO* lst); | ||||
| LIFO mklifo(); | ||||
| void push(LIFO*, void*); | ||||
| void* pop(LIFO*); | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
| 	char* t = "test"; | ||||
| 	LIFO* lifo = mklifo(); | ||||
| 	push(lifo, t); | ||||
| 	printf("%s", (char *)pop(lifo)); | ||||
| 	int a = 5; | ||||
| 	int b = 12; | ||||
| 	LIFO lifo = mklifo(); | ||||
|  | ||||
| 	push(&lifo, &a); | ||||
| 	push(&lifo, &b); | ||||
| 	int *c = pop(&lifo); | ||||
| 	int *d = pop(&lifo); | ||||
|  | ||||
| 	printf("%d\n", *c); | ||||
| 	printf("%d\n", *d); | ||||
| } | ||||
|  | ||||
| LIFO *mklifo (){ | ||||
| 	LIFO* ret = malloc(sizeof(struct node)); | ||||
| 	return ret; | ||||
| LIFO mklifo(){ | ||||
| 	return calloc(1, sizeof(struct Node)); | ||||
| } | ||||
|  | ||||
| void push(LIFO *lst , void *el){ | ||||
| 	LIFO* next = mklifo(); | ||||
| void push(LIFO* lst, void* el){ | ||||
| 	LIFO next = mklifo(); | ||||
| 	(*lst)->data = el; | ||||
| 	(*next)->prev = *lst; | ||||
| 	lst = next; | ||||
| 	next->prev = *lst; | ||||
| 	*lst = next; | ||||
| } | ||||
|  | ||||
| void *pop(LIFO *lst){ | ||||
| 	void* el; | ||||
| 	(*lst)->data = el; | ||||
| void *pop(LIFO* lst){ | ||||
| 	*lst = (*lst)->prev; | ||||
| 	return el; | ||||
| 	return (*lst)->data; | ||||
| } | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										53
									
								
								bac2/os/chap2/ex6.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								bac2/os/chap2/ex6.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| #include <stdlib.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
|  | ||||
| typedef struct node{ | ||||
| 	void* data; | ||||
| 	struct node* next; | ||||
| } NODE; | ||||
|  | ||||
| //Could be only head but it allows a complexity of O(1) instead of O(n) for insertion (where n would be the size of the chain) | ||||
| typedef struct { | ||||
| 	NODE* head; | ||||
| 	NODE* tail; | ||||
| } FIFO; | ||||
|  | ||||
| FIFO mkfifo (); | ||||
| void enqueue(FIFO *lst ,void* el); | ||||
| void* dequeue(FIFO *lst); | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
| 	int a = 5; | ||||
| 	int b = 12; | ||||
| 	FIFO fifo = mkfifo(); | ||||
|  | ||||
| 	enqueue(&fifo, &a); | ||||
| 	enqueue(&fifo, &b); | ||||
| 	int *c = dequeue(&fifo); | ||||
| 	int *d = dequeue(&fifo); | ||||
|  | ||||
| 	printf("%d\n", *c); | ||||
| 	printf("%d\n", *d); | ||||
| 	 | ||||
| } | ||||
|  | ||||
| FIFO mkfifo (){ | ||||
| 	return (FIFO) {NULL, NULL}; | ||||
| } | ||||
|  | ||||
| void enqueue(FIFO *lst ,void *el){ | ||||
| 	NODE *new = calloc(1, sizeof(NODE)); | ||||
| 	new->data = el; | ||||
| 	if(lst->tail != NULL) | ||||
| 		lst->tail->next = new; | ||||
| 	lst->tail = new; | ||||
| 	lst->head = lst->head == NULL ? new : lst->head; | ||||
| } | ||||
|  | ||||
| void* dequeue(FIFO *lst){ | ||||
| 	void* ret = lst->head->data; | ||||
| 	lst->head = lst->head->next; | ||||
| 	return ret; | ||||
| } | ||||
							
								
								
									
										85
									
								
								bac2/pgl/detail_ext_indi/ext_indi.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								bac2/pgl/detail_ext_indi/ext_indi.tex
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,85 @@ | ||||
| \documentclass{article} | ||||
|  | ||||
| \usepackage[french]{babel} | ||||
| \usepackage[T1]{fontenc} | ||||
| \usepackage[utf8]{inputenc} | ||||
|  | ||||
| \author{Debucquoy Anthony} | ||||
| \title{Description du choix d'extension individiuelle - Messagerie} | ||||
| \date{Octobre 2023} | ||||
|  | ||||
| \begin{document} | ||||
| 	 | ||||
| \maketitle | ||||
| \newpage | ||||
| \tableofcontents | ||||
| \newpage | ||||
|  | ||||
|  | ||||
| \section{Objectifs fixés par le projet} | ||||
| Les éléments suivants sont ceux imposés par les consignes du projet. | ||||
| \begin{enumerate} | ||||
| 	\item Envois de messages d'étudiants à professeurs pour fixer un rendez-vous | ||||
| 	\begin{itemize} | ||||
| 		\item Proposition d'une ou plusieurs tranches de temps | ||||
| 		\item validation ou refus d'une tranche de temps par le professeur | ||||
| 		\item possibilité de laisser une note supplémentaire | ||||
| 		\item export au format \verb|.ical| du rendez-vous | ||||
| 	\end{itemize} | ||||
| 	\item Création d'un forum de discussion lié au cours | ||||
| 	\begin{itemize} | ||||
| 		\item Abonnement automatique de tous les étudiants | ||||
| 		\item Possibilité pour le professeur de poser un message | ||||
| 		\item Possibilité de répondre à un message par les étudiants | ||||
| 	\end{itemize} | ||||
| 	\item Création de groupes de communication entre utilisateurs pour envois de messages | ||||
| \end{enumerate} | ||||
|  | ||||
| \section{Objectifs supplémentaires} | ||||
| Ces éléments sont ceux que je souhaiterais ajouter au projet qui ne sont pas requis. | ||||
| Cette liste peut évoluer au fil du temps. | ||||
| Dans ce cas, j'aimerais implémenter ces points ci-dessous au minimum. | ||||
| \begin{enumerate} | ||||
| 	\item Possibilité de générer un poll dans un post sur un forum   | ||||
| 	\begin{itemize} | ||||
| 		\item Multi-choix ou simple-choix | ||||
| 	\end{itemize} | ||||
| 	\item Réponse à un post par un étudiant en mode 'privé' ou 'public' | ||||
| 	\item Chiffrement de messages privés | ||||
| 	\item Affichage du statut envoyé/vu/non-vu pour un message et pour un post | ||||
| \end{enumerate} | ||||
|  | ||||
| \section{Réalisation} | ||||
|  | ||||
| \subsection{Rendez-vous} | ||||
|  | ||||
| Pour prendre un rendez-vous, je souhaite éviter que le planning du professeur soit mis à découvert | ||||
| par ce système. De ce fait, par défaut, aucune plage horaire ne sera disponible pour un professeur. | ||||
|  | ||||
| Le professeur doit explicitement mettre ses disponibilités dans le système. | ||||
| Un étudiant mal intentionné ne pourrait alors pas utiliser la plateforme pour savoir quand le professeur | ||||
| est dans son bureau où quand il ne l'est pas. | ||||
|  | ||||
| \subsection{Forum de discussion} | ||||
|  | ||||
| Il sera possible de répondre à un post d'un professeur en mode 'privé'. Grâce à ça, | ||||
| un étudiant peut poser des questions à un professeur sans risquer de se faire copier par | ||||
| les autres utilisateurs  | ||||
|  | ||||
| \subsection{Messages privés} | ||||
|  | ||||
| Je souhaite que les messages entre utilisateurs ne soient pas lisibles par un potentiel administrateur | ||||
| système. Le chiffrement des messages de manière robuste (par les standards actuels) est important. | ||||
| J'apprécierais qu'il soit possible de chiffrer soi-même les messages à l'aide de GPG mais | ||||
| et que le chiffrement se fasse donc coté client. | ||||
| Le serveur n'aurait en aucuns cas la possibilité de déchiffrer les messages | ||||
|  | ||||
| \section{Conclusion} | ||||
|  | ||||
| Comme vous pouvez le voir à travers mes objectifs, je souhaite que mon extension soit dirigée par un | ||||
| développement avec la sécurité des utilisateurs et de leurs données en tête | ||||
| Le but serait qu'un utilisateur ne puisse pas profiter d'une fonctionnalité du site comme une manière | ||||
| d'obtenir des informations sur un utilisateur que ça soit une personne avec des privilèges (sysadmin) ou non. | ||||
|  | ||||
| \end{document} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user