diff options
Diffstat (limited to 'bdb/examples_cxx/AccessExample.cpp')
-rw-r--r-- | bdb/examples_cxx/AccessExample.cpp | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/bdb/examples_cxx/AccessExample.cpp b/bdb/examples_cxx/AccessExample.cpp deleted file mode 100644 index 921463b3a54..00000000000 --- a/bdb/examples_cxx/AccessExample.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/*- - * See the file LICENSE for redistribution information. - * - * Copyright (c) 1997-2002 - * Sleepycat Software. All rights reserved. - * - * $Id: AccessExample.cpp,v 11.18 2002/01/23 15:33:20 bostic Exp $ - */ - -#include <sys/types.h> - -#include <iostream> -#include <iomanip> -#include <errno.h> -#include <stdlib.h> -#include <string.h> - -#include <db_cxx.h> - -using std::cin; -using std::cout; -using std::cerr; - -class AccessExample -{ -public: - AccessExample(); - void run(); - -private: - static const char FileName[]; - - // no need for copy and assignment - AccessExample(const AccessExample &); - void operator = (const AccessExample &); -}; - -int main() -{ - // Use a try block just to report any errors. - // An alternate approach to using exceptions is to - // use error models (see DbEnv::set_error_model()) so - // that error codes are returned for all Berkeley DB methods. - // - try { - AccessExample app; - app.run(); - return (EXIT_SUCCESS); - } - catch (DbException &dbe) { - cerr << "AccessExample: " << dbe.what() << "\n"; - return (EXIT_FAILURE); - } -} - -const char AccessExample::FileName[] = "access.db"; - -AccessExample::AccessExample() -{ -} - -void AccessExample::run() -{ - // Remove the previous database. - (void)remove(FileName); - - // Create the database object. - // There is no environment for this simple example. - Db db(0, 0); - - db.set_error_stream(&cerr); - db.set_errpfx("AccessExample"); - db.set_pagesize(1024); /* Page size: 1K. */ - db.set_cachesize(0, 32 * 1024, 0); - db.open(NULL, FileName, NULL, DB_BTREE, DB_CREATE, 0664); - - // - // Insert records into the database, where the key is the user - // input and the data is the user input in reverse order. - // - char buf[1024]; - char rbuf[1024]; - char *t; - char *p; - int ret; - int len; - - for (;;) { - cout << "input> "; - cout.flush(); - - cin.getline(buf, sizeof(buf)); - if (cin.eof()) - break; - - if ((len = strlen(buf)) <= 0) - continue; - for (t = rbuf, p = buf + (len - 1); p >= buf;) - *t++ = *p--; - *t++ = '\0'; - - Dbt key(buf, len + 1); - Dbt data(rbuf, len + 1); - - ret = db.put(0, &key, &data, DB_NOOVERWRITE); - if (ret == DB_KEYEXIST) { - cout << "Key " << buf << " already exists.\n"; - } - } - cout << "\n"; - - // We put a try block around this section of code - // to ensure that our database is properly closed - // in the event of an error. - // - try { - // Acquire a cursor for the table. - Dbc *dbcp; - db.cursor(NULL, &dbcp, 0); - - // Walk through the table, printing the key/data pairs. - Dbt key; - Dbt data; - while (dbcp->get(&key, &data, DB_NEXT) == 0) { - char *key_string = (char *)key.get_data(); - char *data_string = (char *)data.get_data(); - cout << key_string << " : " << data_string << "\n"; - } - dbcp->close(); - } - catch (DbException &dbe) { - cerr << "AccessExample: " << dbe.what() << "\n"; - } - - db.close(0); -} |