mbroadst / qamqp

AMQP 0.9.1 implementation for Qt
Other
151 stars 127 forks source link

State-machine based automatic exchange and queue set-up. #26

Closed sjlongland closed 9 years ago

sjlongland commented 9 years ago

This uses crude state machines (use of QStateMachine is on the road map) to implement various operations for Queues and Exchanges.

If the connection gets dropped or a channel forcibly closed, this allows the exchange or queue to restore its state when the channel re-opens, including binding to exchanges/topics in the case of queues. It also allows for set-and-forget configuration of exchanges and queues, since the state machine will take care to ensure the steps are done at the appropriate times.

Status of this branch:

sjlongland commented 9 years ago

Okay, I've done some splitting up of the commits. This required re-writing a couple.

https://github.com/sjlongland/qamqp/tree/state-machine-client :- Changes to the client itself, namely pointer storage. https://github.com/sjlongland/qamqp/tree/state-machine-chan :- Changes to QAmqpChannel, based on state-machine-client. https://github.com/sjlongland/qamqp/tree/state-machine-ex :- Changes to QAmqpExchange, based on state-machine-chan. https://github.com/sjlongland/qamqp/tree/state-machine-q :- Changes to QAmqpQueue, based on state-machine-ex.

mbroadst commented 9 years ago

@sjlongland cool lets put up the PR for the state-machine-client and work through it? seems the rest are dependent on that

sjlongland commented 9 years ago

Since we're doing this in pieces, I'll close this PR and we'll address the changes in separate requests.