Linux 4D logo
Rendere accessibili i programmi, con Middleware.












Come Funziona.





Rendere accessibili i programmi, con "Middleware", vuol dire scrivere un file di regole che descrive il programma da rendere accessibile.

Il nome del file di Regole dipendera` dal terminale al quale e` associato il servizio.
Tutti i file di regole si trovano nella directory "rules".
Se ad esempio il servizio lavora sul terminale tre (al quale si accede con "Alt F3"), il file di regole si chiamera` "f3.rul"; quindi nella directory "rules" ci sara` il file "f3.rul" che descrivera` il servizio associato al terminale tre.

Il file di regole e` formato di varie sezioni:

- il nome del servizio, all'inizio del file di regole, e compreso tra parentesi tonde.
- il nome del "dominio", compreso tra parentesi quadre.
- le regole evento-azione.

Il nome del servizio descrive il tipo di servizio.
Per un programma di e-mail potrei avere un nome tipo: "(Posta Elettronica)".

I domini possono essere visti come "stati" diversi del programma, al quale sono associati.
Se ad esempio il mio programma ha dei menu, potrei associare un dominio ad ogni voce del menu.
Cosi potei avere, ad esempio, una voce: "[Esci]", associato alla voce di menu che mi fa uscire dal programma.
Non c'e` comunque una regola fissa per associare stati del programma a domini nel file di regole. Si possono avere cosi` piu` file di regole diversi che descrivono lo stesso programma.

Le regole evento-azione definiscono le azioni da intraprendere all'occorrenza di un certo evento.
Potrei, ad esempio, associare alla pressione del tasto "Enter", la lettura di "Confermi l'uscita?". Per fare questo, dovrei aggiungere una riga del tipo: "K_ENTER = SayText(Confermi l'uscita?)".

Per capire meglio come e` fatto un file di regole, si puo` dare un'occhiata ad uno dei file di regole gia` scritti, e presenti nella directory "rules".

Gli eventi riconosciuti dal sistema sono:
- K_ENTER tasto Enter
- K_UP, K_DOWN, K_LEFT, K_RIGHT tasti frecce
- K_TAB tabulazione
- Fn1...Fn12 tasti funzione
- Selfa...Selfz caratteri minuscoli
- SelfA...SelfZ caratteri maiuscoli
- Char indica un carattere qualunque
- Self0...Self9 numeri
- Self?, Self., Self-,... punteggiatura
- Self^a...Self^Z combinazioni ctrl+caratteri
- Self^[ ESC
- Self^< Backspace
- Self^..... altri tasti di controllo

Le azioni attualmente riconosciute dal sistema:

- nil non fa niente
- go(dominio) cambia dominio
- SayText(testo da leggere) legge una frase
- SayHighlighted(from, to) legge il testo evidenziato (partendo
dalla riga "from", fino alla riga "to")
- SayAt(row) legge la riga "row"
- SayCursor() legge dal cursore, fino a fine riga
- Pause(sec) pausa di "sec" secondi



In aggiuta a queste azioni, altre possono essere aggiunte "dinamicamente" al sistema, attraverso dei moduli.
Per aggiungere un nuovo modulo (con nuove azioni), basta aggiungere una riga al file "rules/modules", del tipo:
pathname/nomemodulo = nomeAzione
Volendo aggiungere, ad esempio, un modulo "Prova.a" presente nella directory "modules", che contiene l'azione "helloWorld()", basta aggiugere una riga a "rules/module":
modules/Prova.a = helloWorld()
Per dire a "middleware" di aggiornarsi, bisogna mandargli poi un segnale HUP, con un comando tipo "killall -HUP middleware".








Continua...

- In Pratica







Copyright (c) 2003.

Tutto il materiale presente sul sito e` "liberamente" copiabile e distribuibile, secondo i termini della GNU Free Documentation License, Versione 1.1 od ogni versione successiva pubblicata dalla Free Software Foundation; con tutte le Sezioni Non Modificabili.
Una copia della licenza "GNU Free Documentation License" e` scaricabile qui.










In collaborazione con:

ASPHI

Vai alla Homepage
Col supporto tecnico di:



SourceForge.net