mirror of
https://github.com/RGBCube/serenity
synced 2026-01-19 17:30:59 +00:00
The goal here is to generate most of this code from IPC protocol
descriptions, but for now I've spelled them all out to get started.
Each message gets a wrapper class in the ASAPI_Client or ASAPI_Server
namespace. They are convertible to and from the old message structs.
The real hotness happens when you want to make a synchronous request
to the other side:
auto response = send_sync<ASAPI_Client::GetMainMixVolume>();
Each request class knows his corresponding response class, so in the
above example, "response" will be an ASAPI_Server::DidGetMainMixVolume
object, and we can get the volume like so:
int volume = response.volume();
For posting messages that don't expect a response, you can still use
post_message() since the message classes are convertible:
post_message(ASAPI_Server::DidGetMainMixVolume(volume));
It's not perfect yet, but I already really like it. :^)
|
||
|---|---|---|
| .. | ||
| ASClientConnection.cpp | ||
| ASClientConnection.h | ||
| ASEventLoop.cpp | ||
| ASEventLoop.h | ||
| ASMixer.cpp | ||
| ASMixer.h | ||
| main.cpp | ||
| Makefile | ||