void InputManager::reset() { removeAllKeys(); removeAllKeysUnbuf(); removeAllKeysRotationUnbuf(); removeAllJoystickButtons(); removeAllJoystickAxisUnbuf(); }
void InputManager::removeAllKeys() { removeAllKeys(CONTEXT_RUNNER); removeAllKeys(CONTEXT_SHOOTER); }
int main(int argc,char **argv) { char *program = argv[0]; while (*++argv) { char *arg = *argv; if (*arg == '-') { if (arg[1] == '-') usage(program); while (*++arg && isalpha(*arg)) { switch (*arg) { case 'v': gVerbose = true; break; case 'e': gExcessive = true; break; case 't': if (*++argv == NULL) usage(program); if (!strcmp(*argv,"string")) gType = S_STR_INDEX; else if (!strcmp(*argv,"int32") || !strcmp(*argv,"int")) gType = S_INT_INDEX; else if (!strcmp(*argv,"uint32") || !strcmp(*argv,"uint")) gType = S_UINT_INDEX; else if (!strcmp(*argv,"int64") || !strcmp(*argv,"llong")) gType = S_LONG_LONG_INDEX; else if (!strcmp(*argv,"uint64") || !strcmp(*argv,"ullong")) gType = S_ULONG_LONG_INDEX; else if (!strcmp(*argv,"float")) gType = S_FLOAT_INDEX; else if (!strcmp(*argv,"double")) gType = S_DOUBLE_INDEX; else usage(program); break; case 'n': if (*++argv == NULL || !isdigit(**argv)) usage(program); gNum = atoi(*argv); if (gNum < 1) gNum = 1; break; case 'h': if (*++argv == NULL || !isdigit(**argv)) usage(program); gHard = atoi(*argv); if (gHard < 1) gHard = 1; break; case 'i': if (*++argv == NULL || !isdigit(**argv)) usage(program); gIterations = atoi(*argv); if (gIterations < 1) gIterations = 1; break; case 'r': if (*++argv == NULL || !isdigit(**argv)) usage(program); gSeed = atoi(*argv); break; } } } else break; } // we do want to have reproducible random keys if (gVerbose) printf("Set seed to %ld\n",gSeed); srand(gSeed); Inode inode("tree.data",gType | S_ALLOW_DUPS); gVolume = inode.GetVolume(); Transaction transaction(gVolume,0); init_cache(gVolume->Device(),gVolume->BlockSize()); // // Create the tree, the keys, and add all keys to the tree initially // BPlusTree tree(&transaction,&inode); status_t status; if ((status = tree.InitCheck()) < B_OK) { fprintf(stderr,"creating tree failed: %s\n",strerror(status)); bailOut(); } printf("*** Creating %ld keys...\n",gNum); if ((status = createKeys()) < B_OK) { fprintf(stderr,"creating keys failed: %s\n",strerror(status)); bailOut(); } if (gVerbose) dumpKeys(); for (int32 j = 0; j < gHard; j++ ) { addAllKeys(&transaction, &tree); // // Run the tests (they will exit the app, if an error occurs) // for (int32 i = 0;i < gIterations;i++) { printf("---------- Test iteration %ld ---------------------------------\n",i+1); addRandomSet(&transaction,&tree,int32(1.0 * gNum * rand() / RAND_MAX)); removeRandomSet(&transaction,&tree,int32(1.0 * gNum * rand() / RAND_MAX)); duplicateTest(&transaction,&tree); } removeAllKeys(&transaction, &tree); } // of course, we would have to free all our memory in a real application here... // write the cache back to the tree shutdown_cache(gVolume->Device(),gVolume->BlockSize()); return 0; }