• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/ap/gpl/timemachine/db-4.7.25.NC/docs_src/ref/transapp/
1m4_ignore([dnl
2#include <sys/types.h>
3#include <sys/stat.h>
4
5#include <errno.h>
6#include <stdarg.h>
7#include <stdlib.h>
8#include <string.h>
9#include <unistd.h>
10
11#include <db.h>
12
13#define	MAXIMUM_RETRY	5
14
15int add_fruit(DB_ENV *, DB *, char *, char *);
16
17void  db_open(DB_ENV *a, DB **b, char *c, int d) {
18	a = NULL; b = NULL; c = NULL; d = 0;
19}
20void usage(){}
21void env_open(DB_ENV **a) { a = NULL; }
22void env_dir_create() {}
23int
24main(int argc, char *argv[])
25{
26	extern int optind;
27	DB *db_cats, *db_color, *db_fruit;
28	DB_ENV *dbenv;
29	int ch;
30
31	while ((ch = getopt(argc, argv, "")) != EOF)
32		switch (ch) {
33		case '?':
34		default:
35			usage();
36		}
37	argc -= optind;
38	argv += optind;
39
40	env_dir_create();
41	env_open(&dbenv);
42
43	/* Open database: Key is fruit class; Data is specific type. */
44	db_open(dbenv, &db_fruit, "fruit", 0);
45
46	/* Open database: Key is a color; Data is an integer. */
47	db_open(dbenv, &db_color, "color", 0);
48
49	/*
50	 * Open database:
51	 *	Key is a name; Data is: company name, cat breeds.
52	 */
53	db_open(dbenv, &db_cats, "cats", 1);
54
55	add_fruit(dbenv, db_fruit, "apple", "yellow delicious");
56
57	return (0);
58}
59
60int
61add_fruit(DB_ENV *dbenv, DB *db, char *fruit, char *name)
62{
63	DBT key, data;
64	int fail, ret;
65
66	/* Initialization. */
67	memset(&key, 0, sizeof(key));
68	memset(&data, 0, sizeof(data));
69	key.data = fruit;
70	key.size = strlen(fruit);
71	data.data = name;
72	data.size = strlen(name);
73])
74m4_indent([m4_cbold([dnl
75	for (fail = 0; fail++ __LT__= MAXIMUM_RETRY &&
76	    (ret = db-__GT__put(db, NULL, &key, &data, 0)) == DB_LOCK_DEADLOCK;)
77		;
78	return (ret == 0 ? 0 : 1);])])
79m4_ignore([
80}])
81