//
// Created by xajhuang on 2022/5/11.
//

#ifndef VCPE_PROJECT_USER_INFO_H
#define VCPE_PROJECT_USER_INFO_H
#ifdef __cplusplus
extern "C" {
#endif
#include <uv.h>
#include "pppoe_info.h"

void               user_info_init();
int                user_info_add(unsigned int userid, PUSER_PARAMS pInfo);
void               user_info_remove(unsigned int userid);
void               user_info_delete(unsigned int userid);
PUSER_INFO         user_info_get_by_userid(unsigned int userid);
void               user_info_change_status(PUSER_INFO_CONTEXT pInfo, USER_STATUS status);
PUSER_INFO_CONTEXT get_all_user_by_id();
PUSER_INFO_CONTEXT get_all_user_by_tag();
uv_rwlock_t       *get_user_lock();
PUSER_INFO_CONTEXT get_user_by_tag(PVXLAN_TAG pTag);
struct netif      *get_user_nic_by_mac(const unsigned char mac[6]);
#ifdef __cplusplus
}
#endif
#endif    //VCPE_PROJECT_USER_INFO_H