Added apiFile
This commit is contained in:
0
lib/threadpool/apiFile.c
Normal file
0
lib/threadpool/apiFile.c
Normal file
53
lib/threadpool/apiFile.h
Normal file
53
lib/threadpool/apiFile.h
Normal file
@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
#ifndef _API_FILE
|
||||
#define _API_FILE
|
||||
|
||||
#include <fileQueue.h>
|
||||
/* TODO: include lib di logging */
|
||||
/* TODO: finire tutte le descrizioni */
|
||||
|
||||
/**
|
||||
* Apri o crea un nuovo file
|
||||
* \param filepath: nome del file
|
||||
* \param flags
|
||||
* \param q: queue in cui inserire il file
|
||||
* \param fd_c:
|
||||
* \param logFileT:
|
||||
*/
|
||||
void openFile(char *filepath, int flags, queueT *q, long fd_c, logT *logFileT);
|
||||
|
||||
// Leggi un file e invialo al client
|
||||
void readFile(char *filepath, queueT *q, long fd_c, logT *logFileT);
|
||||
|
||||
// Invia al client $n file qualsiasi dalla queue
|
||||
void readNFiles(char *numStr, queueT *q, long fd_c, logT *logFileT);
|
||||
|
||||
// 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);
|
||||
|
||||
// Acquisisci lock di un file
|
||||
void lockFile(char *filepath, queueT *q, long fd_c, logT *logFileT, 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, waitingT **waiting);
|
||||
|
||||
// Chiudi un file
|
||||
void closeFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waitingT **waiting);
|
||||
|
||||
// Rimuovi un file
|
||||
void removeFile(char *filepath, queueT *q, long fd_c, logT *logFileT, pthread_mutex_t *lock, waitingT **waiting);
|
||||
|
||||
|
||||
// Funzione ausiliaria che invia un file al client
|
||||
int sendFile(fileT *f, long fd_c, logT *logFileT);
|
||||
|
||||
// Aggiunge una coppia client/file alla coda in attesa di ottenere una lock
|
||||
int addWaiting(waitingT **waiting, char *file, int fd);
|
||||
|
||||
// Ottiene il primo client in attesa su una lock di un determinato file
|
||||
int removeFirstWaiting(waitingT **waiting, char *file);
|
||||
|
||||
// Distrugge la lista d'attesa e ne libera la memoria
|
||||
void clearWaiting(waitingT **waiting);
|
||||
|
||||
#endif // _API_FILE
|
||||
Reference in New Issue
Block a user