Hi Tom,

As a further note to whatever you have found so far...

The recommended route would be for you to retain your existing code
based on proton::container, and allow it to run with its own dedicated
thread (or threads) using its own epoll loop and let Proton manage the
sockets for the AMQP connections.  You would pass work into Proton
using proton::work_queue.  Any of your code that runs on a Proton
thread (i.e. messaging_handler callback) would pass data and control
information out to the rest of your application (without blocking).

See cpp/docs/mt.md and cpp/examples/multithreaded_client_flow_control.cpp

If you must manage the AMQP connection's IO yourself, then the
connection_driver class is a solid choice.  The gotchas are to make
sure to call the tick() function regularly to preserve heartbeats and
to note that both input to and output from the driver can generate new
events to be dispatched.

A further caveat against connection_driver is that the Proton IO model
may change in the near future from byte streams to buffer lists as we
pursue performance improvements.  This will affect the connection
driver interfaces quite intrusively.  If you work from a container, as
recommended, your program logic is expected to remain stable going
forward.

Cliff

On Fri, Jun 30, 2023 at 3:08 AM Tom Crowe <tom.cr...@airtel-atn.com> wrote:
>
> Discovered that search function on mail lists is returning hits, albeit 
> hidden from view.
> Found enough info to work from.
> Thanks,
> - Tom
>
> On 2023/06/28 14:12:14 Tom Crowe wrote:
> > Hi,
> >   I have a working prototype with qpid proton c++ v0.37 consuming an amqps 
> > 1.0 data feed.
> >
> > Next, I would like to incorporate the prototype into existing software. 
> > That software has other networking interfaces and has a select() based 
> > event loop.
>
> >
> > How can I incorporate my qpid proton prototype into this event loop?
> >
> > I am encouraged when I see the 'connection_driver' class which is 'designed 
> > to work with a classic reactor'.
> > I am discouraged by the fact that I see 'support for third party event 
> > loop' as a nice-to-have feature in the README.
> >
> > Is it possible to incorporate my qpid proton c++ client into the existing 
> > event loop?
> > If yes, how?
> > Are there any examples of this?
> >
> > Thanks for your help.
> > - Tom.
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to