You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Непрозрачный тип для RPC клиента (обёртка над IpcPipeChannel)
|
|
typedef struct RpcClient RpcClient;
|
|
|
|
// Непрозрачный тип для маршаллера (обёртка над IpcMarshaller)
|
|
typedef struct IpcMarshallerHandle IpcMarshallerHandle;
|
|
|
|
// Создание RPC клиента
|
|
// read_pipe - путь к FIFO для чтения ответов
|
|
// write_pipe - путь к FIFO для отправки запросов
|
|
// Возвращает указатель на клиент или NULL при ошибке
|
|
RpcClient* rpc_client_create(const char* read_pipe, const char* write_pipe);
|
|
|
|
// Уничтожение RPC клиента
|
|
void rpc_client_destroy(RpcClient* client);
|
|
|
|
// Создание маршаллера для конкретного объекта
|
|
// client - RPC клиент
|
|
// object_id - идентификатор удалённого объекта
|
|
// Возвращает указатель на маршаллер или NULL при ошибке
|
|
IpcMarshallerHandle* rpc_client_create_marshaller(RpcClient* client, int object_id);
|
|
|
|
// Уничтожение маршаллера
|
|
void rpc_marshaller_destroy(IpcMarshallerHandle* marshaller);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|