150  if (
auto pval0 = std::get_if<OriginValueMatcher>(&
other.mLeft)) {
 
  152  } 
else if (
auto pval1 = std::get_if<DescriptionValueMatcher>(&
other.mLeft)) {
 
  154  } 
else if (
auto pval2 = std::get_if<SubSpecificationTypeValueMatcher>(&
other.mLeft)) {
 
  156  } 
else if (
auto pval3 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&
other.mLeft)) {
 
  157    mLeft = std::move(std::make_unique<DataDescriptorMatcher>(*pval3->get()));
 
  158  } 
else if (
auto pval4 = std::get_if<ConstantValueMatcher>(&
other.mLeft)) {
 
  160  } 
else if (
auto pval5 = std::get_if<StartTimeValueMatcher>(&
other.mLeft)) {
 
  163    std::cerr << (
other.mLeft.index() == std::variant_npos) << std::endl;
 
  167  if (
auto pval0 = std::get_if<OriginValueMatcher>(&
other.mRight)) {
 
  169  } 
else if (
auto pval1 = std::get_if<DescriptionValueMatcher>(&
other.mRight)) {
 
  171  } 
else if (
auto pval2 = std::get_if<SubSpecificationTypeValueMatcher>(&
other.mRight)) {
 
  173  } 
else if (
auto pval3 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&
other.mRight)) {
 
  174    mRight = std::move(std::make_unique<DataDescriptorMatcher>(*pval3->get()));
 
  175  } 
else if (
auto pval4 = std::get_if<ConstantValueMatcher>(&
other.mRight)) {
 
  177  } 
else if (
auto pval5 = std::get_if<StartTimeValueMatcher>(&
other.mRight)) {
 
 
  241  bool leftValue = 
false, rightValue = 
false;
 
  270  if (
auto pval0 = std::get_if<OriginValueMatcher>(&mLeft)) {
 
  271    auto dh = o2::header::get<header::DataHeader*>(d);
 
  275    leftValue = pval0->match(*dh, context);
 
  276  } 
else if (
auto pval1 = std::get_if<DescriptionValueMatcher>(&mLeft)) {
 
  277    auto dh = o2::header::get<header::DataHeader*>(d);
 
  281    leftValue = pval1->match(*dh, context);
 
  282  } 
else if (
auto pval2 = std::get_if<SubSpecificationTypeValueMatcher>(&mLeft)) {
 
  283    auto dh = o2::header::get<header::DataHeader*>(d);
 
  287    leftValue = pval2->match(*dh, context);
 
  288  } 
else if (
auto pval3 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&mLeft)) {
 
  289    leftValue = (*pval3)->match(d, context);
 
  290  } 
else if (
auto pval4 = std::get_if<ConstantValueMatcher>(&mLeft)) {
 
  291    leftValue = pval4->match();
 
  292  } 
else if (
auto pval5 = std::get_if<StartTimeValueMatcher>(&mLeft)) {
 
  293    auto dh = o2::header::get<header::DataHeader*>(d);
 
  294    auto dph = o2::header::get<DataProcessingHeader*>(d);
 
  295    if (dph == 
nullptr) {
 
  298    leftValue = pval5->match(*dh, *dph, context);
 
  303  if (mOp == 
Op::And && leftValue == 
false) {
 
  306  if (mOp == 
Op::Or && leftValue == 
true) {
 
  316  if (
auto pval0 = std::get_if<OriginValueMatcher>(&mRight)) {
 
  317    auto dh = o2::header::get<header::DataHeader*>(d);
 
  318    rightValue = pval0->match(*dh, context);
 
  319  } 
else if (
auto pval1 = std::get_if<DescriptionValueMatcher>(&mRight)) {
 
  320    auto dh = o2::header::get<header::DataHeader*>(d);
 
  321    rightValue = pval1->match(*dh, context);
 
  322  } 
else if (
auto pval2 = std::get_if<SubSpecificationTypeValueMatcher>(&mRight)) {
 
  323    auto dh = o2::header::get<header::DataHeader*>(d);
 
  324    rightValue = pval2->match(*dh, context);
 
  325  } 
else if (
auto pval3 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&mRight)) {
 
  326    rightValue = (*pval3)->match(d, context);
 
  327  } 
else if (
auto pval4 = std::get_if<ConstantValueMatcher>(&mRight)) {
 
  328    rightValue = pval4->match();
 
  329  } 
else if (
auto pval5 = std::get_if<StartTimeValueMatcher>(&mRight)) {
 
  330    auto dh = o2::header::get<header::DataHeader*>(d);
 
  331    auto dph = o2::header::get<DataProcessingHeader*>(d);
 
  332    rightValue = pval5->match(*dh, *dph, context);
 
  338      return leftValue || rightValue;
 
  340      return leftValue && rightValue;
 
  342      return leftValue ^ rightValue;
 
 
  353  if (
other.mOp != this->mOp) {
 
  357  bool leftValue = 
false;
 
  360    auto v1 = std::get_if<OriginValueMatcher>(&this->mLeft);
 
  361    auto v2 = std::get_if<OriginValueMatcher>(&
other.mLeft);
 
  368    auto v1 = std::get_if<DescriptionValueMatcher>(&this->mLeft);
 
  369    auto v2 = std::get_if<DescriptionValueMatcher>(&
other.mLeft);
 
  376    auto v1 = std::get_if<SubSpecificationTypeValueMatcher>(&this->mLeft);
 
  377    auto v2 = std::get_if<SubSpecificationTypeValueMatcher>(&
other.mLeft);
 
  384    auto v1 = std::get_if<ConstantValueMatcher>(&this->mLeft);
 
  385    auto v2 = std::get_if<ConstantValueMatcher>(&
other.mLeft);
 
  392    auto v1 = std::get_if<StartTimeValueMatcher>(&this->mLeft);
 
  393    auto v2 = std::get_if<StartTimeValueMatcher>(&
other.mLeft);
 
  400    auto v1 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&this->mLeft);
 
  401    auto v2 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&
other.mLeft);
 
  402    if (
v1 && 
v2 && 
v1->get() && 
v2->get() && (**
v1 == **
v2)) {
 
  408  if (leftValue == 
false) {
 
  421    auto v1 = std::get_if<OriginValueMatcher>(&this->mRight);
 
  422    auto v2 = std::get_if<OriginValueMatcher>(&
other.mRight);
 
  429    auto v1 = std::get_if<DescriptionValueMatcher>(&this->mRight);
 
  430    auto v2 = std::get_if<DescriptionValueMatcher>(&
other.mRight);
 
  437    auto v1 = std::get_if<SubSpecificationTypeValueMatcher>(&this->mRight);
 
  438    auto v2 = std::get_if<SubSpecificationTypeValueMatcher>(&
other.mRight);
 
  445    auto v1 = std::get_if<ConstantValueMatcher>(&this->mRight);
 
  446    auto v2 = std::get_if<ConstantValueMatcher>(&
other.mRight);
 
  453    auto v1 = std::get_if<StartTimeValueMatcher>(&this->mRight);
 
  454    auto v2 = std::get_if<StartTimeValueMatcher>(&
other.mRight);
 
  461    auto v1 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&this->mRight);
 
  462    auto v2 = std::get_if<std::unique_ptr<DataDescriptorMatcher>>(&
other.mRight);
 
  463    if (
v1 && 
v2 && 
v1->get() && 
v2->get() && (**
v1 == **
v2)) {
 
 
void publish(void(*callback)(VariableContext const &, TimesliceSlot slot, void *context), void *context, TimesliceSlot slot)
 
void put(ContextUpdate &&update)
 
ContextElement::Value const & get(size_t pos) const
 
std::variant< OriginValueMatcher, DescriptionValueMatcher, SubSpecificationTypeValueMatcher, std::unique_ptr< DataDescriptorMatcher >, ConstantValueMatcher, StartTimeValueMatcher > Node
 
std::variant< uint32_t, uint64_t, std::string, None > Value