2 #include "lsst/meas/extensions/psfex/prefs.hh" 3 #include "lsst/daf/base.h" 5 namespace lsst {
namespace meas {
namespace extensions {
namespace psfex {
7 Prefs::Prefs(std::string
const& filename, lsst::daf::base::PropertySet
const* values
9 char *cfilename =
const_cast<char *
>(filename.c_str());
10 int const narg = values->nameCount();
12 readprefs(cfilename, 0x0, 0x0, narg);
14 std::vector<char *> argkey(narg);
15 std::vector<char *> argval(narg);
16 std::vector<std::string>
const names = values->paramNames();
22 std::vector<std::string> paramvalues(narg);
24 for (
int i = 0; i != narg; ++i) {
25 std::string
const& name = names[i];
26 argkey[i] =
const_cast<char *
>(name.c_str());
27 paramvalues[i] = values->getAsString(name);
28 argval[i] =
const_cast<char *
>(paramvalues[i].c_str());
31 readprefs(cfilename, &argkey[0], &argval[0], narg);
34 for (
int i = 0; i !=
prefs.ncontext_name; ++i) {
35 _context_names.push_back(
prefs.context_name[i]);
37 for (
int i = 0; i !=
prefs.ncontext_group; ++i) {
38 _context_groups.push_back(
prefs.context_group[i]);
40 for (
int i = 0; i !=
prefs.ngroup_deg; ++i) {
41 _group_degs.push_back(
prefs.group_deg[i]);
47 delete[] _command_line;
51 Prefs::setCommandLine(std::vector<std::string>
const& argv)
53 prefs.ncommand_line = argv.size();
54 _command_line =
new char const*[
prefs.ncommand_line + 1];
56 for (i = 0; i !=
prefs.ncommand_line; ++i) {
57 _command_line[i] = argv[i].c_str();
60 prefs.command_line =
const_cast<char **
>(_command_line);
64 Prefs::addCatalog(std::string
const& filename) {
65 if (
prefs.ncat >= MAXFILE) {
66 throw LSST_EXCEPT(lsst::pex::exceptions::LengthError,
"Too many input catalogues");
68 _catalogs.push_back(filename);
69 prefs.incat_name[
prefs.ncat++] =
const_cast<char *
>((_catalogs.end() - 1)->c_str());