pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capitolo 5<br />
Programmazione<br />
Se si sceglie ’File− >new pvserver’ in pvdevelop vi verrà chiesto il nome e la directory di creazione per il vostro<br />
pvserver. Dopo di che il designer integrato diventerà visibile e utilizzato il popup menu disponibile con un clic<br />
destro del mouse sarà possibile definire il layout delle vostre maschere. Quando avremo finito dovremo salvare<br />
il layout e tornare alla modalità editor.<br />
Lo scheletro del nuovo pvserver verrà generato. Si prega di dare un’occhiata al codice sorgente utilizando<br />
pvdevelop per comprendere la struttura del nostro pserver.<br />
Dopo questi primi passi è possibile avviare la nostra applicazione.<br />
’Action− >start server’ e ’Action− >start browser’ sono i comandi di base.<br />
Il vostro compito è ora quello di definire la struttura dei dati DATA e di scrivere il codice delle mask∗ slots.h<br />
al fine di definire la logica del vostro pvserver.<br />
5.1 Strutura di un pvserver<br />
Un pvserver è composto dalle parti che vengono descritte di seguito. Vi è un file di progetto in cui sono definiti<br />
i file sorgenti e le librerie del pvserver.<br />
C’è un file main nel quale si possono trovare due diverse versioni di main() una per inetd e una per il Multithreaded<br />
e che sono selezionate da un simbolo #ifdef per il preprocessore. Di default è attiva la scelta per<br />
il server multi-threaded. Se si desidera avviare il pvserver dal Superserver xinetd è necessario decommentare<br />
USE INETD all’interno del file di progetto e selezionare ’libpvsid’ invece di ’libpvsmt’ come libreria <strong>pvbrowser</strong>.<br />
pvMain è la funzione principale per servire un client. In questa subroutine vi è un loop in cui sono richiamate<br />
le maschere disponibili. Il valore di ritorno di una maschera determina quale sarà la prossima maschera che<br />
verrà mostrata.<br />
C’è un file intestazione (headers) che è incluso in tutti i sorgenti di un pvserver.<br />
Ci sono tante maschere quante ne sono stato progettate. Il codice sorgente viene generato automaticamente<br />
da pvdevelop. Normalmente non è necessario preoccuparsi dello scheletro (struttura) dell’applicazione.<br />
Esistono tanti mask slots quante sono le maschere progettate. Questo file di intestazione è incluso all’interno<br />
della corrispondente maschera. In questo file viene definita la struttura locale dei dati e le funzioni di slot.<br />
5.1.1 File di progetto per qmake<br />
Dal file di progetto qmake in Qt SDK può generare un Makefile. All’interno di tale file di progetto sono<br />
specificati tutti i sorgenti e le librerie utilizzate dal vostro pvserver. Si prega di notare che il file di progetto<br />
seleziona automaticamente le librerie per il sistema operativo che si sta utilizzando. Se si desidera utilizzare<br />
librerie aggiuntive all’interno del vostro pvserver è possibile specificarle all’interno del file di progetto.<br />
file di progetto<br />
######################################################################<br />
# generated by pvdevelop at: Mi Nov 8 11:58:45 2006<br />
######################################################################<br />
TEMPLATE = app<br />
CONFIG = warn_on release<br />
CONFIG -= qt<br />
11