Hi everyone,

Today while coding a simple sender on qpid cpp 0.28 I encountered a problem 
where the program will not quit after completing its task. I am building using 
g++ 4.8.3, boost 1.49.0, proton 0.70 to name a  few. I put the program through 
gdb and it seems to jump around infitely after the std::cout << "2" << endl; 
line. My current guess is Sender class has issues since the receiver I wrote 
would quit gracefully.

Please see the code below:

//C++ producer code starts

#include <qpid/messaging/Connection.h>

#include <qpid/messaging/Message.h>

#include <qpid/messaging/Message_io.h>

#include <qpid/messaging/Sender.h>

#include <qpid/messaging/Session.h>

#include <iostream>

using namespace qpid::messaging;

int main(int argc, char** argv) {
    Connection connection;
    try
    {
        std::string url = argc > 1 ? argv[1] : "localhost:5672";
        std::string address = argc > 2 ? argv[2] : "'topic://usa.news'";

        std::string connectionOptions = argc > 3 ? argv[3] : 
"{username:guest,password:guest,sasl_mechanisms:PLAIN,protocol:amqp1.0}";

        connection = Connection(url, connectionOptions);
        connection.open();

        std::cout << "1" << std::endl;
        Session session = connection.createSession();
        Sender sender = session.createSender(address);

        int count = 10;

        for (int i = 0; i < count; i++)
        {
            sender.send(Message("Hello news!"));
            std::cout << "Sent - Hello news! " << i << std::endl;
        }

        std::cout << "2" << std::endl; // program seems to have problem after 
this point

        session.close();

        connection.close();

        return 0;
    } catch (const std::exception& error) {
        std::cout << "Error: " << error.what() << std::endl;
        connection.close();
    }
    return 1;
} //C++ code ends

Q

Reply via email to