# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# Date 1238961735 -7200
# Node ID a6822e6dd2ca619daa2e3ad528e58300f64dfb5f
# Parent  fb862232e704835ad887741ea10f95f13cab28e3
Komentáře, drobnosti

diff -r fb862232e704 -r a6822e6dd2ca c++/POSIXoveFronty/Fronta/program.cpp
--- a/c++/POSIXoveFronty/Fronta/program.cpp	Sun Apr 05 21:08:09 2009 +0200
+++ b/c++/POSIXoveFronty/Fronta/program.cpp	Sun Apr 05 22:02:15 2009 +0200
@@ -1,14 +1,11 @@
-/* 
- * File:   program.cpp
- * Author: fiki
- *
- * Created on 1. duben 2009, 23:54
+/**
+ * Program POSIXové Fronty
+ * @autor František Kučera <franta-hg@frantovo.cz>
  */
 
 #include <program.h>
 #include <stdlib.h>
-//#include <iostream>
-#include <c++/4.3.2/iostream>
+#include <iostream>
 #include <mqueue.h>
 #include <readline/readline.h>
 #include <signal.h>
@@ -22,35 +19,26 @@
 
     cout << "Vítejte v programu POSIXovéFronty" << endl;
 
+    /** Nastavíme reakci na signál SIGTERM */
     signal(SIGTERM, zpracujSignal);
+    signal(SIGINT, zpracujSignal);
 
+    /** Nastavíme vlastnosti fronty */
     mq_vlastnosti.mq_maxmsg = POCET_ZPRAV_VE_FRONTE;
     mq_vlastnosti.mq_msgsize = DELKA_ZPRAVY;
 
-
-    //cout << "maxmsg: " << ma.mq_maxmsg;
-    //cout << "msgsize: " << ma.mq_msgsize;
-
-
-
-
-    //cout << NAZEV_FRONTY << endl;
-
+    /** Program pracuje buď v režimu přijímání nebo odesílání */
     if (isOdesilaciRezim()) {
         odesilej();
     } else {
         prijimej();
     }
 
-
-
-
-
+    /** Sem se nedostaneme – program končí, až když dostane patřičný signál. */
     return (EXIT_SUCCESS);
 }
 
 bool isOdesilaciRezim() {
-    //char *odpoved = readline("Zvolte režim: (p)řijímací / (o)desílací");
 
     cout << "Zvolte režim: (p)řijímací / (o)desílací" << endl;
 
@@ -67,9 +55,7 @@
 }
 
 void odesilej() {
-    cout << "odesíláme" << endl;
-
-
+    cout << "Odesíláme…" << endl;
 
     mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDWR | O_CREAT, S_IRWXU | S_IRWXG, &mq_vlastnosti);
 
@@ -77,18 +63,16 @@
 
     int vysledek = mq_send(fronta, zprava, strlen(zprava) + 1, 0);
     if (vysledek == 0) {
-        cout << "Zpráva odeslána" << endl;
+        cout << "Zpráva odeslána." << endl;
     } else {
-        cout << "Při odesílání zprávy došlo k chybě" << endl;
+        cout << "Při odesílání zprávy došlo k chybě." << endl;
     }
 
-    //cin.get();
-
     mq_close(fronta);
 }
 
 void prijimej() {
-    cout << "přijímáme" << endl;
+    cout << "Přijímáme…" << endl;
 
     mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDONLY);
     char s[DELKA_ZPRAVY + 1];
@@ -96,16 +80,15 @@
     if (mq_receive(fronta, s, DELKA_ZPRAVY, NULL) > 0) {
         printf("Přijatá zpráva: %s\n", s);
     } else {
-        cout << "Nepodařilo se přijmout zprávu" << endl;
+        cout << "Nepodařilo se přijmout zprávu." << endl;
     }
 
-    //mq_unlink(NAZEV_FRONTY);
     mq_close(fronta);
 }
 
 void zpracujSignal(int signal) {
-    if (signal == SIGTERM) {
-        cout << "Končím program na základě signálu " << signal << endl;
+    if (signal == SIGTERM || signal == SIGINT) {
+        cout << "Končím program na základě signálu " << signal << "." << endl;
         exit(1);
     }
 }
diff -r fb862232e704 -r a6822e6dd2ca c++/POSIXoveFronty/Fronta/program.h
--- a/c++/POSIXoveFronty/Fronta/program.h	Sun Apr 05 21:08:09 2009 +0200
+++ b/c++/POSIXoveFronty/Fronta/program.h	Sun Apr 05 22:02:15 2009 +0200
@@ -1,8 +1,6 @@
-/* 
- * File:   program.h
- * Author: fiki
- *
- * Created on 2. duben 2009, 0:07
+/**
+ * Program POSIXové Fronty
+ * @autor František Kučera <franta-hg@frantovo.cz>
  */
 
 #include <mqueue.h>
@@ -15,21 +13,32 @@
 extern "C" {
 #endif
 
+    /** Název POSIXové fronty */
     const char* NAZEV_FRONTY = "/mojeFronta";
+
+    /** Vlastnosti fronty */
     struct mq_attr mq_vlastnosti;
+
+    /** Maximální počet zpráv ve frontě (potom začne blokovat) */
     const int POCET_ZPRAV_VE_FRONTE = 5;
+
+    /** Délka jedné zprávy ve frontě */
     const int DELKA_ZPRAVY = 100;
 
+    /** Režim přijímání zpráv */
     void prijimej();
+
+    /** Režim odesílání zpráv */
     void odesilej();
 
     /**
      * Zeptá se uživatele, zda se má program spustit v odesílacím nebo přijímacím režimu.
-     * true = odesílací
+     * true = odesílací,
      * false = přijímací
      */
     bool isOdesilaciRezim();
 
+    /** Zpracuje signál jako např. SIGTERM (ten ukončí běh tohoto programu). */
     void zpracujSignal(int signal);
 
 #ifdef	__cplusplus