C++: Make value get accessors const
Declare accessor methods that return value members const. For now, skip all cases where constness would have to be applied transitively to shared objects.
This commit is contained in:
parent
a73d492636
commit
15bebf575d
|
@ -199,7 +199,7 @@ Context::~Context()
|
|||
check(sr_exit(_structure));
|
||||
}
|
||||
|
||||
const LogLevel *Context::log_level()
|
||||
const LogLevel *Context::log_level() const
|
||||
{
|
||||
return LogLevel::get(sr_log_loglevel_get());
|
||||
}
|
||||
|
@ -368,7 +368,7 @@ shared_ptr<Input> Context::open_stream(string header)
|
|||
new Input(shared_from_this(), input), Input::Deleter());
|
||||
}
|
||||
|
||||
map<string, string> Context::serials(shared_ptr<Driver> driver)
|
||||
map<string, string> Context::serials(shared_ptr<Driver> driver) const
|
||||
{
|
||||
GSList *serial_list = sr_serial_list(driver ? driver->_structure : nullptr);
|
||||
map<string, string> serials;
|
||||
|
@ -394,12 +394,12 @@ Driver::~Driver()
|
|||
{
|
||||
}
|
||||
|
||||
string Driver::name()
|
||||
string Driver::name() const
|
||||
{
|
||||
return valid_string(_structure->name);
|
||||
}
|
||||
|
||||
string Driver::long_name()
|
||||
string Driver::long_name() const
|
||||
{
|
||||
return valid_string(_structure->longname);
|
||||
}
|
||||
|
@ -463,7 +463,7 @@ Configurable::~Configurable()
|
|||
{
|
||||
}
|
||||
|
||||
Glib::VariantBase Configurable::config_get(const ConfigKey *key)
|
||||
Glib::VariantBase Configurable::config_get(const ConfigKey *key) const
|
||||
{
|
||||
GVariant *data;
|
||||
check(sr_config_get(
|
||||
|
@ -479,7 +479,7 @@ void Configurable::config_set(const ConfigKey *key, const Glib::VariantBase &val
|
|||
key->id(), const_cast<GVariant*>(value.gobj())));
|
||||
}
|
||||
|
||||
Glib::VariantContainerBase Configurable::config_list(const ConfigKey *key)
|
||||
Glib::VariantContainerBase Configurable::config_list(const ConfigKey *key) const
|
||||
{
|
||||
GVariant *data;
|
||||
check(sr_config_list(
|
||||
|
@ -521,7 +521,7 @@ map<const ConfigKey *, set<Capability>> Configurable::config_keys(const ConfigKe
|
|||
}
|
||||
|
||||
bool Configurable::config_check(const ConfigKey *key,
|
||||
const ConfigKey *index_key)
|
||||
const ConfigKey *index_key) const
|
||||
{
|
||||
GVariant *gvar_opts;
|
||||
gsize num_opts;
|
||||
|
@ -573,27 +573,27 @@ Device::~Device()
|
|||
delete entry.second;
|
||||
}
|
||||
|
||||
string Device::vendor()
|
||||
string Device::vendor() const
|
||||
{
|
||||
return valid_string(sr_dev_inst_vendor_get(_structure));
|
||||
}
|
||||
|
||||
string Device::model()
|
||||
string Device::model() const
|
||||
{
|
||||
return valid_string(sr_dev_inst_model_get(_structure));
|
||||
}
|
||||
|
||||
string Device::version()
|
||||
string Device::version() const
|
||||
{
|
||||
return valid_string(sr_dev_inst_version_get(_structure));
|
||||
}
|
||||
|
||||
string Device::serial_number()
|
||||
string Device::serial_number() const
|
||||
{
|
||||
return valid_string(sr_dev_inst_sernum_get(_structure));
|
||||
}
|
||||
|
||||
string Device::connection_id()
|
||||
string Device::connection_id() const
|
||||
{
|
||||
return valid_string(sr_dev_inst_connid_get(_structure));
|
||||
}
|
||||
|
@ -695,7 +695,7 @@ Channel::~Channel()
|
|||
{
|
||||
}
|
||||
|
||||
string Channel::name()
|
||||
string Channel::name() const
|
||||
{
|
||||
return valid_string(_structure->name);
|
||||
}
|
||||
|
@ -705,12 +705,12 @@ void Channel::set_name(string name)
|
|||
check(sr_dev_channel_name_set(_structure, name.c_str()));
|
||||
}
|
||||
|
||||
const ChannelType *Channel::type()
|
||||
const ChannelType *Channel::type() const
|
||||
{
|
||||
return ChannelType::get(_structure->type);
|
||||
}
|
||||
|
||||
bool Channel::enabled()
|
||||
bool Channel::enabled() const
|
||||
{
|
||||
return _structure->enabled;
|
||||
}
|
||||
|
@ -720,7 +720,7 @@ void Channel::set_enabled(bool value)
|
|||
check(sr_dev_channel_enable(_structure, value));
|
||||
}
|
||||
|
||||
unsigned int Channel::index()
|
||||
unsigned int Channel::index() const
|
||||
{
|
||||
return _structure->index;
|
||||
}
|
||||
|
@ -740,7 +740,7 @@ ChannelGroup::~ChannelGroup()
|
|||
{
|
||||
}
|
||||
|
||||
string ChannelGroup::name()
|
||||
string ChannelGroup::name() const
|
||||
{
|
||||
return valid_string(_structure->name);
|
||||
}
|
||||
|
@ -770,7 +770,7 @@ Trigger::~Trigger()
|
|||
sr_trigger_free(_structure);
|
||||
}
|
||||
|
||||
string Trigger::name()
|
||||
string Trigger::name() const
|
||||
{
|
||||
return _structure->name;
|
||||
}
|
||||
|
@ -801,7 +801,7 @@ TriggerStage::~TriggerStage()
|
|||
delete match;
|
||||
}
|
||||
|
||||
int TriggerStage::number()
|
||||
int TriggerStage::number() const
|
||||
{
|
||||
return _structure->stage;
|
||||
}
|
||||
|
@ -847,12 +847,12 @@ shared_ptr<Channel> TriggerMatch::channel()
|
|||
return _channel;
|
||||
}
|
||||
|
||||
const TriggerMatchType *TriggerMatch::type()
|
||||
const TriggerMatchType *TriggerMatch::type() const
|
||||
{
|
||||
return TriggerMatchType::get(_structure->match);
|
||||
}
|
||||
|
||||
float TriggerMatch::value()
|
||||
float TriggerMatch::value() const
|
||||
{
|
||||
return _structure->value;
|
||||
}
|
||||
|
@ -1035,7 +1035,7 @@ void Session::set_trigger(shared_ptr<Trigger> trigger)
|
|||
_trigger = move(trigger);
|
||||
}
|
||||
|
||||
string Session::filename()
|
||||
string Session::filename() const
|
||||
{
|
||||
return _filename;
|
||||
}
|
||||
|
@ -1084,7 +1084,7 @@ Packet::~Packet()
|
|||
delete _payload;
|
||||
}
|
||||
|
||||
const PacketType *Packet::type()
|
||||
const PacketType *Packet::type() const
|
||||
{
|
||||
return PacketType::get(_structure->type);
|
||||
}
|
||||
|
@ -1121,12 +1121,12 @@ shared_ptr<PacketPayload> Header::get_shared_pointer(Packet *_parent)
|
|||
ParentOwned::get_shared_pointer(_parent));
|
||||
}
|
||||
|
||||
int Header::feed_version()
|
||||
int Header::feed_version() const
|
||||
{
|
||||
return _structure->feed_version;
|
||||
}
|
||||
|
||||
Glib::TimeVal Header::start_time()
|
||||
Glib::TimeVal Header::start_time() const
|
||||
{
|
||||
return Glib::TimeVal(
|
||||
_structure->starttime.tv_sec,
|
||||
|
@ -1149,7 +1149,7 @@ shared_ptr<PacketPayload> Meta::get_shared_pointer(Packet *_parent)
|
|||
ParentOwned::get_shared_pointer(_parent));
|
||||
}
|
||||
|
||||
map<const ConfigKey *, Glib::VariantBase> Meta::config()
|
||||
map<const ConfigKey *, Glib::VariantBase> Meta::config() const
|
||||
{
|
||||
map<const ConfigKey *, Glib::VariantBase> result;
|
||||
for (auto l = _structure->config; l; l = l->next) {
|
||||
|
@ -1180,12 +1180,12 @@ void *Logic::data_pointer()
|
|||
return _structure->data;
|
||||
}
|
||||
|
||||
size_t Logic::data_length()
|
||||
size_t Logic::data_length() const
|
||||
{
|
||||
return _structure->length;
|
||||
}
|
||||
|
||||
unsigned int Logic::unit_size()
|
||||
unsigned int Logic::unit_size() const
|
||||
{
|
||||
return _structure->unitsize;
|
||||
}
|
||||
|
@ -1211,7 +1211,7 @@ void *Analog::data_pointer()
|
|||
return _structure->data;
|
||||
}
|
||||
|
||||
unsigned int Analog::num_samples()
|
||||
unsigned int Analog::num_samples() const
|
||||
{
|
||||
return _structure->num_samples;
|
||||
}
|
||||
|
@ -1226,17 +1226,17 @@ vector<shared_ptr<Channel>> Analog::channels()
|
|||
return result;
|
||||
}
|
||||
|
||||
const Quantity *Analog::mq()
|
||||
const Quantity *Analog::mq() const
|
||||
{
|
||||
return Quantity::get(_structure->meaning->mq);
|
||||
}
|
||||
|
||||
const Unit *Analog::unit()
|
||||
const Unit *Analog::unit() const
|
||||
{
|
||||
return Unit::get(_structure->meaning->unit);
|
||||
}
|
||||
|
||||
vector<const QuantityFlag *> Analog::mq_flags()
|
||||
vector<const QuantityFlag *> Analog::mq_flags() const
|
||||
{
|
||||
return QuantityFlag::flags_from_mask(_structure->meaning->mqflags);
|
||||
}
|
||||
|
@ -1250,17 +1250,17 @@ InputFormat::~InputFormat()
|
|||
{
|
||||
}
|
||||
|
||||
string InputFormat::name()
|
||||
string InputFormat::name() const
|
||||
{
|
||||
return valid_string(sr_input_id_get(_structure));
|
||||
}
|
||||
|
||||
string InputFormat::description()
|
||||
string InputFormat::description() const
|
||||
{
|
||||
return valid_string(sr_input_description_get(_structure));
|
||||
}
|
||||
|
||||
vector<string> InputFormat::extensions()
|
||||
vector<string> InputFormat::extensions() const
|
||||
{
|
||||
vector<string> exts;
|
||||
for (const char *const *e = sr_input_extensions_get(_structure);
|
||||
|
@ -1362,27 +1362,27 @@ Option::~Option()
|
|||
{
|
||||
}
|
||||
|
||||
string Option::id()
|
||||
string Option::id() const
|
||||
{
|
||||
return valid_string(_structure->id);
|
||||
}
|
||||
|
||||
string Option::name()
|
||||
string Option::name() const
|
||||
{
|
||||
return valid_string(_structure->name);
|
||||
}
|
||||
|
||||
string Option::description()
|
||||
string Option::description() const
|
||||
{
|
||||
return valid_string(_structure->desc);
|
||||
}
|
||||
|
||||
Glib::VariantBase Option::default_value()
|
||||
Glib::VariantBase Option::default_value() const
|
||||
{
|
||||
return Glib::VariantBase(_structure->def, true);
|
||||
}
|
||||
|
||||
vector<Glib::VariantBase> Option::values()
|
||||
vector<Glib::VariantBase> Option::values() const
|
||||
{
|
||||
vector<Glib::VariantBase> result;
|
||||
for (auto l = _structure->values; l; l = l->next) {
|
||||
|
@ -1401,17 +1401,17 @@ OutputFormat::~OutputFormat()
|
|||
{
|
||||
}
|
||||
|
||||
string OutputFormat::name()
|
||||
string OutputFormat::name() const
|
||||
{
|
||||
return valid_string(sr_output_id_get(_structure));
|
||||
}
|
||||
|
||||
string OutputFormat::description()
|
||||
string OutputFormat::description() const
|
||||
{
|
||||
return valid_string(sr_output_description_get(_structure));
|
||||
}
|
||||
|
||||
vector<string> OutputFormat::extensions()
|
||||
vector<string> OutputFormat::extensions() const
|
||||
{
|
||||
vector<string> exts;
|
||||
for (const char *const *e = sr_output_extensions_get(_structure);
|
||||
|
@ -1451,7 +1451,7 @@ shared_ptr<Output> OutputFormat::create_output(string filename,
|
|||
Output::Deleter());
|
||||
}
|
||||
|
||||
bool OutputFormat::test_flag(const OutputFlag *flag)
|
||||
bool OutputFormat::test_flag(const OutputFlag *flag) const
|
||||
{
|
||||
return sr_output_test_flag(_structure, flag->id());
|
||||
}
|
||||
|
|
|
@ -271,7 +271,7 @@ public:
|
|||
/** Available output formats, indexed by name. */
|
||||
map<string, shared_ptr<OutputFormat> > output_formats();
|
||||
/** Current log level. */
|
||||
const LogLevel *log_level();
|
||||
const LogLevel *log_level() const;
|
||||
/** Set the log level.
|
||||
* @param level LogLevel to use. */
|
||||
void set_log_level(const LogLevel *level);
|
||||
|
@ -313,7 +313,7 @@ public:
|
|||
/** Open an input stream based on header data.
|
||||
* @param header Initial data from stream. */
|
||||
shared_ptr<Input> open_stream(string header);
|
||||
map<string, string> serials(shared_ptr<Driver> driver);
|
||||
map<string, string> serials(shared_ptr<Driver> driver) const;
|
||||
protected:
|
||||
map<string, Driver *> _drivers;
|
||||
map<string, InputFormat *> _input_formats;
|
||||
|
@ -339,18 +339,18 @@ class SR_API Configurable
|
|||
public:
|
||||
/** Read configuration for the given key.
|
||||
* @param key ConfigKey to read. */
|
||||
Glib::VariantBase config_get(const ConfigKey *key);
|
||||
Glib::VariantBase config_get(const ConfigKey *key) const;
|
||||
/** Set configuration for the given key to a specified value.
|
||||
* @param key ConfigKey to set.
|
||||
* @param value Value to set. */
|
||||
void config_set(const ConfigKey *key, const Glib::VariantBase &value);
|
||||
/** Enumerate available values for the given configuration key.
|
||||
* @param key ConfigKey to enumerate values for. */
|
||||
Glib::VariantContainerBase config_list(const ConfigKey *key);
|
||||
Glib::VariantContainerBase config_list(const ConfigKey *key) const;
|
||||
/** Enumerate available keys, according to a given index key. */
|
||||
map<const ConfigKey *, set<Capability> > config_keys(const ConfigKey *key);
|
||||
/** Check for a key in the list from a given index key. */
|
||||
bool config_check(const ConfigKey *key, const ConfigKey *index_key);
|
||||
bool config_check(const ConfigKey *key, const ConfigKey *index_key) const;
|
||||
protected:
|
||||
Configurable(
|
||||
struct sr_dev_driver *driver,
|
||||
|
@ -369,9 +369,9 @@ class SR_API Driver :
|
|||
{
|
||||
public:
|
||||
/** Name of this driver. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** Long name for this driver. */
|
||||
string long_name();
|
||||
string long_name() const;
|
||||
/** Scan for devices and return a list of devices found.
|
||||
* @param options Mapping of (ConfigKey, value) pairs. */
|
||||
vector<shared_ptr<HardwareDevice> > scan(
|
||||
|
@ -391,15 +391,15 @@ class SR_API Device : public Configurable
|
|||
{
|
||||
public:
|
||||
/** Vendor name for this device. */
|
||||
string vendor();
|
||||
string vendor() const;
|
||||
/** Model name for this device. */
|
||||
string model();
|
||||
string model() const;
|
||||
/** Version string for this device. */
|
||||
string version();
|
||||
string version() const;
|
||||
/** Serial number for this device. */
|
||||
string serial_number();
|
||||
string serial_number() const;
|
||||
/** Connection ID for this device. */
|
||||
string connection_id();
|
||||
string connection_id() const;
|
||||
/** List of the channels available on this device. */
|
||||
vector<shared_ptr<Channel> > channels();
|
||||
/** Channel groups available on this device, indexed by name. */
|
||||
|
@ -482,19 +482,19 @@ class SR_API Channel :
|
|||
{
|
||||
public:
|
||||
/** Current name of this channel. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** Set the name of this channel. *
|
||||
* @param name Name string to set. */
|
||||
void set_name(string name);
|
||||
/** Type of this channel. */
|
||||
const ChannelType *type();
|
||||
const ChannelType *type() const;
|
||||
/** Enabled status of this channel. */
|
||||
bool enabled();
|
||||
bool enabled() const;
|
||||
/** Set the enabled status of this channel.
|
||||
* @param value Boolean value to set. */
|
||||
void set_enabled(bool value);
|
||||
/** Get the index number of this channel. */
|
||||
unsigned int index();
|
||||
unsigned int index() const;
|
||||
protected:
|
||||
explicit Channel(struct sr_channel *structure);
|
||||
~Channel();
|
||||
|
@ -514,7 +514,7 @@ class SR_API ChannelGroup :
|
|||
{
|
||||
public:
|
||||
/** Name of this channel group. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** List of the channels in this group. */
|
||||
vector<shared_ptr<Channel> > channels();
|
||||
protected:
|
||||
|
@ -529,7 +529,7 @@ class SR_API Trigger : public UserOwned<Trigger, struct sr_trigger>
|
|||
{
|
||||
public:
|
||||
/** Name of this trigger configuration. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** List of the stages in this trigger. */
|
||||
vector<shared_ptr<TriggerStage> > stages();
|
||||
/** Add a new stage to this trigger. */
|
||||
|
@ -550,7 +550,7 @@ class SR_API TriggerStage :
|
|||
{
|
||||
public:
|
||||
/** Index number of this stage. */
|
||||
int number();
|
||||
int number() const;
|
||||
/** List of match conditions on this stage. */
|
||||
vector<shared_ptr<TriggerMatch> > matches();
|
||||
/** Add a new match condition to this stage.
|
||||
|
@ -577,9 +577,9 @@ public:
|
|||
/** Channel this condition matches on. */
|
||||
shared_ptr<Channel> channel();
|
||||
/** Type of match. */
|
||||
const TriggerMatchType *type();
|
||||
const TriggerMatchType *type() const;
|
||||
/** Threshold value. */
|
||||
float value();
|
||||
float value() const;
|
||||
protected:
|
||||
TriggerMatch(struct sr_trigger_match *structure, shared_ptr<Channel> channel);
|
||||
~TriggerMatch();
|
||||
|
@ -661,7 +661,7 @@ public:
|
|||
* @param trigger Trigger object to use. */
|
||||
void set_trigger(shared_ptr<Trigger> trigger);
|
||||
/** Get filename this session was loaded from. */
|
||||
string filename();
|
||||
string filename() const;
|
||||
protected:
|
||||
explicit Session(shared_ptr<Context> context);
|
||||
Session(shared_ptr<Context> context, string filename);
|
||||
|
@ -685,7 +685,7 @@ class SR_API Packet : public UserOwned<Packet, const struct sr_datafeed_packet>
|
|||
{
|
||||
public:
|
||||
/** Type of this packet. */
|
||||
const PacketType *type();
|
||||
const PacketType *type() const;
|
||||
/** Payload of this packet. */
|
||||
shared_ptr<PacketPayload> payload();
|
||||
protected:
|
||||
|
@ -730,9 +730,9 @@ class SR_API Header :
|
|||
{
|
||||
public:
|
||||
/* Feed version number. */
|
||||
int feed_version();
|
||||
int feed_version() const;
|
||||
/* Start time of this session. */
|
||||
Glib::TimeVal start_time();
|
||||
Glib::TimeVal start_time() const;
|
||||
protected:
|
||||
explicit Header(const struct sr_datafeed_header *structure);
|
||||
~Header();
|
||||
|
@ -747,7 +747,7 @@ class SR_API Meta :
|
|||
{
|
||||
public:
|
||||
/* Mapping of (ConfigKey, value) pairs. */
|
||||
map<const ConfigKey *, Glib::VariantBase> config();
|
||||
map<const ConfigKey *, Glib::VariantBase> config() const;
|
||||
protected:
|
||||
explicit Meta(const struct sr_datafeed_meta *structure);
|
||||
~Meta();
|
||||
|
@ -765,9 +765,9 @@ public:
|
|||
/* Pointer to data. */
|
||||
void *data_pointer();
|
||||
/* Data length in bytes. */
|
||||
size_t data_length();
|
||||
size_t data_length() const;
|
||||
/* Size of each sample in bytes. */
|
||||
unsigned int unit_size();
|
||||
unsigned int unit_size() const;
|
||||
protected:
|
||||
explicit Logic(const struct sr_datafeed_logic *structure);
|
||||
~Logic();
|
||||
|
@ -784,15 +784,15 @@ public:
|
|||
/** Pointer to data. */
|
||||
void *data_pointer();
|
||||
/** Number of samples in this packet. */
|
||||
uint32_t num_samples();
|
||||
unsigned int num_samples() const;
|
||||
/** Channels for which this packet contains data. */
|
||||
vector<shared_ptr<Channel> > channels();
|
||||
/** Measured quantity of the samples in this packet. */
|
||||
const Quantity *mq();
|
||||
const Quantity *mq() const;
|
||||
/** Unit of the samples in this packet. */
|
||||
const Unit *unit();
|
||||
const Unit *unit() const;
|
||||
/** Measurement flags associated with the samples in this packet. */
|
||||
vector<const QuantityFlag *> mq_flags();
|
||||
vector<const QuantityFlag *> mq_flags() const;
|
||||
protected:
|
||||
explicit Analog(const struct sr_datafeed_analog *structure);
|
||||
~Analog();
|
||||
|
@ -806,12 +806,12 @@ class SR_API InputFormat :
|
|||
{
|
||||
public:
|
||||
/** Name of this input format. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** Description of this input format. */
|
||||
string description();
|
||||
string description() const;
|
||||
/** A list of preferred file name extensions for this file format.
|
||||
* @note This list is a recommendation only. */
|
||||
vector<string> extensions();
|
||||
vector<string> extensions() const;
|
||||
/** Options supported by this input format. */
|
||||
map<string, shared_ptr<Option> > options();
|
||||
/** Create an input using this input format.
|
||||
|
@ -864,15 +864,15 @@ class SR_API Option : public UserOwned<Option, const struct sr_option>
|
|||
{
|
||||
public:
|
||||
/** Short name of this option suitable for command line usage. */
|
||||
string id();
|
||||
string id() const;
|
||||
/** Short name of this option suitable for GUI usage. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** Description of this option in a sentence. */
|
||||
string description();
|
||||
string description() const;
|
||||
/** Default value for this option. */
|
||||
Glib::VariantBase default_value();
|
||||
Glib::VariantBase default_value() const;
|
||||
/** Possible values for this option, if a limited set. */
|
||||
vector<Glib::VariantBase> values();
|
||||
vector<Glib::VariantBase> values() const;
|
||||
protected:
|
||||
Option(const struct sr_option *structure,
|
||||
shared_ptr<const struct sr_option *> structure_array);
|
||||
|
@ -889,12 +889,12 @@ class SR_API OutputFormat :
|
|||
{
|
||||
public:
|
||||
/** Name of this output format. */
|
||||
string name();
|
||||
string name() const;
|
||||
/** Description of this output format. */
|
||||
string description();
|
||||
string description() const;
|
||||
/** A list of preferred file name extensions for this file format.
|
||||
* @note This list is a recommendation only. */
|
||||
vector<string> extensions();
|
||||
vector<string> extensions() const;
|
||||
/** Options supported by this output format. */
|
||||
map<string, shared_ptr<Option> > options();
|
||||
/** Create an output using this format.
|
||||
|
@ -916,7 +916,7 @@ public:
|
|||
* @return true if flag is set for this module
|
||||
* @see sr_output_flags
|
||||
*/
|
||||
bool test_flag(const OutputFlag *flag);
|
||||
bool test_flag(const OutputFlag *flag) const;
|
||||
protected:
|
||||
explicit OutputFormat(const struct sr_output_module *structure);
|
||||
~OutputFormat();
|
||||
|
@ -962,10 +962,10 @@ public:
|
|||
/** Get value associated with a given integer constant. */
|
||||
static const Class *get(int id)
|
||||
{
|
||||
auto key = static_cast<Enum>(id);
|
||||
if (_values.find(key) == _values.end())
|
||||
const auto pos = _values.find(static_cast<Enum>(id));
|
||||
if (pos == _values.end())
|
||||
throw Error(SR_ERR_ARG);
|
||||
return _values.at(key);
|
||||
return pos->second;
|
||||
}
|
||||
/** Get possible values. */
|
||||
static std::vector<const Class *> values()
|
||||
|
|
Loading…
Reference in New Issue