summaryrefslogtreecommitdiff
path: root/db-4.8.30/examples_c/csv/csv.h
diff options
context:
space:
mode:
Diffstat (limited to 'db-4.8.30/examples_c/csv/csv.h')
-rw-r--r--db-4.8.30/examples_c/csv/csv.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/db-4.8.30/examples_c/csv/csv.h b/db-4.8.30/examples_c/csv/csv.h
new file mode 100644
index 0000000..fb0a66a
--- /dev/null
+++ b/db-4.8.30/examples_c/csv/csv.h
@@ -0,0 +1,101 @@
+/*-
+ * See the file LICENSE for redistribution information.
+ *
+ * Copyright (c) 2005-2009 Oracle. All rights reserved.
+ *
+ * $Id$
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN 1
+
+#include <direct.h>
+#include <db.h>
+
+extern int getopt(int, char * const *, const char *);
+extern char *optarg;
+extern int optind;
+#else
+#define HAVE_WILDCARD_SUPPORT 1
+
+#include <regex.h>
+#include <unistd.h>
+#endif
+
+#include "db.h"
+
+/*
+ * MAP_VERSION
+ * This code has hooks for versioning, but does not directly support it.
+ * See the README file for details.
+ */
+#define MAP_VERSION 1
+
+/*
+ * Supported formats.
+ *
+ * FORMAT_NL: <nl> separated
+ * FORMAT_EXCEL: Excel dumped flat text.
+ */
+typedef enum { FORMAT_EXCEL, FORMAT_NL } input_fmt;
+
+/*
+ * OFFSET_LEN
+ * The length of any item can be calculated from the two offset fields.
+ * OFFSET_OOB
+ * An offset that's illegal, used to detect unavailable fields.
+ */
+#define OFFSET_LEN(offset, indx) \
+ (((offset)[(indx) + 1] - (offset)[(indx)]) - 1)
+
+#define OFFSET_OOB 0
+
+/*
+ * Field comparison operators.
+ */
+typedef enum { EQ=1, NEQ, GT, GTEQ, LT, LTEQ, WC, NWC } OPERATOR;
+
+/*
+ * Supported data types.
+ */
+typedef enum { NOTSET=1, DOUBLE, STRING, UNSIGNED_LONG } datatype;
+
+/*
+ * C structure that describes the csv fields.
+ */
+typedef struct {
+ char *name; /* Field name */
+ u_int32_t fieldno; /* Field index */
+ datatype type; /* Data type */
+
+ int indx; /* Indexed */
+ DB *secondary; /* Secondary index handle */
+
+#define FIELD_OFFSET(field) ((size_t)(&(((DbRecord *)0)->field)))
+ size_t offset; /* DbRecord field offset */
+} DbField;
+
+/*
+ * Globals
+ */
+extern DB *db; /* Primary database */
+extern DbField fieldlist[]; /* Field list */
+extern DB_ENV *dbenv; /* Database environment */
+extern char *progname; /* Program name */
+extern int verbose; /* Program verbosity */
+#ifdef _WIN32
+#undef strcasecmp
+#define strcasecmp _stricmp
+#undef strncasecmp
+#define strncasecmp _strnicmp
+#define mkdir(d, perm) _mkdir(d)
+#endif