CARS
Defines

/home/nicola/Dropbox/Progetto SOL/CARS_terfram/src/settings.h File Reference

#include <stdlib.h>

Go to the source code of this file.

Defines

#define SOCKET_PATH   "./tmp/cars.sck"
#define NSEC_TIMER   0
#define LOG_FILE_NAME   "./mgcars.log"
#define PERM_FILE   (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
#define POOL_SIZE   8
#define MAX_TRY   5
#define DELAY   1
#define PROMPT   "client> "
#define FREE_OFFER_LIST
#define CHAR_LENGTH   4
#define BUFF_SIZE   512
#define MAX_PID_CHAR   6

Detailed Description

Author:
Nicola Corti

Si dichiara che il contenuto di questo file e' in ogni sua parte opera originale dell' autore.


Define Documentation

#define BUFF_SIZE   512

Macro che imposta la dimensione del buffer dei messaggi. Per maggiori info vedi CHAR_LENGTH

See also:
CHAR_LENGTH
#define CHAR_LENGTH   4

BUFF_SIZE

Queste macro sono relative al protocollo di comunicazione implementato nella libreria comsock.

I dati relativi ad un messaggio, prima di essere inviati, vengono serializzati in un array di caratteri.

Il valore CHAR_LENGTH rappresenta il numero di caratteri necessari per rappresentare la dimensione del buffer.

Un numero inferiore di caratteri permettere di esprimere numeri piu' piccoli, e di conseguenza la dimensione del buffer risultera' piu' piccola

Il valore di default risulta in genere sufficiente a soddisfare tutti i casi.

INFO: incrementare i valori solo in presenza di grafi con nomi di citta' parecchio lunghi, oppure con grafi molto grandi, dove i path generati sono molto lunghi.

DEFAULT CHAR_LENGTH 4 BUFF_SIZE 512

#define DELAY   1

Variabile che imposta il delay in secondi da attendere per l'avvio di un thread

Per maggiori info vedi MAX_TRY

See also:
MAX_TRY

Referenced by printEnv(), and tryStartThread().

#define FREE_OFFER_LIST

Queste macro, se definita, fa variare il comportamento del server, nel merito al mantenimento o meno delle offerte elaborate

Se questa macro e' settata (non commentata) il server provvedera' ad eliminare tutte le offerte che non vengono accoppiate non nessuna richiesta ad ogni esecuzione del match

Se questa macro non e' settata (commentata) il server non eliminera' tali offerte, e le terra' disponibili per tutte le esecuzioni del match

INFO: il settaggio o meno di questa macro fa variare l'esito dei risultati calcolati, si pensi bene di che genere di sistema si ha bisogno nel settare o meno questa macro

INFO: utilizzare questa macro porta ad un miglioramento delle prestazioni, dato che il numero delle offerte viene azzerato ogni volta.

Attention:
ATTENZIONE: decidere di NON UTILIZZARE questa macro e di UTILIZZARE la macro UPDATE_OFFER puo' portare nel lungo termine ad un allungamento del tempo di elaborazione e ad un rallentamento del sistema

DEFAULT non-commentata

#define LOG_FILE_NAME   "./mgcars.log"

Questa macro definisce il nome del file sul quale il server salvera' il proprio log.

Attention:
ATTENZIONE: settare questa macro allo stesso valore della macro SOCKET_NAME porta ad grave malfunzionamento
ATTENZIONE: non settare questa macro a nomi di file gia' presenti (in particolar modo non settarla a valori quali "./mgcars" o altri nomi di file importanti), dato che all'avvio del server tali file vengono cancellati irrimediabilmente.
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema

DEFAULT "./mgcars.log"

Referenced by main(), and printEnv().

#define MAX_PID_CHAR   6

Queste macro rappresenta il numero massimo di cifre di un PID (process identifier) del sistema in uso

E' utilizzata dal client per generare la stringa che contiene il nome del socket sul quale attende i messaggi in ingresso.

Il valore di default risultato corretto nella maggior parte dei casi.

Attention:
ATTENZIONE: se si compila su una macchina che usa PID con un numero di cifre maggiore di MAX_PID_CHAR si potrebbe incorrere in errori critici con conseguente arresto del client

Referenced by createSocketName(), goingBackToSleep(), and worker_thread().

#define MAX_TRY   5

DELAY

Queste macro definiscono il comportamento da seguire nel caso in cui non si riesca ad avviare un thread.

In caso di fallimento ad avviare un thread, si attenderanno DELAY secondi e si riprovera' per MAX_TRY volte.

INFO: Si consideri che il fatto di non riuscire ad avviare un thread per assenza di risorse dovrebbe essere un caso piu' unico che raro, dato che, molto probabilmente, dopo DELAY secondi non sara' comunque possibile avviare un nuovo thread.

INFO: Se accade spesso questo evento, forse e' meglio considerare l'eventualita' di diminuire il numero dei thread avviati.

Attention:
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema
ATTENZIONE: i valori di questa macro devo essere ragionevolmenti bassi, altrimenti posso portare a lunghe attese del sistema.

DEFAULT MAX TRY 5 DELAY 1

Referenced by printEnv(), and tryStartThread().

#define NSEC_TIMER   0

Questa macro definisce il numero di microsecondi da attendere prima di far partire il match. Deve essere utilizzata in combinazione con la macro SEC_TIMER definita nel file comsock.h

INFO: per computer poco potenti aumentare il tempo di attesa, in modo da non sovraccaricare troppo il sistema. Per computer piu' potenti, e' possibile diminuire il valore. Si tenga di conto che a valori minori corrispondono tempi di risposta minori per i client

Attention:
ATTENZIONE: evitare di settare entrambi le macro a 0, il thread match stara' constantemente in esecuzione.
ATTENZIONE: valori negativi di una di queste 2 macro possono portare ad un grave malfunzionamento

DEFAULT 0

Referenced by match(), and printEnv().

#define PERM_FILE   (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)

Questa macro definisce i permessi di default con cui viene aperto il file di log.

Il tipo con cui deve essere specificata deve essere lo stesso richiesto dalla svc open (per info vedi open(2)).

Si tenga di conto che il valore effettivo dei bit di protezione sara' il risultato di (PERM_FILE & ~umask), per maggiori info si veda umask(2) e umask(1).

Attention:
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema
ATTENZIONE: se non si sta cosa si sta facendo e' consigliabile lasciare questa macro invariata.

DEFAULT (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)

Referenced by main().

#define POOL_SIZE   8

Questa macro definisce la dimensione del pool di thread worker che devono essere avviati all'avvio del sistema

Rappresenta un valore molto importante ai fini delle prestazioni del sistema

INFO: Un valore troppo piccolo porta ad un carico minore del sistema, ma puo' portare a rifiutare alcune richieste nei confronti di qualche utente.

INFO: Un valore troppo grande porta ad un carico maggiore del sistema, ma si riesce a servire contemporaneamente piu' utenti.

INFO: Si consiglia di provare alcuni valori e di cercare il valore adatto alla propria infrastruttura.

Attention:
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema
ATTENZIONE: il valore di questa macro deve sempre essere maggiore di 0 (si consiglia almeno 4) e non sufficientemente grande (si consiglia di non superare). Nel caso si decida di aumentare il numero dei thread a numeri elevati, si consideri il limite sul numero di thread imposto dal proprio sistema operativo

DEFAULT 32

Referenced by findActivateThread(), initializePool(), main(), match(), printEnv(), signal_handler(), and startWorker().

#define PROMPT   "client> "

Queste macro definisce il prompt che deve essere visualizzato ogni volta che il client attende un valore in input.

Puo' essere personalizzato a piacimento.

Attention:
ATTENZIONE: se si decide di non visualizzare il prompt settare la macro a questo valore: PROMPT "" Si tenga pero' in considerazione che l'assenza del prompt potrebbe indurre in confusione l'utente che non potrebbe comprendere quando deve inserire il messaggio.
ATTENZIONE: Un valore troppo lungo potrebbe far visualizzare il prompt su piu' righe, rendendo poco elegante la visualizzazione sul client.
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema

DEFAULT "client> "

Referenced by main().

#define SOCKET_PATH   "./tmp/cars.sck"

Questa macro definisce il nome del file sul quale il server apre la sua socket Inserire un path di file valido, altrimenti il server non potra' avviarsi, e i client non potranno connettersi

Attention:
ATTENZIONE: rimuovere questa macro porta ad un'impossibilita' di installare il sistema

DEFAULT "./tmp/cars.sck"

Referenced by main(), and printEnv().