c++/POSIXoveFronty/Fronta/fronta.h
author František Kučera <franta-hg@frantovo.cz>
Tue, 09 Sep 2014 16:18:47 +0200
changeset 25 95be94124ce9
parent 11 481514f85b3a
permissions -rw-r--r--
RAIIDemo: super.finalize(); (pro případ, že by předek něco finalizoval)
     1 #ifndef _FRONTA_H
     2 #define	_FRONTA_H
     3 
     4 #include <string.h>
     5 #include <mqueue.h>
     6 
     7 /**
     8  * Objektový obal pro POSIXovou frontu (mq).
     9  */
    10 class Fronta {
    11 public:
    12     /** Vytvoří frontu (název, přijímací, odesílací). */
    13     Fronta(char*, bool, bool);
    14     Fronta();
    15     /** Přidá zprávu do fronty. */
    16     int odesliZpravu(char*);
    17     /** Načte jednu zprávu z fronty. V případě chyby vrací NULL */
    18     char* prijmiZpravu();
    19     /** Zavře frontu. true = zruší frontu.*/
    20     void zavriFrontu(bool);
    21 
    22 private:
    23     char* nazev;
    24     bool prijimaci;
    25     bool odesilaci;
    26     bool otevrena;
    27     mqd_t fronta;
    28 
    29     /** Vlastnosti fronty */
    30     struct mq_attr mq_vlastnosti;
    31 
    32     /** Maximální počet zpráv ve frontě (potom začne blokovat) */
    33     static const int POCET_ZPRAV_VE_FRONTE = 5;
    34 
    35     /** Délka jedné zprávy ve frontě */
    36     static const int DELKA_ZPRAVY = 100;
    37 
    38 
    39 };
    40 
    41 #endif	/* _FRONTA_H */
    42