franta-hg@6: #ifndef _FRONTA_H franta-hg@6: #define _FRONTA_H franta-hg@6: franta-hg@6: #include franta-hg@6: #include franta-hg@6: franta-hg@6: /** franta-hg@6: * Objektový obal pro POSIXovou frontu (mq). franta-hg@6: */ franta-hg@6: class Fronta { franta-hg@6: public: franta-hg@6: /** Vytvoří frontu (zapisovací umí i číst). */ franta-hg@6: Fronta(char*, bool, bool); franta-hg@6: Fronta(); franta-hg@6: /** Přidá zprávu do fronty. */ franta-hg@6: int odesliZpravu(char*); franta-hg@6: /** Načte jednu zprávu z fronty. V případě chyby vrací NULL */ franta-hg@6: char* prijmiZpravu(); franta-hg@6: /** Zavře frontu. true = zruší frontu.*/ franta-hg@6: void zavriFrontu(bool); franta-hg@6: franta-hg@6: private: franta-hg@6: char* nazev; franta-hg@6: bool prijimaci; franta-hg@6: bool odesilaci; franta-hg@6: bool otevrena; franta-hg@6: mqd_t fronta; franta-hg@6: franta-hg@6: /** Vlastnosti fronty */ franta-hg@6: struct mq_attr mq_vlastnosti; franta-hg@6: franta-hg@6: /** Maximální počet zpráv ve frontě (potom začne blokovat) */ franta-hg@6: static const int POCET_ZPRAV_VE_FRONTE = 5; franta-hg@6: franta-hg@6: /** Délka jedné zprávy ve frontě */ franta-hg@6: static const int DELKA_ZPRAVY = 100; franta-hg@6: franta-hg@6: franta-hg@6: }; franta-hg@6: franta-hg@6: #endif /* _FRONTA_H */ franta-hg@6: