refactor: 收口为hub/peer/bridge 三程序并统一 支持 tcp/udp/kcp"
This commit is contained in:
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