src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp
changeset 57876 30db6422848b
parent 53244 9807daeb47c4
equal deleted inserted replaced
57875:427b38332f20 57876:30db6422848b
    58     AfterErgo       = 1,
    58     AfterErgo       = 1,
    59     // Will be validated inside universe_init(), right after Metaspace::global_initialize().
    59     // Will be validated inside universe_init(), right after Metaspace::global_initialize().
    60     AfterMemoryInit = 2
    60     AfterMemoryInit = 2
    61   };
    61   };
    62 
    62 
       
    63 protected:
       
    64   const JVMFlag* const _flag;
       
    65 
    63 private:
    66 private:
    64   const char* _name;
       
    65   ConstraintType _validate_type;
    67   ConstraintType _validate_type;
    66 
    68 
    67 public:
    69 public:
    68   // the "name" argument must be a string literal
    70   // the "name" argument must be a string literal
    69   JVMFlagConstraint(const char* name, ConstraintType type) { _name=name; _validate_type=type; };
    71   JVMFlagConstraint(const JVMFlag* flag, ConstraintType type) : _flag(flag), _validate_type(type) {}
    70   ~JVMFlagConstraint() {};
    72   ~JVMFlagConstraint() {}
    71   const char* name() const { return _name; }
    73   const JVMFlag* flag() const { return _flag; }
    72   ConstraintType type() const { return _validate_type; }
    74   ConstraintType type() const { return _validate_type; }
    73   virtual JVMFlag::Error apply(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    75   virtual JVMFlag::Error apply(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    74   virtual JVMFlag::Error apply_bool(bool value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    76   virtual JVMFlag::Error apply_bool(bool value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    75   virtual JVMFlag::Error apply_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    77   virtual JVMFlag::Error apply_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    76   virtual JVMFlag::Error apply_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    78   virtual JVMFlag::Error apply_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; };
    88   static JVMFlagConstraint::ConstraintType _validating_type;
    90   static JVMFlagConstraint::ConstraintType _validating_type;
    89 public:
    91 public:
    90   static void init();
    92   static void init();
    91   static int length() { return (_constraints != NULL) ? _constraints->length() : 0; }
    93   static int length() { return (_constraints != NULL) ? _constraints->length() : 0; }
    92   static JVMFlagConstraint* at(int i) { return (_constraints != NULL) ? _constraints->at(i) : NULL; }
    94   static JVMFlagConstraint* at(int i) { return (_constraints != NULL) ? _constraints->at(i) : NULL; }
    93   static JVMFlagConstraint* find(const char* name);
    95   static JVMFlagConstraint* find(const JVMFlag* flag);
    94   static JVMFlagConstraint* find_if_needs_check(const char* name);
    96   static JVMFlagConstraint* find_if_needs_check(const JVMFlag* flag);
    95   static void add(JVMFlagConstraint* constraint) { _constraints->append(constraint); }
    97   static void add(JVMFlagConstraint* constraint) { _constraints->append(constraint); }
    96   // True if 'AfterErgo' or later constraint functions are validated.
    98   // True if 'AfterErgo' or later constraint functions are validated.
    97   static bool validated_after_ergo() { return _validating_type >= JVMFlagConstraint::AfterErgo; };
    99   static bool validated_after_ergo() { return _validating_type >= JVMFlagConstraint::AfterErgo; };
    98   static bool check_constraints(JVMFlagConstraint::ConstraintType type);
   100   static bool check_constraints(JVMFlagConstraint::ConstraintType type);
    99 };
   101 };