This commit is contained in:
elvis
2022-03-31 22:26:44 +02:00
parent e86f981972
commit a5371ad4c7
6 changed files with 258 additions and 26 deletions

View File

@ -16,37 +16,37 @@ typedef struct struct_waiting {
/**
* Apri o crea un nuovo file
* \param filepath: nome del file
* \param flags
* \param flags:
* \param q: queue in cui inserire il file
* \param fd_c:
* \param logFileT:
* \param taglia_t:
*/
void openFile(char *filepath, int flags, queueT *q, long fd_c, logT *logFileT);
void openFile(char *filepath, int flags, queueT *q, long fd_c, taglia_t *taglia);
// Leggi un file e invialo al client
void readFile(char *filepath, queueT *q, long fd_c, logT *logFileT);
void readFile(char *filepath, queueT *q, long fd_c, taglia_t *taglia);
// Invia al client $n file qualsiasi dalla queue
void readNFiles(char *numStr, queueT *q, long fd_c, logT *logFileT);
void readNFiles(char *numStr, queueT *q, long fd_c, taglia_t *taglia);
// Scrivi dati su un file già creato (append o overwrite)
void writeFile(char *filepath, size_t size, queueT *q, long fd_c, logT *logFileT, int append);
void writeFile(char *filepath, size_t size, queueT *q, long fd_c, taglia_t *taglia, int append);
// Acquisisci lock di un file
void lockFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waitingT **waiting);
void lockFile(char *filepath, queueT *q, long fd_c, taglia_t *taglia, pthread_mutex_t *lock, waitingT **waiting);
// Rilascia una Lock di un file
void unlockFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waiting_t **waiting);
void unlockFile(char *filepath, queueT *q, long fd_c, taglia_t *taglia, pthread_mutex_t *lock, waiting_t **waiting);
// Chiudi un file
void closeFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waiting_t **waiting);
void closeFile(char *filepath, queueT *q, long fd_c, taglia_t *taglia, pthread_mutex_t *lock, waiting_t **waiting);
// Rimuovi un file
void removeFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waiting_t **waiting);
void removeFile(char *filepath, queueT *q, long fd_c, taglia_t *taglia, pthread_mutex_t *lock, waiting_t **waiting);
// Funzione ausiliaria che invia un file al client
int sendFile(fileT *f, long fd_c, logT *logFileT);
int sendFile(fileT *f, long fd_c, taglia_t *taglia);
// Aggiunge una coppia client/file alla coda in attesa di ottenere una lock
int addWaiting(waiting_t **waiting, char *file, int fd);