2 * Program POSIXové Fronty
3 * @autor František Kučera <franta-hg@frantovo.cz>
9 #include <readline/readline.h>
18 * Spuštění programu „POSIXovéFronty“
22 cout << "Vítejte v programu POSIXovéFronty" << endl;
24 /** Nastavíme reakci na signál SIGTERM */
25 signal(SIGTERM, zpracujSignal);
26 signal(SIGINT, zpracujSignal);
28 /** TODO: zeptat se na název fronty */
29 //strcpy(nazevFronty, VYCHOZI_NAZEV_FRONTY);
30 nazevFronty = "/mojeFronta";
32 /** Program pracuje buď v režimu přijímání nebo odesílání */
33 if (isOdesilaciRezim()) {
39 fronta.zavriFrontu(false);
41 /** Sem se nedostaneme, pokud metody poběží v cyklu – program končí, až když dostane patřičný signál. */
42 return (EXIT_SUCCESS);
45 bool isOdesilaciRezim() {
47 cout << "Zvolte režim: (p)řijímací / (o)desílací" << endl;
49 char odpoved = cin.get();
54 } else if (odpoved == 'p') {
57 return isOdesilaciRezim();
62 cout << "Odesíláme…" << endl;
63 fronta = Fronta(nazevFronty, false, true);
65 /** TODO: načíst ze standardního vstupu */
66 char zprava[] = "zpráva";
68 if (fronta.odesliZpravu(zprava) == 0) {
69 cout << "Zpráva odeslána." << endl;
71 cout << "Při odesílání zprávy došlo k chybě." << endl;
76 cout << "Přijímáme…" << endl;
77 fronta = Fronta(nazevFronty, true, false);
79 char* zprava = fronta.prijmiZpravu();
82 cout << "Nepodařilo se přijmout zprávu." << endl;
84 printf("Přijatá zpráva: %s\n", zprava);
88 void zpracujSignal(int signal) {
89 if (signal == SIGTERM || signal == SIGINT) {
90 cout << "Končím program na základě signálu " << signal << "." << endl;