MCPcopy Create free account
hub / github.com/apache/trafficserver / parse_directive

Method parse_directive

plugins/experimental/txn_box/plugin/src/Config.cc:557–580  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

555}
556
557Rv<Directive::Handle>
558Config::parse_directive(YAML::Node const &drtv_node)
559{
560 if (drtv_node.IsMap()) {
561 return this->load_directive(drtv_node);
562 } else if (drtv_node.IsSequence()) {
563 Errata zret;
564 auto list{new DirectiveList};
565 Directive::Handle drtv_list{list};
566 for (auto child : drtv_node) {
567 auto &&[handle, errata]{this->load_directive(child)};
568 if (errata.is_ok()) {
569 list->push_back(std::move(handle));
570 } else {
571 errata.note(R"(While loading directives at {}.)", drtv_node.Mark());
572 return std::move(errata);
573 }
574 }
575 return drtv_list;
576 } else if (drtv_node.IsNull()) {
577 return Directive::Handle(new NilDirective);
578 }
579 return Errata(S_ERROR, R"(Directive at {} is not an object or a sequence as required.)", drtv_node.Mark());
580}
581
582Errata
583Config::load_top_level_directive(YAML::Node drtv_node)

Callers 3

load_remap_directiveMethod · 0.95
loadMethod · 0.80
load_caseMethod · 0.80

Calls 6

load_directiveMethod · 0.95
ErrataClass · 0.85
is_okMethod · 0.45
push_backMethod · 0.45
noteMethod · 0.45
MarkMethod · 0.45

Tested by

no test coverage detected