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

Diff of /lbbs/include/section_list.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.32 by sysadm, Tue Nov 4 13:49:50 2025 UTC Revision 1.39 by sysadm, Thu Nov 20 13:24:13 2025 UTC
# Line 3  Line 3 
3   * section_list   * section_list
4   *   - data models and basic operations of section and article   *   - data models and basic operations of section and article
5   *   *
6   * Copyright (C) 2004-2025 by Leaflet <leaflet@leafok.com>   * Copyright (C) 2004-2025  Leaflet <leaflet@leafok.com>
7   */   */
8    
9  #ifndef _SECTION_LIST_H_  #ifndef _SECTION_LIST_H_
# Line 14  Line 14 
14  #include "menu.h"  #include "menu.h"
15  #include <time.h>  #include <time.h>
16    
17  #define BBS_article_title_max_len 160  #ifdef HAVE_SYSTEM_V
18  #define BBS_article_limit_per_section 50000  #include <sys/sem.h>
19  #define BBS_article_limit_per_page 20  #else
20    #include <semaphore.h>
21    #endif
22    
23  #define BBS_ontop_article_limit_per_section 10  enum section_list_constant_t
24    {
25            BBS_article_title_max_len = 160,
26            BBS_article_limit_per_section = 50000,
27            BBS_article_limit_per_page = 20,
28    
29            BBS_ontop_article_limit_per_section = 10,
30    
31  #define ARTICLE_PER_BLOCK 1000          BBS_article_count_per_block = 1000,
32    };
33    
34  struct article_t  struct article_t
35  {  {
# Line 73  typedef struct section_list_t SECTION_LI Line 82  typedef struct section_list_t SECTION_LI
82    
83  struct section_list_pool_t  struct section_list_pool_t
84  {  {
85          int shmid;          size_t shm_size;
86          SECTION_LIST sections[BBS_max_section];          SECTION_LIST sections[BBS_max_section];
87          int section_count;          int section_count;
88    #ifndef HAVE_SYSTEM_V
89            sem_t sem[BBS_max_section + 1];
90            uint16_t read_lock_count[BBS_max_section + 1];
91            uint16_t write_lock_count[BBS_max_section + 1];
92    #else
93          int semid;          int semid;
94    #endif
95          TRIE_NODE *p_trie_dict_section_by_name;          TRIE_NODE *p_trie_dict_section_by_name;
96          TRIE_NODE *p_trie_dict_section_by_sid;          TRIE_NODE *p_trie_dict_section_by_sid;
97  };  };
# Line 84  typedef struct section_list_pool_t SECTI Line 99  typedef struct section_list_pool_t SECTI
99    
100  extern SECTION_LIST_POOL *p_section_list_pool;  extern SECTION_LIST_POOL *p_section_list_pool;
101    
102  // article_block_count * ARTICLE_PER_BLOCK should be  // article_block_count * BBS_article_count_per_block should be
103  // no less than BBS_article_limit_per_section * BBS_max_section,  // no less than BBS_article_limit_per_section * BBS_max_section,
104  // in order to allocate enough memory for blocks  // in order to allocate enough memory for blocks
105  extern int article_block_init(const char *filename, int block_count);  extern int article_block_init(const char *filename, int block_count);


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

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