author | František Kučera <franta-hg@frantovo.cz> |
Sun, 04 Jun 2017 14:57:42 +0200 | |
changeset 44 | 896eca3d40d8 |
parent 11 | 481514f85b3a |
permissions | -rw-r--r-- |
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@11 | 12 |
/** Vytvoří frontu (název, přijímací, odesílací). */ |
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 |