• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/db-4.7.25.NC/docs_src/ref/env/
1m4_ignore([dnl
2#include <sys/types.h>
3
4#include <stddef.h>
5#include <stdio.h>
6#include <stdlib.h>
7
8#include <db.h>
9
10#define	DATABASE1	"foo"
11#define	DATABASE2	"bar"
12
13int db_setup(char *, char *, FILE *, char *);
14
15int
16main()
17{
18	return (db_setup("/tmp/__dbenv__", "test", stderr, "test_app"));
19}
20int
21db_setup(home, data_dir, errfp, progname)
22	char *home, *data_dir, *progname;
23	FILE *errfp;
24{])
25m4_indent([dnl
26	DB_ENV *dbenv;
27	DB *dbp1, *dbp2;
28	int ret;
29m4_blank
30	dbenv = NULL;
31	dbp1 = dbp2 = NULL;
32m4_blank
33	/*
34	 * Create an environment and initialize it for additional error
35	 * reporting.
36	 */
37	if ((ret = db_env_create(&dbenv, 0)) != 0) {
38		fprintf(errfp, "%s: %s\n", progname, db_strerror(ret));
39		return (ret);
40	}
41m4_blank
42	dbenv-__GT__set_errfile(dbenv, errfp);
43	dbenv-__GT__set_errpfx(dbenv, progname);
44m4_blank
45	/* Open an environment with just a memory pool. */
46	if ((ret =
47	    dbenv-__GT__open(dbenv, home, DB_CREATE | DB_INIT_MPOOL, 0)) != 0) {
48		dbenv-__GT__err(dbenv, ret, "environment open: %s", home);
49		goto err;
50	}
51m4_blank
52	/* Open database #1. */
53	if ((ret = db_create(&dbp1, dbenv, 0)) != 0) {
54		dbenv-__GT__err(dbenv, ret, "database create");
55		goto err;
56	}
57	if ((ret = dbp1-__GT__open(dbp1,
58	    NULL, DATABASE1, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
59		dbenv-__GT__err(dbenv, ret, "DB-__GT__open: %s", DATABASE1);
60		goto err;
61	}
62m4_blank
63	/* Open database #2. */
64	if ((ret = db_create(&dbp2, dbenv, 0)) != 0) {
65		dbenv-__GT__err(dbenv, ret, "database create");
66		goto err;
67	}
68	if ((ret = dbp2-__GT__open(dbp2,
69	    NULL, DATABASE2, NULL, DB_HASH, DB_CREATE, 0664)) != 0) {
70		dbenv-__GT__err(dbenv, ret, "DB-__GT__open: %s", DATABASE2);
71		goto err;
72	}
73m4_blank
74	return (0);
75m4_blank
76err:	if (dbp2 != NULL)
77		(void)dbp2-__GT__close(dbp2, 0);
78	if (dbp1 != NULL)
79		(void)dbp2-__GT__close(dbp1, 0);
80	(void)dbenv-__GT__close(dbenv, 0);
81	return (1);
82}])
83