summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2013-01-08 15:57:49 +0000
committerKeith Bostic <keith@wiredtiger.com>2013-01-08 15:57:49 +0000
commit59444dd590b02553e4ee6ff30897b948e80e9489 (patch)
tree9c2f1b2f6736e68fbb13e2fae03e3fd779b7a8c4
parent6f4673c288161e66870d43393fda74fac0a19d2d (diff)
downloadmongo-59444dd590b02553e4ee6ff30897b948e80e9489.tar.gz
Create a #define that initializes a static WT_CURSOR and use it.
-rw-r--r--dist/s_define.list1
-rw-r--r--src/cursor/cur_backup.c46
-rw-r--r--src/cursor/cur_config.c43
-rw-r--r--src/cursor/cur_dump.c42
-rw-r--r--src/cursor/cur_file.c42
-rw-r--r--src/cursor/cur_index.c42
-rw-r--r--src/cursor/cur_stat.c43
-rw-r--r--src/cursor/cur_table.c42
-rw-r--r--src/include/cursor.h46
-rw-r--r--src/lsm/lsm_cursor.c42
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;