GitHub user astitcher opened a pull request:

    https://github.com/apache/qpid-proton/pull/105

    Port of C++ binding to Proton Proactor

    This set of changes reimplements the C++ binding do that it no longer uses 
the Proton Reactor library at all and now only links to the Proton Core and 
Proton Proactor libraries.
    
    It is not 100% finished yet, missing pieces include:
    * Multi thread support - Currently the API is thread safe if you obey the 
thread safety rules, but only one thread is used to service handler callbacks - 
This will be fixed soon.
    * Reconnect is not implemented - If a network connection fails no reconnect 
action is attempted - This will also be fixed, but ntoe that the C++ binding 
implementation of reconnect is subject to change as we don't have a lot of 
experience with it yet.
    
    Included in this PR is a reworking of the mechanism for injecting work into 
safe contexts. The concepts have been renamed for clarity (`proton::work_queue` 
& `proton::work`) and some convenience functions have been added to help those 
(poor benighted souls) using C++03. There is some more work to come which 
should also improve injecting work using the scheduler.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/astitcher/qpid-proton cpp-proactor

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/qpid-proton/pull/105.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #105
    
----
commit 96435b5cfac13283c612ba60feefd73901bc9c4f
Author: Andrew Stitcher <[email protected]>
Date:   2017-01-23T17:32:50Z

    PROTON-1400: [C++ binding] Removed proton_event and proton_handler
    - Removed old low level proton event handling completely
    - Now directly dispatch to the messaging_handler
    - Moved private message::decode directly into message handling code

commit 84dcd7bcaa97106ef43a6a8b44a7f3e819f07107
Author: Andrew Stitcher <[email protected]>
Date:   2017-01-25T04:36:03Z

    PROTON-1400: WIP Use the mt broker example as the example instead of the 
previous st broker
    - The st broker didn't correctly respect the object access constraints from 
within handlers

commit b95f252ede1aaa20c8a5fd1abd42fdbe2c7c3ebe
Author: Andrew Stitcher <[email protected]>
Date:   2017-02-08T07:32:36Z

    PROTON-1400: [C++ binding] Proactor container implementation
    - Remove all reactor use
    - Rearrange object context code
    - Change container includes to proactor container includes

commit ea7f0e989ba5b90aa322b38336dfbbb089fae899
Author: Andrew Stitcher <[email protected]>
Date:   2017-02-09T01:12:36Z

    PROTON-1400: [C++ binding] Remove reactor container implementation files.

commit a0c9e9a756d452bc7c992e4a9875f681b69d5c44
Author: Andrew Stitcher <[email protected]>
Date:   2017-03-03T20:51:58Z

    NO-JIRA: Header file corrections

commit 6ed1d1ab4a68f0a132f44b59a09b1582a2f6b4ff
Author: Andrew Stitcher <[email protected]>
Date:   2017-03-28T17:45:28Z

    PROTON-1400: [C++ example] Rework broker to use container event loops

commit db92f4c73444d186899e5fa28e638195f3adf5f4
Author: Andrew Stitcher <[email protected]>
Date:   2017-04-14T06:13:12Z

    PROTON-1400: [C+ binding] Change semantic for incoming xx_open
    - If not overridden then you get automatic outgoing matching xx_open
    - If overridden then it is assumed you will handle the outgoing open
      yourself.

commit a52e5d16363caa736062359dab0733b4db6b8992
Author: Andrew Stitcher <[email protected]>
Date:   2017-04-20T19:20:40Z

    PROTON-1400: Implement container level event_loops

commit 95a7ded6410e599f6327adedbf5386b5d8b4fca1
Author: Andrew Stitcher <[email protected]>
Date:   2017-04-27T17:05:14Z

    PROTON-1400: [C++ binding] Use pn_proactor_now() to implement 
timestamp::now()

commit 2da87d20cff09b00503dd70341fde73b5ae36bd5
Author: Andrew Stitcher <[email protected]>
Date:   2017-05-15T05:27:54Z

    PROTON-1481: [C++ binding] Rename event_loop API to work_queue

commit efd5ec09f1a7cfc311fe8f612d48160ce16d7e2b
Author: Andrew Stitcher <[email protected]>
Date:   2017-05-15T05:36:52Z

    PROTON-1481: [C++ binding] simpify work_queue code by introducing work type
    - The work type can be created from std::function<void()> or void_function0
    - and so pushes those c++1/C++03 differences into a single place

commit e252354b82f3a4273275a15da614abda3859a2c9
Author: Andrew Stitcher <[email protected]>
Date:   2017-05-15T05:45:43Z

    PROTON-1481: [C++ binding] Split out general work deferring functions to 
the work_queue header
    Add efficient C++11 versions of work factories
    Reorder defer arguments to be like std::bind
    Add extra overloads for defer like std::bind (for free functions arbitrary 
work_queues)

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to