Event-Driven RPC

Registered by Oleg Tsarev

An attractive way to develop a DC++ client is event-driven programming.
Entity in program like processes - connection to server, connection to other client. Entity born new processes, send event, receive and processing events.
In StrongDC++ (source project for boostdc) this way implemented directly on C++.
In BoostDC we need similar protocol, but extended RPC feature (independent on machine and programming language).

Blueprint information

Status:
Not started
Approver:
Oleg Tsarev
Priority:
Undefined
Drafter:
Oleg Tsarev
Direction:
Needs approval
Assignee:
Oleg Tsarev
Definition:
Discussion
Series goal:
None
Implementation:
Deferred
Milestone target:
None

Related branches

Sprints

Whiteboard

An attractive way to develop a DC++ client is event-driven programming.
Entity in program like processes - connection to server, connection to other client. Entity born new processes, send event, receive and processing events.
In StrongDC++ (source project for boostdc) this way implemented directly on C++.

client/Speaker.h
template< typename Listener > class Speaker;

Entity, what accept:
1) Connect and dsconnect "Listener" to Speaker by addListener and removeListener (removeListeners)
2) Send broadcast event by call Speaker::find(...variadic argument number - by overload method), what call Listener::on(...proxy agruments...) on every listener

In BoostDC we need similar feature, but extended RPC feature (independent on machine and programming language).
This feature really need for implementation separated GUI and kernel, and also potential plugins for program.

Also this feature allow split kernel to many small modules, and choose for every module optimal programming language.

Current candidate is ZeroC ICE library.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.