int main(int argc, char **argv) { int i; if (argc<2) showusage (1); if (!strcmp (argv[1], "-v")) showversion (); if (!strcmp (argv[1], "-h")) showusage (0); if (argc == 2) return sdb_dump (argv[1]); #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, syncronize); #endif if (!strcmp (argv[2], "=")) { createdb (argv[1]); } else if (!strcmp (argv[2], "-")) { char line[SDB_VALUESIZE]; if ((s = sdb_new (argv[1], 0))) for (;;) { fgets (line, sizeof line, stdin); if (feof (stdin)) break; line[strlen (line)-1] = 0; runline (s, line); } } else if ((s = sdb_new (argv[1], 0))) for (i=2; i<argc; i++) runline (s, argv[i]); terminate (0); return 0; }
int main(int argc, const char **argv) { char *line; int i; if (argc<2) showusage (1); if (!strcmp (argv[1], "-d")) { if (argc == 4) return dbdiff (argv[2], argv[3]); showusage(0); } else if (!strcmp (argv[1], "-v")) showversion (); if (!strcmp (argv[1], "-h")) showusage (0); if (!strcmp (argv[1], "-j")) { if (argc>2) return sdb_dump (argv[2], 1); printf ("Missing database filename after -j\n"); return 1; } if (!strcmp (argv[1], "-")) { argv[1] = ""; if (argc == 2) { argv[2] = "-"; argc++; } } if (argc == 2) return sdb_dump (argv[1], 0); #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, syncronize); #endif if (!strcmp (argv[2], "=")) return createdb (argv[1]); else if (!strcmp (argv[2], "-")) { if ((s = sdb_new (NULL, argv[1], 0))) { sdb_config (s, SDB_OPTION_FS | SDB_OPTION_NOSTAMP); for (;(line = stdin_gets ());) { save = sdb_query (s, line); free (line); } } } else { s = sdb_new (NULL, argv[1], 0); if (!s) return 1; sdb_config (s, SDB_OPTION_FS | SDB_OPTION_NOSTAMP); for (i=2; i<argc; i++) save = sdb_query (s, argv[i]); } terminate (0); return 0; }
int main(int argc, char **argv) { int i; if (argc<2) showusage (1); if (!strcmp (argv[1], "-v")) showversion (); if (!strcmp (argv[1], "-h")) showusage (0); if (!strcmp (argv[1], "-")) { argv[1] = ""; if (argc == 2) { argv[2] = "-"; argc++; } } if (argc == 2) return sdb_dump (argv[1]); #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, syncronize); #endif if (!strcmp (argv[2], "=")) { createdb (argv[1]); } else if (!strcmp (argv[2], "-")) { char line[SDB_VSZ+SDB_KSZ]; // XXX can overflow stack if ((s = sdb_new (argv[1], 0))) for (;;) { fgets (line, sizeof line, stdin); if (feof (stdin)) break; line[strlen (line)-1] = 0; save = sdb_query (s, line); } } else if ((s = sdb_new (argv[1], 0))) { for (i=2; i<argc; i++) save = sdb_query (s, argv[i]); } terminate (0); return 0; }
int main(int argc, char **argv) { int cfd, sfd; /* Client and server file descriptors */ int debug = 0; data = createdb(); builddb(data); if (argc > 1) { debug = atoi(argv[1]); } daemonize(debug); runserver(&cfd, &sfd); /* Make sure that the database gets freed */ destroydb(data); return 0; }
int main(int argc, const char **argv) { char *line; int i; if (argc<2) showusage (1); if (!strcmp (argv[1], "-v")) showversion (); if (!strcmp (argv[1], "-h")) showusage (0); if (!strcmp (argv[1], "-")) { argv[1] = ""; if (argc == 2) { argv[2] = "-"; argc++; } } if (argc == 2) return sdb_dump (argv[1], 0); #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, syncronize); #endif if (!strcmp (argv[2], "[]")) { return sdb_dump (argv[1], 1); } if (!strcmp (argv[2], "=")) return createdb (argv[1]); else if (!strcmp (argv[2], "-")) { if ((s = sdb_new (NULL, argv[1], 0))) { for (;(line = stdin_gets ());) { save = sdb_query (s, line); free (line); } } } else { s = sdb_new (NULL, argv[1], 0); if (!s) return 1; for (i=2; i<argc; i++) save = sdb_query (s, argv[i]); } terminate (0); return 0; }
int main(int argc, const char **argv) { char *line; const char *arg, *grep = NULL; int i, ret, fmt = MODE_DFLT; int db0 = 1, argi = 1; bool interactive = false; /* terminate flags */ if (argc < 2) { return showusage (1); } arg = argv[1]; if (arg[0] == '-') {// && arg[1] && arg[2]==0) { switch (arg[1]) { case 0: /* no-op */ break; case '0': fmt = MODE_ZERO; db0++; argi++; if (db0 >= argc) { return showusage (1); } break; case 'g': db0 += 2; if (db0 >= argc) { return showusage (1); } grep = argv[2]; argi += 2; break; case 'J': options |= SDB_OPTION_JOURNAL; db0++; argi++; if (db0 >= argc) { return showusage (1); } break; case 'c': return (argc < 3)? showusage (1) : showcount (argv[2]); case 'v': return showversion (); case 'h': return showusage (2); case 'e': return base64encode (); case 'd': return base64decode (); case 'D': if (argc == 4) { return dbdiff (argv[2], argv[3]); } return showusage (0); case 'j': if (argc > 2) { return sdb_dump (argv[db0 + 1], MODE_JSON); } return jsonIndent(); default: eprintf ("Invalid flag %s\n", arg); break; } } /* sdb - */ if (argi == 1 && !strcmp (argv[argi], "-")) { /* no database */ argv[argi] = ""; if (argc == db0 + 1) { interactive = true; /* if no argument passed */ argv[argi] = "-"; argc++; argi++; } } /* sdb dbname */ if (argc - 1 == db0) { if (grep) { return sdb_grep (argv[db0], fmt, grep); } return sdb_dump (argv[db0], fmt); } #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, synchronize); #endif ret = 0; if (interactive || !strcmp (argv[db0 + 1], "-")) { if ((s = sdb_new (NULL, argv[db0], 0))) { sdb_config (s, options); int kvs = db0 + 2; if (kvs < argc) { save |= insertkeys (s, argv + argi + 2, argc - kvs, '-'); } for (;(line = stdin_slurp (NULL));) { save |= sdb_query (s, line); if (fmt) { fflush (stdout); write (1, "", 1); } free (line); } } } else if (!strcmp (argv[db0 + 1], "=")) { ret = createdb (argv[db0], NULL, 0); } else { s = sdb_new (NULL, argv[db0], 0); if (!s) { return 1; } sdb_config (s, options); for (i = db0 + 1; i < argc; i++) { save |= sdb_query (s, argv[i]); if (fmt) { fflush (stdout); write (1, "", 1); } } } terminate (0); return ret; }
static itzam_bool test_threaded() { const uint16_t order = 7; char * sfilename = "threaded.single"; char * mfilename = "threaded.multi"; time_t start; int maxkey = 5000; int test_size = 1000000; pthread_attr_t attr; pthread_t * thread; struct threadArgs * args; int completed = 0; int32_t key; int n; itzam_btree btree; itzam_state state; /* get number of processors available */ int num_threads = (int)sysconf(_SC_NPROCESSORS_CONF) - 1; if (num_threads < 2) num_threads = 2; thread = (pthread_t *)malloc(num_threads * sizeof(pthread_t)); args = (struct threadArgs *)malloc(num_threads * sizeof(struct threadArgs)); printf("\nItzam/C B-Tree Test\nMultiple threads, simultaneously using the same Itzam index\n\n"); printf("Parameters:\n%8d B-tree order\n%8d unique keys\n%8d threads\n%8d insert & remove operations\n", order, maxkey, num_threads, test_size); /* create threads and test simultaneous access to the database */ createdb(mfilename, order); test_size /= num_threads; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_attr_setschedpolicy(&attr, SCHED_RR); state = itzam_btree_open(&btree, mfilename, itzam_comparator_int32, error_handler, false, false); if (state != ITZAM_OKAY) { printf("Unable to open B-tree index file %s\n",mfilename); return itzam_false; } printf("\nPerforming multi-thread test... "); fflush(stdout); start = time(NULL); for (n = 0; n < num_threads; ++n) { args[n].btree = &btree; args[n].maxkey = maxkey; args[n].test_size = test_size; args[n].completed = &completed; pthread_create(&thread[n], &attr, threadProc, &args[n]); } while (completed < num_threads) usleep(100000); itzam_btree_close(&btree); free(thread); free(args); /* stats */ time_t melapsed = time(NULL) - start; printf("done\n\n%8d seconds run time\n\n", (int)melapsed); return itzam_true; }
int main(int argc, const char **argv) { char *line; int i, ret, fmt = MODE_DFLT; int db0 = 1, argi = 1; int interactive = 0; /* terminate flags */ if (argc<2) showusage (1); if (!strcmp (argv[1], "-d")) { if (argc == 4) return dbdiff (argv[2], argv[3]); showusage (0); } if (!strcmp (argv[1], "-v")) showversion (); if (!strcmp (argv[1], "-h")) showusage (2); if (!strcmp (argv[1], "-j")) { if (argc>2) return sdb_dump (argv[db0+1], MODE_JSON); eprintf ("Missing database filename after -j\n"); return 1; } /* flags */ if (!strcmp (argv[argi], "-0")) { fmt = MODE_ZERO; db0++; argi++; } if (!strcmp (argv[argi], "-")) { /* no database */ argv[argi] = ""; if (argc == db0+1) { interactive = 1; /* if no argument passed */ argv[argi] = "-"; argc++; argi++; } } if (argc-1 == db0) return sdb_dump (argv[db0], fmt); #if USE_MMAN signal (SIGINT, terminate); signal (SIGHUP, syncronize); #endif ret = 0; if (interactive || !strcmp (argv[db0+1], "-")) { if ((s = sdb_new (NULL, argv[db0], 0))) { save |= insertkeys (s, argv+3, argc-3, '-'); sdb_config (s, SDB_OPTION_FS | SDB_OPTION_NOSTAMP); for (;(line = stdin_gets ());) { save |= sdb_query (s, line); if (fmt) { fflush (stdout); write (1, "", 1); } free (line); } } } else if (!strcmp (argv[db0+1], "=")) { ret = createdb (argv[db0], argv+db0+2, argc-(db0+2)); } else { s = sdb_new (NULL, argv[db0], 0); if (!s) return 1; sdb_config (s, SDB_OPTION_FS | SDB_OPTION_NOSTAMP); for (i=db0+1; i<argc; i++) { save |= sdb_query (s, argv[i]); if (fmt) { fflush (stdout); write (1, "", 1); } } } terminate (0); return ret; }