franta-hg@1: /* franta-hg@1: * File: program.cpp franta-hg@1: * Author: fiki franta-hg@1: * franta-hg@1: * Created on 1. duben 2009, 23:54 franta-hg@1: */ franta-hg@1: franta-hg@1: #include franta-hg@1: #include franta-hg@1: //#include franta-hg@1: #include franta-hg@1: #include franta-hg@1: #include franta-hg@1: franta-hg@1: using namespace std; franta-hg@1: franta-hg@2: int main() { franta-hg@1: franta-hg@1: cout << "Vítejte v programu POSIXovéFronty" << endl; franta-hg@1: franta-hg@2: mq_vlastnosti.mq_maxmsg = POCET_ZPRAV_VE_FRONTE; franta-hg@2: mq_vlastnosti.mq_msgsize = DELKA_ZPRAVY; franta-hg@1: franta-hg@2: franta-hg@2: //cout << "maxmsg: " << ma.mq_maxmsg; franta-hg@2: //cout << "msgsize: " << ma.mq_msgsize; franta-hg@2: franta-hg@2: franta-hg@2: franta-hg@1: franta-hg@1: //cout << NAZEV_FRONTY << endl; franta-hg@1: franta-hg@1: if (isOdesilaciRezim()) { franta-hg@1: odesilej(); franta-hg@1: } else { franta-hg@1: prijimej(); franta-hg@1: } franta-hg@1: franta-hg@1: franta-hg@1: franta-hg@1: franta-hg@1: franta-hg@1: return (EXIT_SUCCESS); franta-hg@1: } franta-hg@1: franta-hg@1: bool isOdesilaciRezim() { franta-hg@1: //char *odpoved = readline("Zvolte režim: (p)řijímací / (o)desílací"); franta-hg@1: franta-hg@1: cout << "Zvolte režim: (p)řijímací / (o)desílací" << endl; franta-hg@1: franta-hg@1: char odpoved = cin.get(); franta-hg@1: cin.get(); franta-hg@1: franta-hg@1: if (odpoved == 'o') { franta-hg@1: return true; franta-hg@1: } else if (odpoved == 'p') { franta-hg@1: return false; franta-hg@1: } else { franta-hg@1: return isOdesilaciRezim(); franta-hg@1: } franta-hg@1: } franta-hg@1: franta-hg@1: void odesilej() { franta-hg@1: cout << "odesíláme" << endl; franta-hg@1: franta-hg@1: franta-hg@1: franta-hg@2: mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDWR | O_CREAT, S_IRWXU | S_IRWXG, &mq_vlastnosti); franta-hg@2: franta-hg@2: char zprava[] = "zpráva"; franta-hg@1: franta-hg@1: mq_send(fronta, zprava, strlen(zprava) + 1, 0); franta-hg@1: franta-hg@1: cin.get(); franta-hg@1: franta-hg@1: mq_close(fronta); franta-hg@1: } franta-hg@1: franta-hg@1: void prijimej() { franta-hg@1: cout << "přijímáme" << endl; franta-hg@1: franta-hg@1: mqd_t fronta = mq_open(NAZEV_FRONTY, O_RDONLY); franta-hg@2: char s[DELKA_ZPRAVY + 1]; franta-hg@2: s[DELKA_ZPRAVY] = '\0'; franta-hg@2: if (mq_receive(fronta, s, DELKA_ZPRAVY, NULL) > 0) { franta-hg@1: printf("Přijatá zpráva: %s\n", s); franta-hg@1: } else { franta-hg@1: cout << "Nepodařilo se přijmout zprávu" << endl; franta-hg@1: } franta-hg@1: franta-hg@1: //mq_unlink(NAZEV_FRONTY); franta-hg@1: mq_close(fronta); franta-hg@1: franta-hg@1: franta-hg@1: }