rename RpcClient to ProxyMarshaller
This commit is contained in:
@@ -29,7 +29,7 @@ project/
|
||||
│ ├── IpcMessage.h # типизированное IPC‑сообщение (add<T>/get<T>)
|
||||
│ ├── IpcPipeChannel.h# реализация RpcChannel поверх FIFO
|
||||
│ ├── RpcChannel.h # абстрактный канал для RPC
|
||||
│ ├── RpcClient.h # клиентское ядро RPC (call<Ret>(method, args...))
|
||||
│ ├── ProxyMarshaller.h # клиентское ядро RPC (call<Ret>(method, args...))
|
||||
│ └── RpcInvoker.h # серверное ядро RPC (dispatch)
|
||||
├── tools
|
||||
│ ├── generate_rpc.py
|
||||
@@ -53,10 +53,10 @@ project/
|
||||
* `IpcChannel` — абстракция транспорта: `send(const IpcMessage&)`, `receive() -> IpcMessage`.
|
||||
* `IpcPipeChannel` — реализация поверх двух FIFO (`/tmp/fifo_to_server`, `/tmp/fifo_to_client`), которая внутри работает со строками, но наружу — только с `IpcMessage`.
|
||||
* **Уровень RPC-ядра**:
|
||||
* `RpcClient` — собирает `IpcMessage` из имени метода и аргументов, отправляет через `RpcChannel` и читает ответ.
|
||||
* `ProxyMarshaller` — собирает `IpcMessage` из имени метода и аргументов, отправляет через `RpcChannel` и читает ответ.
|
||||
* `RpcInvoker` — по имени метода (первое поле сообщения) находит зарегистрированную функцию-член и вызывает её, читая аргументы через `get<T>()`.
|
||||
* **Сгенерированные обёртки**:
|
||||
* `*.proxy.*` — используют `RpcClient` и `RpcChannel`, не зависят от конкретного транспорта.
|
||||
* `*.proxy.*` — используют `ProxyMarshaller` и `RpcChannel`, не зависят от конкретного транспорта.
|
||||
* `*.skeleton.*` — используют `RpcInvoker` и принимают/возвращают `IpcMessage` для диспетчеризации вызовов.
|
||||
|
||||
---
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
#include "IpcChannel.h"
|
||||
|
||||
class RpcClient {
|
||||
class ProxyMarshaller {
|
||||
public:
|
||||
explicit RpcClient(IpcChannel& ch) : channel(ch) {}
|
||||
explicit ProxyMarshaller(IpcChannel& ch) : channel(ch) {}
|
||||
|
||||
template<typename Ret, typename... Args>
|
||||
Ret call(const std::string& method, const Args&... args) {
|
||||
@@ -1,12 +1,12 @@
|
||||
#include "{{ cls.name }}.proxy.h"
|
||||
#include "rpc/RpcClient.h"
|
||||
#include "rpc/ProxyMarshaller.h"
|
||||
|
||||
class {{ cls.name }}Proxy::Impl {
|
||||
public:
|
||||
explicit Impl(IpcChannel& ch)
|
||||
: client(ch) {}
|
||||
|
||||
RpcClient client;
|
||||
ProxyMarshaller client;
|
||||
};
|
||||
|
||||
{{ cls.name }}Proxy::{{ cls.name }}Proxy(IpcChannel& ch)
|
||||
|
||||
Reference in New Issue
Block a user