Age | Commit message (Collapse) | Author |
|
This was happening for async (response-less) messages, since they were
returning void and were were always just wrapping the return type in
an OwnPtr no matter what.
|
|
|
|
- Add IEndpoint::handle(IMessage), a big switch table on message type.
handle() will return a response message for synchronous messages,
and return nullptr otherwise.
- Use i32 instead of int for everything
- Make IMessage::encode() const
- Make IEndpoint::decode_message() static, this allows template code to
decode messages without an endpoint instance on hand.
|
|
For simplicity's sake, they are all "const type& name() const"
|
|
|
|
An endpoint now knows how to decode a ByteBuffer into an IMessage.
|
|
|
|
|
|
Each endpoint namespace will have an enum class MessageID where you can
find all of its messages.
|
|
Each message will now have a typedef called ResponseType as an alias
for the expected response type. This will aid in implementing the sync
messaging code.
|
|
These are not entirely finished but it's starting to take shape. :^)
|
|
Instead of doing everything manually in C++, let's do some codegen.
This patch adds a crude but effective IPC definition parser, along
with two initial definition files for the AudioServer's client and
server endpoints.
|