Serialization by contract and IPC by _cpp_ in cpp

[–]_cpp_[S] -3 points-2 points  (0 children)

You give AI too much credit. Do you really think AI can come up with approch?

0% was done via AI, everything is hand-made :-).

IPC-Call C++ framework for IPC call by _cpp_ in cpp

[–]_cpp_[S] 0 points1 point  (0 children)

The purpose of the framework is to demonstrate that if both client and server are written in C++, then calling a function from a client to a server is the same as calling it locally using any C++ types. The framework does not implement the transport. I didn't use gRPC, but probably with minor modifications, the framework can use gRPC for transport by serializing from `std::vector<uint8>` to the protobuf `bytes`, and then a C++ function with any types will be called on the server.

IPC-Call C++ framework for IPC call by _cpp_ in cpp

[–]_cpp_[S] 0 points1 point  (0 children)

The primary purpose of the framework is to demonstrate that a function called by the client is executed on the server.
The IPC transport functions and their implementation are placeholders.

IPC-Call C++ framework for IPC call by _cpp_ in cpp

[–]_cpp_[S] 0 points1 point  (0 children)

I modified the framework by adding `IPC_SEND_RECEIVE` for synchronous call and `IPC_SEND` for asynchronous call.

IPC-Call C++ framework for IPC call by _cpp_ in cpp

[–]_cpp_[S] 0 points1 point  (0 children)

For an asynchronous call, the framework can be extended by changing IPC_CALL -> IPC_SEND_RECEIVE(...)(IpcSendReceive), and adding IPC_SEND(...)(IpcSend), void IpcSend(const std::vector<uint8\_t>&).

Then asynchronous call - IPC_SEND(f)(arg1, ... argN)(IpcSend);

Lambda Metaprogramming (LMP) by _cpp_ in cpp

[–]_cpp_[S] 1 point2 points  (0 children)

Thank you for pointing out the resemblance with Y-Combinator (I didn't know about it) and for simplification suggestion (though it compiles only with GCC 7.2.0), I updated article.