TODO-LIST
Gestore di attività suddivise per progetto
TODO.h
Go to the documentation of this file.
1 
9 #include <cstring>
10 #include <cstdlib>
11 #include <cstdio>
12 #include "dirent.h"
13 #include "Progetto.h"
14 
15 
19 class TODO
20 {
21 public:
22 
28  static unsigned int elencaProgetti(char* elenco[], unsigned int numero_massimo_progetti)
29  {
30  DIR *directory;
31  struct dirent *file;
32  unsigned int numero_progetti = 0;
33 
34  if ((directory = opendir(".\\progetti")) != NULL)
35  {
36  while ((file = readdir(directory))!=NULL && numero_progetti<numero_massimo_progetti)
37  {
38  if (file->d_type == DT_REG)
39  {
40  strncpy(elenco[numero_progetti], file->d_name, 255);
41  numero_progetti++;
42  }
43  }
44  closedir(directory);
45  }
46  return numero_progetti;
47  }
48 
55  static Progetto* selezionaProgetto(char denominazione[])
56  {
57  char nome_file[1024] = ".\\progetti\\";
58  FILE* file;
59 
60  strcat(nome_file, denominazione);
61  file = fopen(nome_file, "rb");
62  if (file == NULL)
63  {
64  fclose(file);
65  //return false;
66  return nullptr;
67  }
68  else
69  {
70  return new Progetto(denominazione);
71  //return true;
72  }
73  }
74 
81  static Progetto* creaProgetto(char denominazione[])
82  {
83  char nome_file[1024] = ".\\progetti\\";
84  FILE* file;
85 
86  strcat(nome_file, denominazione);
87  file = fopen(nome_file, "rb");
88  if (file != NULL)
89  {
90  fclose(file);
91  return nullptr;
92  //return false;
93  }
94  else
95  {
96  return new Progetto(denominazione);
97  //return true;
98  }
99  }
100 
106  static bool eliminaProgetto(char denominazione[])
107  {
108  char nome_file[1024] = ".\\progetti\\";
109 
110  strcat(nome_file, denominazione);
111  if (remove(nome_file) == 0)
112  return true;
113  else
114  return false;
115  }
116 };
classe per la rappresentazione di un progetto
Definition: Progetto.h:42
classe di metodi statici per la gestione dei progetti memorizzati su file
Definition: TODO.h:19
Definition: dirent.h:289
Definition: dirent.h:271
static unsigned int elencaProgetti(char *elenco[], unsigned int numero_massimo_progetti)
elenco dei nomi dei progetti
Definition: TODO.h:28
static Progetto * creaProgetto(char denominazione[])
creazione di un nuovo progetto
Definition: TODO.h:81
static Progetto * selezionaProgetto(char denominazione[])
selezione di un progetto esistente
Definition: TODO.h:55
definizione della classe Progetto
static bool eliminaProgetto(char denominazione[])
eliminazione di un nuovo progetto esistente
Definition: TODO.h:106