46 lines
2.2 KiB
C
46 lines
2.2 KiB
C
#ifndef OMNI_PEER_KCP_CLIENT_H
|
|
#define OMNI_PEER_KCP_CLIENT_H
|
|
|
|
#include "transport_kcp.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct kcp_client kcp_client_t;
|
|
typedef struct kcp_client_recv_meta {
|
|
message_type_t type;
|
|
uint64_t id;
|
|
char from[OMNI_MAX_PEER_ID];
|
|
char to[OMNI_MAX_PEER_ID];
|
|
char file_name[OMNI_MAX_FILE_NAME];
|
|
size_t body_len;
|
|
} kcp_client_recv_meta_t;
|
|
typedef struct kcp_client_state {
|
|
int connected;
|
|
int registered;
|
|
uint32_t server_idle_ms;
|
|
char last_server_error[256];
|
|
} kcp_client_state_t;
|
|
|
|
kcp_client_t *kcp_client_dial_with_options(const char *server_addr, const char *dial_addr, const char *peer_id, const char *bind_ip, const char *bind_device, const kcp_conn_options_t *options, latency_logger_t *logger, kcp_packet_debug_logger_t *packet_logger, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
|
|
kcp_client_t *kcp_client_dial(const char *server_addr, const char *dial_addr, const char *peer_id, const char *bind_ip, const char *bind_device, latency_logger_t *logger, kcp_packet_debug_logger_t *packet_logger, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
|
|
const char *kcp_client_id(const kcp_client_t *client);
|
|
int kcp_client_send_text(kcp_client_t *client, const char *to, const char *text);
|
|
int kcp_client_send_binary(kcp_client_t *client, const char *to, const void *data, size_t data_len);
|
|
int kcp_client_send_file_path(kcp_client_t *client, const char *to, const char *path);
|
|
int kcp_client_receive_timed(kcp_client_t *client, message_t *out_msg, int timeout_ms);
|
|
int kcp_client_receive(kcp_client_t *client, message_t *out_msg);
|
|
int kcp_client_receive_binary_into(kcp_client_t *client, void *buffer, size_t buffer_len, kcp_client_recv_meta_t *out_meta, int timeout_ms);
|
|
int kcp_client_persist_message(kcp_client_t *client, const message_t *msg, const char *inbox_dir, char *out_path, size_t out_path_len);
|
|
void kcp_client_state_snapshot(kcp_client_t *client, kcp_client_state_t *out_state);
|
|
void kcp_client_runtime_stats_snapshot(kcp_client_t *client, kcp_runtime_stats_t *out_stats);
|
|
int kcp_client_close(kcp_client_t *client);
|
|
void kcp_client_free(kcp_client_t *client);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|