bool ContextBase::handle_i() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -i option given, but no input file specified. *****"; return false; } addInputFile(_argv[_i+1]); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_n() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -n option given, but no number of output records specified. *****"; return false; } setNumOutputRecords(atoi(_argv[_i + 1])); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
bool ContextGroupBy::handle_g() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -g option given, but columns to group not specified. *****"; return false; } _groupStr = _argv[_i+1]; markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_g() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -g option given, but no genome file specified. *****"; return false; } openGenomeFile(_argv[_i+1]); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
bool ContextIntersect::handle_abam() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -abam option given, but no query BAM file specified. *****"; return false; } addInputFile(_argv[_i+1]); _queryFileIdx = getNumInputFiles() -1; markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
//for col ops, delimStr will appear between each item in //a collapsed but delimited list. bool ContextBase::handle_delim() { if (!hasColumnOpsMethods()) { return false; } if ((_i+1) < _argc) { _keyListOps->setDelimStr(_argv[_i + 1]); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); } return true; }
bool ContextBase::handle_seed() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -seed option given, but no seed specified. *****"; return false; } _hasConstantSeed = true; _seed = atoi(_argv[_i+1]); srand(_seed); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
//for col ops, delimStr will appear between each item in //a collapsed but delimited list. bool ContextBase::handle_delim() { if (!hasColumnOpsMethods()) { _errorMsg = "\n***** ERROR: Can't set delimiter for tools without column operations. Exiting. *****"; return false; } if ((_i+1) < _argc) { _keyListOps->setDelimStr(_argv[_i + 1]); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); } return true; }
bool ContextMerge::handle_d() { if ((_i+1) < _argc) { if (isNumeric(_argv[_i+1])) { int dist = str2chrPos(_argv[_i+1]); _maxDistance = dist; markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; } } _errorMsg = "\n***** ERROR: -d option must be followed by an integer value *****"; return false; }
bool ContextFisher::handle_exclude() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -exclude option given, but no file specified. *****"; return false; } do { markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); } while (_argc > _i+1 && _argv[_i+1][0] != '-'); setExcludeFile(string(_argv[_i])); return true; }
bool ContextMerge::handle_nms() { markUsed(_i - _skipFirstArgs); _errorMsg = "\n***** ERROR: -nms option is deprecated. Please see the documentation for the -c and -o column operation options. *****"; return false; }
bool ContextIntersect::handle_wao() { setWriteAllOverlap(true); setWriteOverlap(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextIntersect::handle_names() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -b option given, but no database names specified. *****"; return false; } do { addDatabaseNameTag(_argv[_i+1]); markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); } while (_argc > _i+1 && _argv[_i+1][0] != '-'); setUseDBnameTags(true); return true; }
bool ContextMerge::handle_scores() { // No longer supporting this deprecated option. markUsed(_i - _skipFirstArgs); _errorMsg = "\n***** ERROR: -scores option is deprecated. Please see the documentation for the -c and -o column operation options. *****"; return false; }
bool ContextIntersect::handle_b() { if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -b option given, but no database file specified. *****"; return false; } do { addInputFile(_argv[_i+1]); int fileId = getNumInputFiles() -1; _dbFileIdxs.push_back(fileId); _fileIdsToDbIdxs[fileId] = _dbFileIdxs.size() -1; markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); } while (_argc > _i+1 && _argv[_i+1][0] != '-'); return true; }
bool ContextSample::handle_s() { _sameStrand = true; if (_argc <= _i+1) { _errorMsg = "\n***** ERROR: -s option given, but \"forward\" or \"reverse\" not specified. *****"; return false; } if (strcmp(_argv[_i+1], "forward") == 0) { _forwardOnly = true; } else if (strcmp(_argv[_i+1], "reverse") == 0) { _reverseOnly = true; } else { _errorMsg = "\n***** ERROR: -s option given, but \"forward\" or \"reverse\" not specified. *****"; return false; } markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; }
bool ContextMerge::handle_S() { if ((_i+1) < _argc) { bool validChar = false; if (_argv[_i+1][0] == '+') { _desiredStrand = FileRecordMergeMgr::SAME_STRAND_FORWARD; validChar = true; } else if (_argv[_i+1][0] == '-') { validChar = true; _desiredStrand = FileRecordMergeMgr::SAME_STRAND_REVERSE; } if (validChar) { markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; } } _errorMsg = "\n***** ERROR: -S option must be followed by + or -. *****"; return false; }
bool ContextBase::handle_prec() { if (!hasColumnOpsMethods()) { return false; } if ((_i+1) < _argc) { int prec = atoi(_argv[_i + 1]); if (prec < 1) { _errorMsg += "\n***** ERROR: -prec must be followed by a positive integer. Exiting. *****"; return false; } _reportPrecision = prec; markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; } _errorMsg += "\n***** ERROR: -prec must be followed by a positive integer. Exiting. *****"; return false; }
void Topic::addSubscription(Subscription &subscription) { _readWriteLock.lockForWrite(); markUsed(); _subscriptions.append(&subscription); if(_state == NO_SUBSCRIPTIONS_STATE) _state = HAS_SUBSCRIPTIONS_STATE; else _state = NO_SUBSCRIPTIONS_STATE; _readWriteLock.unlock(); }
bool ContextClosest::handle_mdb() { bool mdbError = false; if ((_i+1) < _argc) { QuickString mdbStr(_argv[_i+1]); if (mdbStr == "each") { _multiDbMode = EACH_DB; } else if (mdbStr == "all") { _multiDbMode = ALL_DBS; } else { mdbError = true; } } else { mdbError = true; } if (!mdbError) { markUsed(_i - _skipFirstArgs); _i++; markUsed(_i - _skipFirstArgs); return true; } _errorMsg = "*****ERROR: Request \"each\" or \"last\" for Multiple Database Mode (-mdb)"; return false; }
void Topic::removeSubscription(Subscription &subscription) { _readWriteLock.lockForWrite(); markUsed(); _subscriptions.removeOne(&subscription); if(_subscriptions.count() == 0) { if(_state == HAS_SUBSCRIPTIONS_STATE) _state = NO_SUBSCRIPTIONS_STATE; else _state = HAS_SUBSCRIPTIONS_STATE; } _readWriteLock.unlock(); }
bool ContextFisher::parseCmdArgs(int argc, char **argv, int skipFirstArgs) { _argc = argc; _argv = argv; _skipFirstArgs = skipFirstArgs; if (_argc < 2) { setShowHelp(true); return false; } setProgram(_programNames[argv[0]]); _argsProcessed.resize(_argc - _skipFirstArgs, false); for (_i=_skipFirstArgs; _i < argc; _i++) { if (isUsed(_i - _skipFirstArgs)) { continue; } else if (strcmp(_argv[_i], "-s") == 0) { if (!handle_s()) return false; } else if (strcmp(_argv[_i], "-S") == 0) { if (!handle_S()) return false; } else if (strcmp(_argv[_i], "-exclude") == 0) { if (!handle_exclude()) return false; } if (strcmp(_argv[_i], "-g") == 0) { if (!handle_g()) return false; } if(strcmp(_argv[_i], "-m") == 0) { markUsed(_i - _skipFirstArgs); setUseMergedIntervals(true); } } return ContextIntersect::parseCmdArgs(argc, argv, _skipFirstArgs); }
bool ContextBase::handle_split() { setObeySplits(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextSubtract::handle_N() { _removeSum = true; markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_nonamecheck() { setNameCheckDisabled(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_sortout() { setSortOutput(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_ubam() { setUncompressedBam(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_h() { setShowHelp(true); markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_nobuf() { setUseBufferedOutput(false); markUsed(_i - _skipFirstArgs); return true; }
bool ContextBase::handle_header() { setPrintHeader(true); markUsed(_i - _skipFirstArgs); return true; }