c++/POSIXoveFronty/Fronta/fronta.h
author František Kučera <franta-hg@frantovo.cz>
Tue Apr 07 23:49:02 2009 +0200 (2009-04-07)
changeset 10 18317e52d52b
child 11 481514f85b3a
permissions -rw-r--r--
Odchytávání signálu SIGHUP → ukončení programu (po zavření terminálu)
franta-hg@6
     1
#ifndef _FRONTA_H
franta-hg@6
     2
#define	_FRONTA_H
franta-hg@6
     3
franta-hg@6
     4
#include <string.h>
franta-hg@6
     5
#include <mqueue.h>
franta-hg@6
     6
franta-hg@6
     7
/**
franta-hg@6
     8
 * Objektový obal pro POSIXovou frontu (mq).
franta-hg@6
     9
 */
franta-hg@6
    10
class Fronta {
franta-hg@6
    11
public:
franta-hg@6
    12
    /** Vytvoří frontu (zapisovací umí i číst). */
franta-hg@6
    13
    Fronta(char*, bool, bool);
franta-hg@6
    14
    Fronta();
franta-hg@6
    15
    /** Přidá zprávu do fronty. */
franta-hg@6
    16
    int odesliZpravu(char*);
franta-hg@6
    17
    /** Načte jednu zprávu z fronty. V případě chyby vrací NULL */
franta-hg@6
    18
    char* prijmiZpravu();
franta-hg@6
    19
    /** Zavře frontu. true = zruší frontu.*/
franta-hg@6
    20
    void zavriFrontu(bool);
franta-hg@6
    21
franta-hg@6
    22
private:
franta-hg@6
    23
    char* nazev;
franta-hg@6
    24
    bool prijimaci;
franta-hg@6
    25
    bool odesilaci;
franta-hg@6
    26
    bool otevrena;
franta-hg@6
    27
    mqd_t fronta;
franta-hg@6
    28
franta-hg@6
    29
    /** Vlastnosti fronty */
franta-hg@6
    30
    struct mq_attr mq_vlastnosti;
franta-hg@6
    31
franta-hg@6
    32
    /** Maximální počet zpráv ve frontě (potom začne blokovat) */
franta-hg@6
    33
    static const int POCET_ZPRAV_VE_FRONTE = 5;
franta-hg@6
    34
franta-hg@6
    35
    /** Délka jedné zprávy ve frontě */
franta-hg@6
    36
    static const int DELKA_ZPRAVY = 100;
franta-hg@6
    37
franta-hg@6
    38
franta-hg@6
    39
};
franta-hg@6
    40
franta-hg@6
    41
#endif	/* _FRONTA_H */
franta-hg@6
    42