13#ifndef RooFitHS3_JSONInterface_h
14#define RooFitHS3_JSONInterface_h
23namespace Experimental {
33 virtual std::unique_ptr<Impl>
clone()
const = 0;
41 std::unique_ptr<Impl>
it;
80 virtual void writeYML(std::ostream &)
const {
throw std::runtime_error(
"YML not supported"); }
90 for (
const auto &
e :
v) {
106 virtual std::string
key()
const = 0;
107 virtual std::string
val()
const = 0;
108 virtual int val_int()
const {
return atoi(this->
val().c_str()); }
110 virtual bool val_bool()
const {
return atoi(this->
val().c_str()); }
140 throw std::runtime_error(
"node " +
n.key() +
" is not of sequence type!");
142 for (
const auto &
e :
n.children()) {
143 v.push_back(
e.val_t<T>());
TBuffer & operator<<(TBuffer &buf, const Tmpl *obj)
virtual RooFit::Experimental::JSONNode & rootnode()=0
virtual void backward()=0
virtual bool equal(const Impl &other) const =0
virtual std::unique_ptr< Impl > clone() const =0
bool operator==(const child_iterator_t &that) const
child_iterator_t(std::unique_ptr< Impl > impl)
child_iterator_t(const child_iterator_t &other)
child_iterator_t & operator++()
bool operator!=(const child_iterator_t &that) const
child_iterator_t & operator--()
std::unique_ptr< Impl > it
children_view_t(child_iterator_t< Nd > const &b_, child_iterator_t< Nd > const &e_)
child_iterator_t< Nd > begin() const
child_iterator_t< Nd > end() const
virtual JSONNode & child(size_t pos)=0
virtual void writeYML(std::ostream &) const
virtual std::string val() const =0
virtual JSONNode & operator[](size_t pos)=0
virtual std::string key() const =0
virtual bool has_child(std::string const &) const =0
virtual JSONNode & operator<<(std::string const &s)=0
virtual const JSONNode & child(size_t pos) const =0
virtual JSONNode & operator<<(int i)=0
virtual size_t num_children() const =0
virtual const JSONNode & operator[](size_t pos) const =0
virtual JSONNode & operator[](std::string const &k)=0
virtual bool is_seq() const =0
virtual float val_float() const
virtual bool val_bool() const
virtual bool has_val() const =0
virtual bool has_key() const =0
virtual const JSONNode & operator[](std::string const &k) const =0
virtual void writeJSON(std::ostream &os) const =0
virtual int val_int() const
virtual JSONNode & operator<<(double d)=0
virtual bool is_container() const =0
virtual JSONNode & append_child()=0
virtual const JSONNode & operator>>(std::string &v) const =0
virtual children_view children()
virtual bool is_map() const =0
JSONNode & operator<<(const std::vector< T > &v)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...