2009-05-20 21:23:51 +00:00
|
|
|
/*
|
|
|
|
* dirtyPageTable.h
|
|
|
|
*
|
|
|
|
* Created on: May 18, 2009
|
|
|
|
* Author: sears
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef DIRTYPAGETABLE_H_
|
|
|
|
#define DIRTYPAGETABLE_H_
|
|
|
|
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
|
|
|
|
typedef struct stasis_dirty_page_table_t stasis_dirty_page_table_t;
|
|
|
|
|
|
|
|
stasis_dirty_page_table_t * stasis_dirty_page_table_init();
|
|
|
|
void stasis_dirty_page_table_deinit(stasis_dirty_page_table_t * dirtyPages);
|
|
|
|
|
|
|
|
void stasis_dirty_page_table_set_dirty(stasis_dirty_page_table_t * dirtyPages, Page * p);
|
|
|
|
void stasis_dirty_page_table_set_clean(stasis_dirty_page_table_t * dirtyPages, Page * p);
|
|
|
|
int stasis_dirty_page_table_is_dirty(stasis_dirty_page_table_t * dirtyPages, Page * p);
|
|
|
|
|
2009-08-11 17:23:43 +00:00
|
|
|
pageid_t stasis_dirty_page_table_dirty_count(stasis_dirty_page_table_t * dirtyPages);
|
|
|
|
|
2009-08-13 23:18:49 +00:00
|
|
|
int stasis_dirty_page_table_flush(stasis_dirty_page_table_t * dirtyPages);
|
2009-05-20 21:23:51 +00:00
|
|
|
lsn_t stasis_dirty_page_table_minRecLSN(stasis_dirty_page_table_t* dirtyPages);
|
|
|
|
|
|
|
|
/**
|
|
|
|
@todo flushRange's API sucks. It should be two functions, "startRangeFlush" and "waitRangeFlushes" or something.
|
|
|
|
*/
|
|
|
|
void stasis_dirty_page_table_flush_range(stasis_dirty_page_table_t * dirtyPages, pageid_t start, pageid_t stop);
|
|
|
|
|
|
|
|
END_C_DECLS
|
|
|
|
|
|
|
|
#endif /* DIRTYPAGETABLE_H_ */
|