📄 pager.h
字号:
/*
** The size of one page
**
** You can change this value to another (reasonable) value you want.
** It need not be a power of two, though the interface to the disk
** will likely be faster if it is.
**
** Experiments show that a page size of 1024 gives the best speed
** for common usages. The speed differences for different sizes
** such as 512, 2048, 4096, an so forth, is minimal. Note, however,
** that changing the page size results in a completely imcompatible
** file format.
*/
#ifndef _PAGER_H_
#define _PAGER_H_
#ifndef eDb_PAGE_SIZE
#define eDb_PAGE_SIZE PAGE_SIZE
#endif
/*
** Number of extra bytes of data allocated at the end of each page and
** stored on disk but not used by the higher level btree layer. Changing
** this value results in a completely incompatible file format.
*/
#ifndef eDb_PAGE_RESERVE
#define eDb_PAGE_RESERVE 0
#endif
/*
** The total number of usable bytes stored on disk for each page.
** The usable bytes come at the beginning of the page and the reserve
** bytes come at the end.
*/
#define eDb_USABLE_SIZE (eDb_PAGE_SIZE-eDb_PAGE_RESERVE)
/*
** Maximum number of pages in one database. (This is a limitation of
** imposed by 4GB files size limits.)
*/
#define eDb_MAX_PAGE 1073741823
/*
** The type used to represent a page number. The first page in a file
** is called page 1. 0 is used to represent "not a page".
*/
typedef unsigned int Pgno;
/*
** Each open file is managed by a separate instance of the "Pager" structure.
*/
typedef struct Pager Pager;
/*
** See source code comments for a detailed description of the following
** routines:
*/
int eDbpager_open(Pager **ppPager, const char *zFilename,
int nPage, int nExtra, int useJournal);
int eDbpager_close(Pager *pPager);
void eDbpager_set_destructor(Pager*, void(*)(void*));
void eDbpager_set_cachesize(Pager*, int);
void eDbpager_set_safety_level(Pager*,int);
void eDbpager_set_codec(Pager*,void(*)(void*,void*,Pgno,int),void*);
int eDbpager_get(Pager *pPager, Pgno pgno, void **ppPage);
void *eDbpager_lookup(Pager *pPager, Pgno pgno);
int eDbpager_ref(void*);
int eDbpager_unref(void*);
int eDbpager_iswriteable(void*);
int eDbpager_isreadonly(Pager*);
int eDbpager_write(void*);
int eDbpager_overwrite(Pager *pPager, Pgno pgno, void*);
Pgno eDbpager_pagenumber(void*);
int eDbpager_pagecount(Pager*);
int *eDbpager_stats(Pager*);
int eDbpager_begin(void*);
int eDbpager_commit(Pager*);
int eDbpager_rollback(Pager*);
int eDbpager_ckpt_begin(Pager*);
int eDbpager_ckpt_commit(Pager*);
int eDbpager_ckpt_rollback(Pager*);
void eDbpager_dont_rollback(void*);
void eDbpager_dont_write(Pager*, Pgno);
const char *eDbpager_filename(Pager*);
int eDbpager_rename(Pager*, const char *zNewName);
int eDbpager_truncate(Pager*,Pgno);
#ifdef eDb_TEST
void eDbpager_refdump(Pager*);
int pager_refinfo_enable;
int journal_format;
#endif
#endif /*_PAGER_H_*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -