GnuCash c935c2f+
Loading...
Searching...
No Matches
Public Member Functions
GncFQQuoteSource Class Referencefinal
Inheritance diagram for GncFQQuoteSource:
GncQuoteSource

Public Member Functions

const std::string & get_version () const noexcept override
 
const StrVec & get_sources () const noexcept override
 
QuoteResult get_quotes (const std::string &) const override
 

Detailed Description

Definition at line 151 of file gnc-quotes.cpp.

Constructor & Destructor Documentation

◆ GncFQQuoteSource()

GncFQQuoteSource::GncFQQuoteSource ( )

Definition at line 175 of file gnc-quotes.cpp.

175 :
176c_cmd{bp::search_path("perl")},
177m_version{}, m_sources{}, m_env{boost::this_process::environment()}
178{
179 char *bindir = gnc_path_get_bindir();
180 c_fq_wrapper = std::string(bindir) + "/finance-quote-wrapper";
181 g_free(bindir);
182 StrVec args{"-w", c_fq_wrapper, "-v"};
183 auto [rv, sources, errors] = run_cmd(args, empty_string);
184 if (rv)
185 {
186 std::string err{bl::translate("Failed to initialize Finance::Quote: ")};
187 for (const auto& err_line : errors)
188 err += err_line.empty() ? "" : err_line + "\n";
189 throw(GncQuoteSourceError(err));
190 }
191 if (!errors.empty())
192 {
193 std::string err{bl::translate("Finance::Quote check returned error ")};
194 for(const auto& err_line : errors)
195 err += err.empty() ? "" : err_line + "\n";
196 throw(GncQuoteSourceError(err));
197 }
198 auto version{sources.front()};
199 if (version.empty())
200 {
201 std::string err{bl::translate("No Finance::Quote Version")};
202 throw(GncQuoteSourceError(err));
203 }
204 m_version = std::move(version);
205 sources.erase(sources.begin());
206 m_sources = std::move(sources);
207 std::sort (m_sources.begin(), m_sources.end());
208
209 set_api_key(av_api_key, av_api_env);
210 set_api_key(yh_api_key, yh_api_env);
211}

Member Function Documentation

◆ get_quotes()

QuoteResult GncFQQuoteSource::get_quotes ( const std::string &  json_str) const
overridevirtual

Implements GncQuoteSource.

Definition at line 214 of file gnc-quotes.cpp.

215{
216 StrVec args{"-w", c_fq_wrapper, "-f" };
217 return run_cmd(args, json_str);
218}

◆ get_sources()

const StrVec & GncFQQuoteSource::get_sources ( ) const
inlineoverridevirtualnoexcept

Implements GncQuoteSource.

Definition at line 162 of file gnc-quotes.cpp.

162{ return m_sources; }

◆ get_version()

const std::string & GncFQQuoteSource::get_version ( ) const
inlineoverridevirtualnoexcept

Implements GncQuoteSource.

Definition at line 161 of file gnc-quotes.cpp.

161{ return m_version; }

The documentation for this class was generated from the following file: