1#ifndef __JTOOLS__JSELECTOR__
2#define __JTOOLS__JSELECTOR__
38 template<
class JBase_t>
40 public std::shared_ptr<JBase_t>,
57 template<
class JDerived_t,
class JBase_t>
92 virtual std::istream&
read(std::istream& in)
override
94 JDerived_t* p = this->
load(in);
112 virtual std::ostream&
write(std::ostream& out)
const override
114 this->
store(out, this->get());
124 template<
class JBase_t>
126 public std::shared_ptr< JAbstractAutoPointer<JBase_t> >
145 template<
class JDerived_t>
158 template<
class JDerived_t>
168 template<
class JDerived_t>
180 template<
class JDerived_t>
192 template<
class JDerived_t>
205 template<
class JDerived_t>
220 template<
class JDerived_t>
238 if (element.is_valid())
239 return element.get()->read(in);
254 if (element.is_valid())
255 return element.get()->write(out);
267 template<
class JKey_t,
class JBase_t>
269 public std::map<JKey_t, JAutoElement<JBase_t> >
273 typedef std::map <JKey_t, JAutoElement<JBase_t> >
map_type;
294 template<
class JDerived_t>
306 template<
class JDerived_t>
320 template<
class JDerived_t>
350 return i != this->end() && i->second.is_valid() && i->second.get()->is_valid();
375 if (i != this->end() && i->second.is_valid() && i->second.get()->is_valid())
376 return *(i->second.get()->
get());
405 if (in >> selector.
key) {
409 if (i != selector.end() && i->second.
is_valid())
412 in.setstate(std::ios_base::failbit);
428 if (selector.
key.isDefined()) {
432 if (i != selector.end() && i->second.
is_valid()) {
433 return out << selector.
key <<
' ' << *(i->second);
Exception for null pointer operation.
Interface for ASCII output using standard streams.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JArgument< T >::argument_type argument_type
Auxiliary class for a type holder.