Files
chat_rebot-connect-with-one…/c/network/network.h
2026-01-29 14:03:43 +08:00

58 lines
1.2 KiB
C

#ifndef NETWORK
#define NETWORK
#define POOL_ON 1
#define SERVER_ON 2
#define ALL_STOP 0
#include <pthread.h>
#include "tools/log/log.h"
#include "erroprocess/erroprocess.h"
#include <stdatomic.h>
//单个线程模型
typedef struct pthread_module
{
pthread_t pthread_id;
int fifo_fd[2];
atomic_int status;
}pth_m;
//打包线程模型参数
typedef struct net_args
{
log_manager *log;
pth_m *pth;
}net_args;
typedef struct network_manager//网络管理器
{
pth_m pool[NET_MAX_POOL];
void *(*run_network)(void*);//启动网络监听
int (*start_pool)(struct network_manager*);
int (*shutdown_pool)(struct network_manager*);
int (*iss_work)(struct network_manager*,char *);
int fifo_fd[2];
pthread_t pid;
log_manager *logmanager;
indiector *err_indictor;
int last_alc;
int port;
int epoll_fd;
int http_fd;
int statue;
}netm;
typedef struct rebot_message
{
char raw_message[NET_MAX_MESSAGE_BUF];
char nickname[64];
char gid[32];
char uid[32];
char message_type;
sem_t status;
int state;
}rbt_msg;
int init_networkmanager(netm *self,int *fifo,log_manager *logmanager,int port);
#endif