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