diff -r 927ae2378038 -r 9a570824084d c++/POSIXoveFronty/Fronta/program.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/POSIXoveFronty/Fronta/program.cpp Fri Apr 03 22:39:11 2009 +0200 @@ -0,0 +1,99 @@ +/* + * File: program.cpp + * Author: fiki + * + * Created on 1. duben 2009, 23:54 + */ + +#include +#include +//#include +#include +#include +#include + +using namespace std; + +struct mq_attr ma = { + ma.mq_maxmsg = 5, + ma.mq_msgsize = 100 +}; + +/* + * + */ +int main(int argc, char** argv) { + + cout << "Vítejte v programu POSIXovéFronty" << endl; + + ma.mq_maxmsg = 5; + ma.mq_msgsize = 100; + + + + //cout << NAZEV_FRONTY << endl; + + if (isOdesilaciRezim()) { + odesilej(); + } else { + prijimej(); + } + + + + + + 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; + + char odpoved = cin.get(); + cin.get(); + + if (odpoved == 'o') { + return true; + } else if (odpoved == 'p') { + return false; + } else { + return isOdesilaciRezim(); + } +} + +void odesilej() { + cout << "odesíláme" << endl; + + + + mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDWR | O_CREAT, S_IRWXU | S_IRWXG, &ma); + + char* zprava = "zpráva"; + + mq_send(fronta, zprava, strlen(zprava) + 1, 0); + + cin.get(); + + mq_close(fronta); +} + +void prijimej() { + cout << "přijímáme" << endl; + + mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDONLY); + char s[101]; + s[100] = '\0'; + if (mq_receive(fronta, s, 100, NULL) > 0) { + printf("Přijatá zpráva: %s\n", s); + } else { + cout << "Nepodařilo se přijmout zprávu" << endl; + } + + //mq_unlink(NAZEV_FRONTY); + mq_close(fronta); + + +} +