qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adel Boutros <Adelbout...@live.com>
Subject [Proton-c] [C++ bindings][0.14.0] How do I know a message was settled by the receiver?
Date Wed, 16 Nov 2016 18:08:56 GMT
Hello,


I have a simple C++ client which connects to a Qpid Java Broker (6.0.4) and receives messages.

With the default behavior of the C++ client, how can I know when a delivery has been settled?

It seems there is no way for me to know that.


I have debugged a bit and when the on_message is called, the message becomes in "Acquired"
state on the broker. Later on, somewhere which I haven't found yet, the message is settled
and disappears from the broker. However none of the functions I implemented below is called.


Can you please assist?


Console output

-----------------------

on_message


Code

-----------------------


class MyHandler : public proton::messaging_handler
{
public:

   virtual void on_container_start(proton::container &c)
   {
      proton::url url("localhost:5672");
      proton::connection connection = c.connect(url);
      proton::receiver_options receiverOptions(proton::receiver_options().credit_window(0));
      connection.open_receiver("queue.name", receiverOptions);
   }

   virtual void on_receiver_open(proton::receiver& l)
   {
      l.add_credit(1);
   }

   virtual void on_message(proton::delivery &d, proton::message &m)
   {
      std::cout << "on_message" << std::endl;
   }
   virtual void on_delivery_settle(proton::delivery &d)
   {
      std::cout << "on_delivery_settle" << std::endl;
   }
   virtual void on_tracker_accept(proton::tracker &d)
   {
      std::cout << "on_tracker_accept" << std::endl;
   }

   virtual void on_tracker_reject(proton::tracker &d)
   {
      std::cout << "on_tracker_reject" << std::endl;
   }

   virtual void on_tracker_release(proton::tracker &d)
   {
      std::cout << "on_tracker_release" << std::endl;
   }

   virtual void on_tracker_settle(proton::tracker &d)
   {
      std::cout << "on_tracker_settle" << std::endl;
   }
};



Regards,

Adel

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message