summaryrefslogblamecommitdiffhomepage
path: root/src/nxt_port_rpc.h
blob: 2152e68d36fe106a9101ab8d26867cafe812a1a1 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16















                                                                               







                                                                               







                                                                              

/*
 * Copyright (C) Max Romanov
 * Copyright (C) NGINX, Inc.
 */

#ifndef _NXT_PORT_RPC_H_INCLUDED_
#define _NXT_PORT_RPC_H_INCLUDED_


typedef void (*nxt_port_rpc_handler_t)(nxt_task_t *task,
    nxt_port_recv_msg_t *msg, void *data);

uint32_t nxt_port_rpc_register_handler(nxt_task_t *task, nxt_port_t *port,
    nxt_port_rpc_handler_t ready_handler, nxt_port_rpc_handler_t error_handler,
    nxt_pid_t peer, void *data);
void *nxt_port_rpc_register_handler_ex(nxt_task_t *task, nxt_port_t *port,
    nxt_port_rpc_handler_t ready_handler, nxt_port_rpc_handler_t error_handler,
    size_t ex_size);

uint32_t nxt_port_rpc_ex_stream(void *ex);
void nxt_port_rpc_ex_set_peer(nxt_task_t *task, nxt_port_t *port,
    void *ex, nxt_pid_t peer);

void nxt_port_rpc_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
void nxt_port_rpc_remove_peer(nxt_task_t *task, nxt_port_t *port,
    nxt_pid_t peer);
void nxt_port_rpc_cancel(nxt_task_t *task, nxt_port_t *port, uint32_t stream);


#endif /* _NXT_PORT_RPC_H_INCLUDED_ */