/[LeafOK_CVS]/lbbs/include/user_list.h
ViewVC logotype

Annotation of /lbbs/include/user_list.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.17 - (hide annotations)
Fri Oct 24 02:03:15 2025 UTC (4 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.16: +1 -1 lines
Content type: text/x-chdr
Update user_list
Refine search algorithm

1 sysadm 1.1 /***************************************************************************
2     user_list.h - description
3     -------------------
4     Copyright : (C) 2004-2025 by Leaflet
5     Email : leaflet@leafok.com
6     ***************************************************************************/
7    
8     /***************************************************************************
9     * *
10     * This program is free software; you can redistribute it and/or modify *
11     * it under the terms of the GNU General Public License as published by *
12     * the Free Software Foundation; either version 3 of the License, or *
13     * (at your option) any later version. *
14     * *
15     ***************************************************************************/
16    
17     #ifndef _USER_LIST_H_
18     #define _USER_LIST_H_
19    
20     #include "bbs.h"
21 sysadm 1.13 #include "common.h"
22 sysadm 1.1 #include <mysql/mysql.h>
23    
24 sysadm 1.2 #define BBS_user_limit_per_page 20
25 sysadm 1.5 #define BBS_session_id_length 32
26 sysadm 1.2
27 sysadm 1.10 #define BBS_user_intro_avg_len 256
28 sysadm 1.14 #define BBS_user_intro_max_len 4096
29     #define BBS_user_intro_max_line 10
30 sysadm 1.10
31 sysadm 1.1 struct user_info_t
32     {
33 sysadm 1.6 int32_t id;
34 sysadm 1.1 int32_t uid;
35     char username[BBS_username_max_len + 1];
36     char nickname[BBS_nickname_max_len + 1];
37     char gender;
38     int8_t gender_pub;
39     int32_t life;
40     int32_t exp;
41 sysadm 1.10 int32_t visit_count;
42 sysadm 1.1 time_t signup_dt;
43     time_t last_login_dt;
44 sysadm 1.16 time_t last_logout_dt;
45 sysadm 1.1 time_t birthday;
46 sysadm 1.10 const char *intro;
47 sysadm 1.1 };
48     typedef struct user_info_t USER_INFO;
49    
50 sysadm 1.6 struct user_info_index_uid_t
51     {
52     int32_t uid;
53     int32_t id;
54     };
55     typedef struct user_info_index_uid_t USER_INFO_INDEX_UID;
56    
57 sysadm 1.1 struct user_list_t
58     {
59     USER_INFO users[BBS_max_user_count];
60 sysadm 1.6 USER_INFO_INDEX_UID index_uid[BBS_max_user_count];
61 sysadm 1.1 int32_t user_count;
62 sysadm 1.10 char user_intro_buf[BBS_user_intro_avg_len * BBS_max_user_count];
63 sysadm 1.1 };
64     typedef struct user_list_t USER_LIST;
65    
66 sysadm 1.5 struct user_online_info_t
67     {
68 sysadm 1.6 int32_t id;
69 sysadm 1.5 char session_id[BBS_session_id_length + 1];
70     USER_INFO user_info;
71     char ip[IP_ADDR_LEN];
72     char current_action[BBS_current_action_max_len + 1];
73     const char *current_action_title;
74     time_t login_tm;
75     time_t last_tm;
76     };
77     typedef struct user_online_info_t USER_ONLINE_INFO;
78    
79     struct user_online_list_t
80     {
81     USER_ONLINE_INFO users[BBS_max_user_online_count];
82 sysadm 1.9 USER_INFO_INDEX_UID index_uid[BBS_max_user_online_count];
83 sysadm 1.5 int32_t user_count;
84     };
85     typedef struct user_online_list_t USER_ONLINE_LIST;
86 sysadm 1.1
87 sysadm 1.17 extern int user_list_pool_init(const char *filename);
88 sysadm 1.1 extern void user_list_pool_cleanup(void);
89     extern int set_user_list_pool_shm_readonly(void);
90     extern int detach_user_list_pool_shm(void);
91    
92 sysadm 1.5 extern int user_list_pool_reload(int online_user);
93 sysadm 1.1
94 sysadm 1.2 extern int query_user_list(int page_id, USER_INFO *p_users, int *p_user_count, int *p_page_count);
95 sysadm 1.5 extern int query_user_online_list(int page_id, USER_ONLINE_INFO *p_online_users, int *p_user_count, int *p_page_count);
96 sysadm 1.2
97 sysadm 1.6 extern int query_user_info(int32_t id, USER_INFO *p_user);
98     extern int query_user_info_by_uid(int32_t uid, USER_INFO *p_user);
99 sysadm 1.8
100 sysadm 1.6 extern int query_user_online_info(int32_t id, USER_ONLINE_INFO *p_user);
101 sysadm 1.8 extern int query_user_online_info_by_uid(int32_t uid, USER_ONLINE_INFO *p_users, int *p_user_cnt, int start_id);
102 sysadm 1.3
103 sysadm 1.13 extern int get_user_id_list(int32_t *p_uid_list, int *p_user_cnt, int start_uid);
104    
105     extern int user_stat_update(void);
106 sysadm 1.15 extern int user_article_cnt_inc(int32_t uid, int n);
107     extern int get_user_article_cnt(int32_t uid);
108 sysadm 1.13
109 sysadm 1.1 #endif //_USER_LIST_H_

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1