/usr/include/gnuradio/prefs.h is in gnuradio-dev 3.7.9.1-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | /* -*- c++ -*- */
/*
* Copyright 2006,2013,2015 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
#ifndef INCLUDED_GR_PREFS_H
#define INCLUDED_GR_PREFS_H
#include <gnuradio/api.h>
#include <string>
#include <map>
#include <gnuradio/thread/thread.h>
namespace gr {
typedef std::map< std::string, std::map<std::string, std::string> > config_map_t;
typedef std::map< std::string, std::map<std::string, std::string> >::iterator config_map_itr;
typedef std::map<std::string, std::string> config_map_elem_t;
typedef std::map<std::string, std::string>::iterator config_map_elem_itr;
/*!
* \brief Base class for representing user preferences a la windows INI files.
* \ingroup misc
*
* The real implementation is in Python, and is accessable from C++
* via the magic of SWIG directors.
*/
class GR_RUNTIME_API prefs
{
public:
static prefs *singleton();
/*!
* \brief Creates an object to read preference files.
*
* \details
*
* If no file name is given (empty arg list or ""), this opens up
* the standard GNU Radio configuration files in
* prefix/etc/gnuradio/conf.d as well as ~/.gnuradio/config.conf.
*
* Only access this through the singleton defined here:
* \code
* prefs *p = prefs::singleton();
* \endcode
*/
prefs();
virtual ~prefs();
/*!
* If specifying a file name, this opens that specific
* configuration file of the standard form containing sections and
* key-value pairs:
*
* \code
* [SectionName]
* key0 = value0
* key1 = value1
* \endcode
*/
void add_config_file(const std::string &configfile);
/*!
* \brief Returns the configuration options as a string.
*/
std::string to_string();
/*!
* \brief Saves the configuration settings to
* ${HOME}/.gnuradio/config.conf.
*
* WARNING: this will overwrite your current config.conf file.
*/
void save();
/*!
* \brief Does \p section exist?
*/
virtual bool has_section(const std::string §ion);
/*!
* \brief Does \p option exist?
*/
virtual bool has_option(const std::string §ion,
const std::string &option);
/*!
* \brief If option exists return associated value; else
* default_val.
*/
virtual const std::string get_string(const std::string §ion,
const std::string &option,
const std::string &default_val);
/*!
* \brief Set or add a string \p option to \p section with value
* \p val.
*/
virtual void set_string(const std::string §ion,
const std::string &option,
const std::string &val);
/*!
* \brief If option exists and value can be converted to bool,
* return it; else default_val.
*/
virtual bool get_bool(const std::string §ion,
const std::string &option,
bool default_val);
/*!
* \brief Set or add a bool \p option to \p section with value \p val.
*/
virtual void set_bool(const std::string §ion,
const std::string &option,
bool val);
/*!
* \brief If option exists and value can be converted to long,
* return it; else default_val.
*/
virtual long get_long(const std::string §ion,
const std::string &option,
long default_val);
/*!
* \brief Set or add a long \p option to \p section with value \p val.
*/
virtual void set_long(const std::string §ion,
const std::string &option,
long val);
/*!
* \brief If option exists and value can be converted to double,
* return it; else default_val.
*/
virtual double get_double(const std::string §ion,
const std::string &option,
double default_val);
/*!
* \brief Set or add a double \p option to \p section with value \p val.
*/
virtual void set_double(const std::string §ion,
const std::string &option,
double val);
protected:
virtual std::vector<std::string> _sys_prefs_filenames();
virtual std::string _read_files(const std::vector<std::string> &filenames);
virtual void _convert_to_map(const std::string &conf);
virtual char * option_to_env(std::string section, std::string option);
private:
gr::thread::mutex d_mutex;
config_map_t d_config_map;
};
} /* namespace gr */
#endif /* INCLUDED_GR_PREFS_H */
|