OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe Struct Reference
Collaboration diagram for Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe:

Static Public Member Functions

static std::string attribute (const char **attrs, const char *key)
static void XMLCALL start (void *user_data, const char *name, const char **attrs)
static void XMLCALL characters (void *user_data, const XML_Char *s, int len)
static void XMLCALL end (void *user_data, const char *name)

Public Attributes

XML_Parser parser {nullptr}
bool in_metadata {false}
bool found {false}
bool published {false}
std::string curr_name
std::string curr_value

Detailed Description

Member Function Documentation

◆ attribute()

std::string Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::attribute ( const char ** attrs,
const char * key )
inlinestatic
9610 {
9611 if (attrs == nullptr)
9612 return std::string();
9613 // expat hands the attrs as a NULL-terminated {name, value, ...} array.
9614 for (unsigned int a = 0; attrs[a] != nullptr; a += 2)
9615 if (::strcmp(attrs[a], key) == 0 && attrs[a + 1] != nullptr)
9616 return attrs[a + 1];
9617 return std::string();
9618 }

Referenced by start().

Here is the caller graph for this function:

◆ characters()

void XMLCALL Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::characters ( void * user_data,
const XML_Char * s,
int len )
inlinestatic
9633 {
9634 auto* self = static_cast<PublishedXmlProbe*>(user_data);
9635 if (self->in_metadata)
9636 self->curr_value.append(s, len);
9637 }

References curr_value.

◆ end()

void XMLCALL Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::end ( void * user_data,
const char * name )
inlinestatic
9640 {
9641 auto* self = static_cast<PublishedXmlProbe*>(user_data);
9642 if (!self->in_metadata || ::strcmp(name, METADATA_TAG) != 0)
9643 return;
9644 self->in_metadata = false;
9645 if (self->curr_name == ORCA_PUBLISHED_TAG) {
9646 self->published = is_published_3mf_flag(xml_unescape(self->curr_value));
9647 self->found = true;
9648 if (self->parser != nullptr)
9649 XML_StopParser(self->parser, false);
9650 }
9651 }
static constexpr const char * METADATA_TAG
Definition 3mf.cpp:121
constexpr const char * ORCA_PUBLISHED_TAG
Definition bbs_3mf.hpp:192
std::string xml_unescape(std::string s)
Definition utils.cpp:1641
bool is_published_3mf_flag(const std::string &value)
Definition bbs_3mf.cpp:724

References in_metadata, Slic3r::is_published_3mf_flag(), METADATA_TAG, Slic3r::ORCA_PUBLISHED_TAG, and Slic3r::xml_unescape().

Here is the call graph for this function:

◆ start()

void XMLCALL Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::start ( void * user_data,
const char * name,
const char ** attrs )
inlinestatic
9621 {
9622 auto* self = static_cast<PublishedXmlProbe*>(user_data);
9623 if (::strcmp(name, METADATA_TAG) == 0) {
9624 self->in_metadata = true;
9625 self->curr_name = attribute(attrs, NAME_ATTR);
9626 self->curr_value.clear();
9627 } else {
9628 self->in_metadata = false;
9629 }
9630 }
static constexpr const char * NAME_ATTR
Definition 3mf.cpp:127
static std::string attribute(const char **attrs, const char *key)
Definition bbs_3mf.cpp:9609

References attribute(), METADATA_TAG, and NAME_ATTR.

Here is the call graph for this function:

Member Data Documentation

◆ curr_name

std::string Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::curr_name

◆ curr_value

std::string Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::curr_value

Referenced by characters().

◆ found

bool Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::found {false}
9604{false};

◆ in_metadata

bool Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::in_metadata {false}
9603{false};

Referenced by end().

◆ parser

XML_Parser Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::parser {nullptr}
9602{nullptr};

◆ published

bool Slic3r::anonymous_namespace{bbs_3mf.cpp}::PublishedXmlProbe::published {false}
9605{false};

The documentation for this struct was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Format/bbs_3mf.cpp