[ 
https://issues.apache.org/jira/browse/PROTON-865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14731270#comment-14731270
 ] 

ASF subversion and git services commented on PROTON-865:
--------------------------------------------------------

Commit 445f8873968e2317218ec348444284a4bd7c8be0 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=445f887 ]

PROTON-865: C++ reactor binding for proton.

This is a C++ interface to proton, providing an event-driven API similar to the
python reactive API.

Each of the proton "classes" such as pn_link_t, pn_connection_t etc. is
represented by a C++ "facade" class that provides the relevant member
functions. These classes take up no memory, they are actually pointers to the
proton C structs with some casting magic to translate C++ member function calls
into C function calls.

A C++ smart pointer, proton::counted_ptr, automates proton reference
counting. It can be converted automatically to standard C++ shared_ptr,
unique_ptr etc. with the expected semantics.

The goal is to provide very low overhead access to the proton C library with the
convenience and safety of C++. There is no additional memory allocation or
reference counting imposed by the C++ layer. It is possible to mix C and C++
code.

The C++ documentation includes a tutorial and examples similar to the python
tutorial/examples.


> C++ reactor client binding
> --------------------------
>
>                 Key: PROTON-865
>                 URL: https://issues.apache.org/jira/browse/PROTON-865
>             Project: Qpid Proton
>          Issue Type: New Feature
>         Environment: C++
>            Reporter: Cliff Jansen
>            Assignee: Cliff Jansen
>
> This JIRA tracks initial work on a C++ binding to the Proton reactor event 
> based model with an eye to providing an API very similar to the python 
> client.  As stated on the Proton list, the broad goals are:
>   to make it easy to write simple programs
>   natural to build out more complicated ones
>   very similar API to the Python client
>   lean and performant
> The initial introduction with accompanying HelloWorld can be found at
>   https://github.com/apache/qpid-proton/pull/18
> Ongoing work is proceeding in my github account in branch cpp-work
>   https://github.com/cliffjansen/qpid-proton/tree/cpp-work
> commit 1453f57ca3f446450ef654505548f1947cb7a0f1 adds listener support, 
> exceptions and a logging interface.
> The initial implementation will provide no thread safety guarantees, but the 
> bone structure should allow that to be added later with no API change.  I 
> still hold out hope of eventually allowing multiple threads processing 
> separate connections concurrently.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to