Event-Driven RPC
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
- Started by
- Completed by
Related branches
Related bugs
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:
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.