/**
*
* @File : exo_01c.cxx
*
* @Authors : M. Laporte
*
* @Date : 06/11/2001
*
* @Version : V1.0
*
* @Synopsis : Consommateur de messages dans une file de message
*
**/

#include <iostream>   
#include <exception>
#include <string>

#include <unistd.h>      // getuid(), getpid()

#include "CException.h"
#include "nsSysteme.h"  
#include "CstCodErr.h"
#include "nsMsg.h"

using namespace nsUtil;      // CException
using namespace nsSysteme;
using namespace nsMsg;

int std::ppal (int argc, char * argv []) throw (exception)
{
    if (1 != argc)
        throw CException (string ("Usage : ") + argv [0], CstExcArg);

    int MsqId = Msgget (::getuid ());
    SMsg Msg = {1L, ::getpid ()};
    SRep Reponse;

    for (;;)
    {
        Msgsnd (MsqId, & Msg, sizeof (int));
        Msgrcv (MsqId, & Reponse, CstMaxTaille, ::getpid ());
        cout << "Message lu : " << Reponse.m_Message << endl;
    }

    return 0;

}  //  ppal()