check(sr_exit(_structure));
}
-const LogLevel *Context::log_level()
+const LogLevel *Context::log_level() const
{
return LogLevel::get(sr_log_loglevel_get());
}
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;
{
}
-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);
}
{
}
-Glib::VariantBase Configurable::config_get(const ConfigKey *key)
+Glib::VariantBase Configurable::config_get(const ConfigKey *key) const
{
GVariant *data;
check(sr_config_get(
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(
}
bool Configurable::config_check(const ConfigKey *key,
- const ConfigKey *index_key)
+ const ConfigKey *index_key) const
{
GVariant *gvar_opts;
gsize num_opts;
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));
}
{
}
-string Channel::name()
+string Channel::name() const
{
return valid_string(_structure->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;
}
check(sr_dev_channel_enable(_structure, value));
}
-unsigned int Channel::index()
+unsigned int Channel::index() const
{
return _structure->index;
}
{
}
-string ChannelGroup::name()
+string ChannelGroup::name() const
{
return valid_string(_structure->name);
}
sr_trigger_free(_structure);
}
-string Trigger::name()
+string Trigger::name() const
{
return _structure->name;
}
delete match;
}
-int TriggerStage::number()
+int TriggerStage::number() const
{
return _structure->stage;
}
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;
}
_trigger = move(trigger);
}
-string Session::filename()
+string Session::filename() const
{
return _filename;
}
delete _payload;
}
-const PacketType *Packet::type()
+const PacketType *Packet::type() const
{
return PacketType::get(_structure->type);
}
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,
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) {
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;
}
return _structure->data;
}
-unsigned int Analog::num_samples()
+unsigned int Analog::num_samples() const
{
return _structure->num_samples;
}
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);
}
{
}
-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);
{
}
-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) {
{
}
-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);
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());
}
/** 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);
/** 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;
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,
{
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(
{
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. */
{
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();
{
public:
/** Name of this channel group. */
- string name();
+ string name() const;
/** List of the channels in this group. */
vector<shared_ptr<Channel> > channels();
protected:
{
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. */
{
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.
/** 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();
* @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);
{
public:
/** Type of this packet. */
- const PacketType *type();
+ const PacketType *type() const;
/** Payload of this packet. */
shared_ptr<PacketPayload> payload();
protected:
{
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();
{
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();
/* 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();
/** 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();
{
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.
{
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);
{
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.
* @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();
/** 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()