diff options
author | Keith Bostic <keith@wiredtiger.com> | 2013-01-08 15:57:49 +0000 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2013-01-08 15:57:49 +0000 |
commit | 59444dd590b02553e4ee6ff30897b948e80e9489 (patch) | |
tree | 9c2f1b2f6736e68fbb13e2fae03e3fd779b7a8c4 | |
parent | 6f4673c288161e66870d43393fda74fac0a19d2d (diff) | |
download | mongo-59444dd590b02553e4ee6ff30897b948e80e9489.tar.gz |
Create a #define that initializes a static WT_CURSOR and use it.
-rw-r--r-- | dist/s_define.list | 1 | ||||
-rw-r--r-- | src/cursor/cur_backup.c | 46 | ||||
-rw-r--r-- | src/cursor/cur_config.c | 43 | ||||
-rw-r--r-- | src/cursor/cur_dump.c | 42 | ||||
-rw-r--r-- | src/cursor/cur_file.c | 42 | ||||
-rw-r--r-- | src/cursor/cur_index.c | 42 | ||||
-rw-r--r-- | src/cursor/cur_stat.c | 43 | ||||
-rw-r--r-- | src/cursor/cur_table.c | 42 | ||||
-rw-r--r-- | src/include/cursor.h | 46 | ||||
-rw-r--r-- | src/lsm/lsm_cursor.c | 42 |
10 files changed, 167 insertions, 222 deletions
diff --git a/dist/s_define.list b/dist/s_define.list index a98814b2eb0..13506d003f0 100644 --- a/dist/s_define.list +++ b/dist/s_define.list @@ -74,6 +74,7 @@ STAILQ_REMOVE_HEAD STAILQ_REMOVE_HEAD_UNTIL TAILQ_CONCAT TAILQ_EMPTY +TAILQ_ENTRY TAILQ_FOREACH_REVERSE TAILQ_HEAD TAILQ_HEAD_INITIALIZER diff --git a/src/cursor/cur_backup.c b/src/cursor/cur_backup.c index f48676c70ff..318d1099fbb 100644 --- a/src/cursor/cur_backup.c +++ b/src/cursor/cur_backup.c @@ -113,37 +113,21 @@ int __wt_curbackup_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - NULL, /* get-key */ - (int (*) /* get-value */ - (WT_CURSOR *, ...))__wt_cursor_notsup, - (void (*) /* set-key */ - (WT_CURSOR *, ...))__wt_cursor_notsup, - (void (*) /* set-value */ - (WT_CURSOR *, ...))__wt_cursor_notsup, - NULL, /* compare */ - __curbackup_next, - __wt_cursor_notsup, /* prev */ - __curbackup_reset, /* reset */ - __wt_cursor_notsup, /* search */ - (int (*) /* search-near */ - (WT_CURSOR *, int *))__wt_cursor_notsup, - __wt_cursor_notsup, /* insert */ - __wt_cursor_notsup, /* update */ - __wt_cursor_notsup, /* remove */ - __curbackup_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + NULL, /* get-key */ + __wt_cursor_notsup, /* get-value */ + __wt_cursor_notsup, /* set-key */ + __wt_cursor_notsup, /* set-value */ + NULL, /* compare */ + __curbackup_next, /* next */ + __wt_cursor_notsup, /* prev */ + __curbackup_reset, /* reset */ + __wt_cursor_notsup, /* search */ + __wt_cursor_notsup, /* search-near */ + __wt_cursor_notsup, /* insert */ + __wt_cursor_notsup, /* update */ + __wt_cursor_notsup, /* remove */ + __curbackup_close); /* close */ WT_CURSOR *cursor; WT_CURSOR_BACKUP *cb; WT_DECL_RET; diff --git a/src/cursor/cur_config.c b/src/cursor/cur_config.c index a0173f0671e..4473f3b440d 100644 --- a/src/cursor/cur_config.c +++ b/src/cursor/cur_config.c @@ -25,34 +25,21 @@ int __wt_curconfig_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, /* compare */ - __wt_cursor_notsup, /* next */ - __wt_cursor_notsup, /* prev */ - __wt_cursor_notsup, /* reset */ - __wt_cursor_notsup, /* search */ - /* search-near */ - (int (*)(WT_CURSOR *, int *))__wt_cursor_notsup, - __wt_cursor_notsup, /* insert */ - __wt_cursor_notsup, /* update */ - __wt_cursor_notsup, /* remove */ - __curconfig_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + NULL, /* get-key */ + NULL, /* get-value */ + NULL, /* set-key */ + NULL, /* set-value */ + NULL, /* compare */ + __wt_cursor_notsup, /* next */ + __wt_cursor_notsup, /* prev */ + __wt_cursor_notsup, /* reset */ + __wt_cursor_notsup, /* search */ + __wt_cursor_notsup, /* search-near */ + __wt_cursor_notsup, /* insert */ + __wt_cursor_notsup, /* update */ + __wt_cursor_notsup, /* remove */ + __curconfig_close); WT_CURSOR_CONFIG *cconfig; WT_CURSOR *cursor; WT_DECL_RET; diff --git a/src/cursor/cur_dump.c b/src/cursor/cur_dump.c index 8594ca20bc0..053bb816a53 100644 --- a/src/cursor/cur_dump.c +++ b/src/cursor/cur_dump.c @@ -289,33 +289,21 @@ err: API_END(session); int __wt_curdump_create(WT_CURSOR *child, WT_CURSOR *owner, WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - __curdump_get_key, - __curdump_get_value, - __curdump_set_key, - __curdump_set_value, - NULL, /* compare */ - __curdump_next, - __curdump_prev, - __curdump_reset, - __curdump_search, - __curdump_search_near, - __curdump_insert, - __curdump_update, - __curdump_remove, - __curdump_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + __curdump_get_key, /* get-key */ + __curdump_get_value, /* get-value */ + __curdump_set_key, /* set-key */ + __curdump_set_value, /* set-value */ + NULL, /* compare */ + __curdump_next, /* next */ + __curdump_prev, /* prev */ + __curdump_reset, /* reset */ + __curdump_search, /* search */ + __curdump_search_near, /* search-near */ + __curdump_insert, /* insert */ + __curdump_update, /* update */ + __curdump_remove, /* remove */ + __curdump_close); /* close */ WT_CURSOR *cursor; WT_CURSOR_DUMP *cdump; WT_SESSION_IMPL *session; diff --git a/src/cursor/cur_file.c b/src/cursor/cur_file.c index 14593742210..b72e6e8a0bd 100644 --- a/src/cursor/cur_file.c +++ b/src/cursor/cur_file.c @@ -279,33 +279,21 @@ int __wt_curfile_create(WT_SESSION_IMPL *session, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - __curfile_compare, - __curfile_next, - __curfile_prev, - __curfile_reset, - __curfile_search, - __curfile_search_near, - __curfile_insert, - __curfile_update, - __curfile_remove, - __curfile_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + NULL, /* get-key */ + NULL, /* get-value */ + NULL, /* set-key */ + NULL, /* set-value */ + __curfile_compare, /* compare */ + __curfile_next, /* next */ + __curfile_prev, /* prev */ + __curfile_reset, /* reset */ + __curfile_search, /* search */ + __curfile_search_near, /* search-near */ + __curfile_insert, /* insert */ + __curfile_update, /* update */ + __curfile_remove, /* remove */ + __curfile_close); /* close */ WT_BTREE *btree; WT_CONFIG_ITEM cval; WT_CURSOR *cursor; diff --git a/src/cursor/cur_index.c b/src/cursor/cur_index.c index 2bdd57dcfab..91ae5e2c8f2 100644 --- a/src/cursor/cur_index.c +++ b/src/cursor/cur_index.c @@ -337,33 +337,21 @@ int __wt_curindex_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - NULL, - __curindex_get_value, - NULL, - __curindex_set_value, - NULL, /* compare */ - __curindex_next, - __curindex_prev, - __curindex_reset, - __curindex_search, - __curindex_search_near, - __wt_cursor_notsup, /* insert */ - __wt_cursor_notsup, /* update */ - __wt_cursor_notsup, /* remove */ - __curindex_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + NULL, /* get-key */ + __curindex_get_value, /* get-value */ + NULL, /* set-key */ + __curindex_set_value, /* set-value */ + NULL, /* compare */ + __curindex_next, /* next */ + __curindex_prev, /* prev */ + __curindex_reset, /* reset */ + __curindex_search, /* search */ + __curindex_search_near, /* search-near */ + __wt_cursor_notsup, /* insert */ + __wt_cursor_notsup, /* update */ + __wt_cursor_notsup, /* remove */ + __curindex_close); /* close */ WT_CURSOR_INDEX *cindex; WT_CURSOR *cursor; WT_DECL_RET; diff --git a/src/cursor/cur_stat.c b/src/cursor/cur_stat.c index 71eeea4361f..fc7320a029f 100644 --- a/src/cursor/cur_stat.c +++ b/src/cursor/cur_stat.c @@ -393,34 +393,21 @@ int __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - __curstat_get_key, - __curstat_get_value, - __curstat_set_key, - __curstat_set_value, - NULL, /* compare */ - __curstat_next, - __curstat_prev, - __curstat_reset, - __curstat_search, - /* search-near */ - (int (*)(WT_CURSOR *, int *))__wt_cursor_notsup, - __wt_cursor_notsup, /* insert */ - __wt_cursor_notsup, /* update */ - __wt_cursor_notsup, /* remove */ - __curstat_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* recno raw buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + __curstat_get_key, /* get-key */ + __curstat_get_value, /* get-value */ + __curstat_set_key, /* set-key */ + __curstat_set_value, /* set-value */ + NULL, /* compare */ + __curstat_next, /* next */ + __curstat_prev, /* prev */ + __curstat_reset, /* reset */ + __curstat_search, /* search */ + __wt_cursor_notsup, /* search-near */ + __wt_cursor_notsup, /* insert */ + __wt_cursor_notsup, /* update */ + __wt_cursor_notsup, /* remove */ + __curstat_close); /* close */ WT_CONFIG_ITEM cval; WT_CURSOR *cursor; WT_CURSOR_STAT *cst; diff --git a/src/cursor/cur_table.c b/src/cursor/cur_table.c index 29b4529492b..63b0a8c29ee 100644 --- a/src/cursor/cur_table.c +++ b/src/cursor/cur_table.c @@ -704,33 +704,21 @@ int __wt_curtable_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - __wt_curtable_get_key, - __wt_curtable_get_value, - __wt_curtable_set_key, - __wt_curtable_set_value, - __curtable_compare, - __curtable_next, - __curtable_prev, - __curtable_reset, - __curtable_search, - __curtable_search_near, - __curtable_insert, - __curtable_update, - __curtable_remove, - __curtable_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* raw recno buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + __wt_curtable_get_key, /* get-key */ + __wt_curtable_get_value, /* get-value */ + __wt_curtable_set_key, /* set-key */ + __wt_curtable_set_value, /* set-value */ + __curtable_compare, /* compare */ + __curtable_next, /* next */ + __curtable_prev, /* prev */ + __curtable_reset, /* reset */ + __curtable_search, /* search */ + __curtable_search_near, /* search-near */ + __curtable_insert, /* insert */ + __curtable_update, /* update */ + __curtable_remove, /* remove */ + __curtable_close); /* close */ WT_CONFIG_ITEM cval; WT_CURSOR *cursor; WT_CURSOR_TABLE *ctable; diff --git a/src/include/cursor.h b/src/include/cursor.h index ac4ec984629..6d1cf1f4d8e 100644 --- a/src/include/cursor.h +++ b/src/include/cursor.h @@ -5,6 +5,52 @@ * See the file LICENSE for redistribution information. */ +/* + * Initialize a static WT_CURSOR structure. + */ +#define WT_CURSOR_STATIC_INIT(n, \ + get_key, \ + get_value, \ + set_key, \ + set_value, \ + compare, \ + next, \ + prev, \ + reset, \ + search, \ + search_near, \ + insert, \ + update, \ + remove, \ + close) \ + static WT_CURSOR n = { \ + NULL, /* session */ \ + NULL, /* uri */ \ + NULL, /* key_format */ \ + NULL, /* value_format */ \ + (int (*)(WT_CURSOR *, ...))(get_key), \ + (int (*)(WT_CURSOR *, ...))(get_value), \ + (void (*)(WT_CURSOR *, ...))(set_key), \ + (void (*)(WT_CURSOR *, ...))(set_value), \ + (int (*)(WT_CURSOR *, WT_CURSOR *, int *))(compare), \ + next, \ + prev, \ + reset, \ + search, \ + (int (*)(WT_CURSOR *, int *))(search_near), \ + insert, \ + update, \ + remove, \ + close, \ + { NULL, NULL }, /* TAILQ_ENTRY q */ \ + 0, /* recno key */ \ + { 0 }, /* recno raw buffer */ \ + { NULL, 0, 0, NULL, 0 }, /* WT_ITEM key */ \ + { NULL, 0, 0, NULL, 0 }, /* WT_ITEM value */ \ + 0, /* int saved_err */ \ + 0 /* uint32_t flags */ \ +} + struct __wt_cursor_backup { WT_CURSOR iface; diff --git a/src/lsm/lsm_cursor.c b/src/lsm/lsm_cursor.c index 254263e5096..31b9c7d7fdf 100644 --- a/src/lsm/lsm_cursor.c +++ b/src/lsm/lsm_cursor.c @@ -965,33 +965,21 @@ int __wt_clsm_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) { - static WT_CURSOR iface = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - __clsm_compare, - __clsm_next, - __clsm_prev, - __clsm_reset, - __clsm_search, - __clsm_search_near, - __clsm_insert, - __clsm_update, - __clsm_remove, - __clsm_close, - { NULL, NULL }, /* TAILQ_ENTRY q */ - 0, /* recno key */ - { 0 }, /* raw recno buffer */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM key */ - { NULL, 0, 0, NULL, 0 },/* WT_ITEM value */ - 0, /* int saved_err */ - 0 /* uint32_t flags */ - }; + WT_CURSOR_STATIC_INIT(iface, + NULL, /* get-key */ + NULL, /* get-value */ + NULL, /* set-key */ + NULL, /* set-value */ + __clsm_compare, /* compare */ + __clsm_next, /* next */ + __clsm_prev, /* prev */ + __clsm_reset, /* reset */ + __clsm_search, /* search */ + __clsm_search_near, /* search-near */ + __clsm_insert, /* insert */ + __clsm_update, /* update */ + __clsm_remove, /* remove */ + __clsm_close); /* close */ WT_CONFIG_ITEM cval; WT_CURSOR *cursor; WT_CURSOR_LSM *clsm; |