1 /* 2 * ContextClosest.h 3 * 4 * Created on: Sep 25, 2014 5 * Author: nek3d 6 */ 7 8 9 #ifndef CONTEXTCLOSEST_H_ 10 #define CONTEXTCLOSEST_H_ 11 12 #include "ContextIntersect.h" 13 14 class ContextClosest : public ContextIntersect { 15 public: 16 ContextClosest(); 17 virtual ~ContextClosest(); 18 virtual bool parseCmdArgs(int argc, char **argv, int skipFirstArgs); hasIntersectMethods()19 virtual bool hasIntersectMethods() const { return true; } 20 virtual bool isValidState(); 21 hasTieMode()22 bool hasTieMode() const { return _haveTieMode; } ignoreOverlaps()23 bool ignoreOverlaps() const { return _ignoreOverlaps; } ignoreUpstream()24 bool ignoreUpstream() const { return _ignoreUpstream; } ignoreDownstream()25 bool ignoreDownstream() const { return _ignoreDownstream; } forceUpstream()26 bool forceUpstream() const { return _forceUpstream; } forceDownstream()27 bool forceDownstream() const { return _forceDownstream; } reportDistance()28 bool reportDistance() const { return _reportDistance; } signDistance()29 bool signDistance() const { return _signDistance; } hasStrandedDistMode()30 bool hasStrandedDistMode() const { return _haveStrandedDistMode; } diffNames()31 bool diffNames() const { return _diffNames; } getNumClosestHitsWanted()32 int getNumClosestHitsWanted() const { return _numClosestHitsWanted; } 33 34 typedef enum { FIRST_TIE, LAST_TIE, ALL_TIES} tieModeType; getTieMode()35 tieModeType getTieMode() const { return _tieMode; } 36 37 typedef enum { REF_DIST, A_DIST, B_DIST} strandedDistanceModeType; getStrandedDistMode()38 strandedDistanceModeType getStrandedDistMode() const { return _strandedDistMode; } 39 40 typedef enum { EACH_DB, ALL_DBS } multiDbModeType; getMultiDbMode()41 multiDbModeType getMultiDbMode() const { return _multiDbMode; } 42 43 private: 44 bool _haveTieMode; 45 bool _ignoreOverlaps; 46 bool _ignoreUpstream; 47 bool _ignoreDownstream; 48 bool _forceUpstream; 49 bool _forceDownstream; 50 bool _reportDistance; 51 bool _signDistance; 52 bool _haveStrandedDistMode; 53 bool _diffNames; 54 tieModeType _tieMode; 55 strandedDistanceModeType _strandedDistMode; 56 multiDbModeType _multiDbMode; 57 int _numClosestHitsWanted; 58 59 bool handle_d(); 60 bool handle_D(); 61 bool handle_io(); 62 bool handle_iu(); 63 bool handle_id(); 64 bool handle_fu(); 65 bool handle_fd(); 66 bool handle_N(); 67 bool handle_t(); 68 bool handle_mdb(); 69 bool handle_k(); 70 }; 71 72 73 #endif /* CONTEXTCLOSEST_H_ */ 74