summaryrefslogtreecommitdiff
path: root/DevTools/IPCCompiler
AgeCommit message (Collapse)Author
2019-08-03IPCCompiler: Don't generate "OwnPtr<void>" as a handle() return typeAndreas Kling
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.
2019-08-03IPCCompiler+AudioServer: Accept "//"-style comments in IPC defintionsAndreas Kling
2019-08-03IPCCompiler: More work towards AudioServer bringupAndreas Kling
- 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.
2019-08-03IPCCompiler: Emit message parameter gettersAndreas Kling
For simplicity's sake, they are all "const type& name() const"
2019-08-03IPCCompiler: Make decode_message() return nullptr for unknown messagesAndreas Kling
2019-08-03IPCCompiler: Generate message decoding functionsAndreas Kling
An endpoint now knows how to decode a ByteBuffer into an IMessage.
2019-08-03IPCCompiler: Emit IEndpoint::name() overridesAndreas Kling
2019-08-03IPCCompiler: Emit message constructors + include ID in serializationAndreas Kling
2019-08-03IPCCompiler: Generate getters for message ID's and message namesAndreas Kling
Each endpoint namespace will have an enum class MessageID where you can find all of its messages.
2019-08-03IPCCompiler: Typedef the response message types as "ResponseType"Andreas Kling
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.
2019-08-03IPCCompiler: Generate endpoint and message classesAndreas Kling
These are not entirely finished but it's starting to take shape. :^)
2019-08-03IPCCompiler: Start working on a simple IPC definition languageAndreas Kling
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.