refactor: 收口为hub/peer/bridge 三程序并统一 支持 tcp/udp/kcp"
This commit is contained in:
@@ -80,6 +80,13 @@ typedef struct OmniStats {
|
||||
/* 初始化统计模块,在程序启动时调用一次 */
|
||||
void logger_init(void);
|
||||
|
||||
/* 设置当前进程的日志上下文,便于 perf/jsonl 日志携带协议与节点信息。 */
|
||||
void logger_set_context(const char *app,
|
||||
const char *proto,
|
||||
const char *mode,
|
||||
const char *role,
|
||||
const char *self_id);
|
||||
|
||||
/* 记录一次发送/接收 */
|
||||
void logger_on_send(size_t bytes);
|
||||
void logger_on_recv(size_t bytes);
|
||||
|
||||
59
include/peer_transport.h
Normal file
59
include/peer_transport.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#ifndef OMNISOCKET_PEER_TRANSPORT_H
|
||||
#define OMNISOCKET_PEER_TRANSPORT_H
|
||||
|
||||
#include "common.h"
|
||||
#include "network.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct PeerTransport PeerTransport;
|
||||
typedef struct PeerTransportSession PeerTransportSession;
|
||||
|
||||
typedef struct PeerTransportEvent {
|
||||
int kind;
|
||||
PeerTransportSession *session;
|
||||
MsgHeader header;
|
||||
} PeerTransportEvent;
|
||||
|
||||
enum {
|
||||
PEER_TRANSPORT_EVENT_NONE = 0,
|
||||
PEER_TRANSPORT_EVENT_MESSAGE = 1,
|
||||
PEER_TRANSPORT_EVENT_CLOSED = 2
|
||||
};
|
||||
|
||||
PeerTransport *peer_transport_open(OmniRole role,
|
||||
OmniProtocol proto,
|
||||
const char *bind_ip,
|
||||
uint16_t bind_port,
|
||||
const char *peer_ip,
|
||||
uint16_t peer_port);
|
||||
|
||||
void peer_transport_close(PeerTransport *transport);
|
||||
|
||||
PeerTransportSession *peer_transport_default_session(PeerTransport *transport);
|
||||
|
||||
int peer_transport_send(PeerTransport *transport,
|
||||
PeerTransportSession *session,
|
||||
uint32_t type,
|
||||
const void *payload,
|
||||
uint32_t payload_len);
|
||||
|
||||
int peer_transport_next_event(PeerTransport *transport,
|
||||
PeerTransportEvent *event,
|
||||
uint8_t *payload_buf,
|
||||
size_t payload_cap,
|
||||
int timeout_ms);
|
||||
|
||||
void peer_transport_close_session(PeerTransport *transport,
|
||||
PeerTransportSession *session);
|
||||
|
||||
const char *peer_transport_session_remote(const PeerTransportSession *session,
|
||||
char *buf,
|
||||
size_t buf_sz);
|
||||
|
||||
uint16_t peer_transport_session_remote_port(const PeerTransportSession *session);
|
||||
|
||||
const char *peer_transport_proto_name(OmniProtocol proto);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user