/usr/include/bobcat/argconfig is in libbobcat-dev 3.23.01-1.
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 | #ifndef INCLUDED_BOBCAT_ARGCONFIG_
#define INCLUDED_BOBCAT_ARGCONFIG_
#include <unordered_map>
#include <string>
#include <bobcat/arg>
#include <bobcat/configfile>
namespace FBB
{
class ArgConfig__;
class ArgConfig: public Arg, public ConfigFile
{
static ArgConfig *s_argconfig; // points to Singleton ArgConfig
ArgConfig__ *d_ptr;
public:
static ArgConfig &initialize(char const *optstring, // 1
int argc, char **argv,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
static ArgConfig &initialize(char const *optstring, // 2
int argc, char **argv, std::string const &fname,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
static ArgConfig &initialize(char const *optstring, // 3
LongOption const *const begin, LongOption const *const end,
int argc, char **argv, Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
static ArgConfig &initialize(char const *optstring, // 4
LongOption const *const begin, LongOption const *const end,
int argc, char **argv, std::string const &fname,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
static ArgConfig &instance();
size_t option(int option); // 1
size_t option(std::string const &optchars); // 2
size_t option(std::string *value, int optChar); // 3
size_t option(std::string *value, char const *longOption); // 4
size_t option(size_t idx, // 1.f
std::string *value, int option) const;
size_t option(size_t *idx, // 2.f
std::string *value, int option) const;
size_t option(size_t idx, std::string *value, // 3.f
char const *longOption) const;
size_t option(size_t *idx, std::string *value, // 4.f
char const *longOption) const;
char const *operator[](size_t idx) const; // Arg's [] .f
std::string const &line(size_t idx) const; // ConfigFile's [] .f
private:
ArgConfig(ArgConfig const &other) = delete;
ArgConfig &operator=(ArgConfig const &other) = delete;
ArgConfig(char const *optstring, // 1
int argc, char **argv,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
ArgConfig(char const *optstring, // 2
int argc, char **argv, std::string const &fname,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
ArgConfig(char const *optstring, // 3
LongOption const *begin, LongOption const *const end,
int argc, char **argv, Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
ArgConfig(char const *optstring, // 4
LongOption const *begin, LongOption const *const end,
int argc, char **argv, std::string const &fname,
Comment cType = KeepComment,
SearchCasing sType = SearchCaseSensitive,
Indices iType = IgnoreIndices);
RE_iteratorPair findLongOption(int optChar);
RE_iteratorPair longConfigOpt(std::string const &longOpt);
};
inline size_t ArgConfig::option(size_t idx, std::string *value,
int optChar) const
{
return Arg::option(idx, value, optChar);
}
inline size_t ArgConfig::option(size_t *idx, std::string *value,
int optChar) const
{
return Arg::option(idx, value, optChar);
}
inline size_t ArgConfig::option(size_t idx, std::string *value,
char const *longOption) const
{
return Arg::option(idx, value, longOption);
}
inline size_t ArgConfig::option(size_t *idx, std::string *value,
char const *longOpt) const
{
return Arg::option(idx, value, longOpt);
}
inline char const *ArgConfig::operator[](size_t idx) const
{
return Arg::operator[](idx);
}
inline std::string const &ArgConfig::line(size_t idx) const
{
return ConfigFile::operator[](idx);
}
} // FBB
#endif
|