23 #ifndef LSST_MEAS_BASE_FlagHandler_h_INCLUDED 24 #define LSST_MEAS_BASE_FlagHandler_h_INCLUDED 32 namespace lsst {
namespace meas {
namespace base {
76 add(iter->name, iter->doc);
88 return _vector[index];
95 if (_vector[i].name == name)
return _vector[i];
103 return getDefinition(index);
110 if (_vector[i].name == name)
return true;
126 _vector.push_back(flagDef);
127 return _vector.back();
237 for (
unsigned int i=0; i < _vector.size(); i++) {
238 if (_vector[i].
first == flagName && _vector[i].
second.isValid()) {
248 if (i < _vector.size() && _vector[i].second.isValid()) {
249 return _vector[i].first;
257 if (i < _vector.size() && _vector[i].second.isValid()) {
267 if (_vector[i].
first == flagName && _vector[i].
second.isValid()) {
277 if (i < _vector.size() && _vector[i].second.isValid()) {
288 if (_vector[i].
first == flagName && _vector[i].
second.isValid()) {
301 return failureFlagNumber;
322 #endif // !LSST_MEAS_BASE_FlagHandler_h_INCLUDED std::size_t size() const
return the current size (number of defined elements) of the collection
FlagDefinition(std::string const &name, std::string const &doc, std::size_t number=number_undefined)
bool operator!=(FlagDefinition const &other) const
FlagDefinitionList()
initialize a FlagDefinition list with no entries.
afw::table::Schema schema
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...
std::string getFlagName(std::size_t i) const
Return the value of the flag name corresponding to the given flag index.
unsigned int getFlagNumber(std::string const &flagName) const
Return the index of a flag with the given flag name.
void setValue(afw::table::BaseRecord &record, std::size_t i, bool value) const
Set the flag field corresponding to the given flag index.
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Field< T >::Value get(Key< T > const &key) const
FlagDefinition operator[](std::size_t index) const
get a reference to the FlagDefinition with specified array index
Exception to be thrown when a measurement algorithm experiences a fatal error.
std::size_t getFailureFlagNumber() const
Get the index of the General Failure flag, if one is defined.
static constexpr std::size_t number_undefined
Utility class for handling flag fields that indicate the failure modes of an algorithm.
std::size_t failureFlagNumber
FlagHandler()
Each error should have a corresponding static FlagDefinition object.
FlagDefinition getDefinition(std::string const &name) const
get a reference to the FlagDefinition with specified name.
FlagDefinition getDefinition(std::size_t index) const
get a reference to the FlagDefinition with specified index.
bool operator==(FlagDefinition const &other) const
static FlagDefinitionList const & getEmptyList()
bool hasDefinition(std::string const &name) const
See if there is a FlagDefinition with specified name.
FlagDefinitionList(std::initializer_list< FlagDefinition > const &list)
initialize a FlagDefinition list from initializer_list.
FlagDefinition add(std::string const &name, std::string const &doc)
Add a new FlagDefinition to this list.
void setValue(afw::table::BaseRecord &record, std::string const &flagName, bool value) const
Set the flag field corresponding to the given flag name.
static std::string const & getFailureFlagName()
Define the universal name of the general failure flag.
bool getValue(afw::table::BaseRecord const &record, std::string const &flagName) const
Return the value of the flag field with the given flag name.
void set(Key< T > const &key, U const &value)
bool getValue(afw::table::BaseRecord const &record, std::size_t i) const
Return the value of the flag field corresponding to the given flag index.
vector-type utility class to build a collection of FlagDefinitions