void ScriptNode::outputContext(ostream &printStream, const char *indentString) { SFBool *directOutput = getDirectOutputField(); SFBool *mustEvaluate = getMustEvaluateField(); printStream << indentString << "\t" << "directOutput " << directOutput << endl; printStream << indentString << "\t" << "mustEvaluate " << mustEvaluate << endl; if (0 < getNUrls()) { MFString *url = getUrlField(); printStream << indentString << "\t" << "url [" << endl; url->MField::outputContext(printStream, indentString, "\t\t"); printStream << indentString << "\t" << "]" << endl; } int n; for (n=0; n<getNEventIn(); n++) { Field *field = getEventIn(n); printStream << indentString << "\t" << "eventIn " << field->getTypeName() << " " << ((field->getName() && strlen(field->getName())) ? field->getName() : "NONE") << endl; } for (n=0; n<getNFields(); n++) { Field *field = getField(n); String fieldName(field->getName()); if (fieldName.compareTo(directOutputFieldString) != 0 && fieldName.compareTo(mustEvaluateFieldString) != 0) { if (field->getType() == fieldTypeSFNode) { Node *node = ((SFNode *)field)->getValue(); const char *nodeName = NULL; if (node) nodeName = node->getName(); if (nodeName && strlen(nodeName)) printStream << indentString << "\t" << "field " << "SFNode" << " " << ((field->getName() && strlen(field->getName())) ? field->getName() : "NONE") << " USE " << nodeName << endl; else printStream << indentString << "\t" << "field " << "SFNode" << " " << ((field->getName() && strlen(field->getName())) ? field->getName() : "NONE") << " NULL" << endl; } else printStream << indentString << "\t" << "field " << field->getTypeName() << " " << ((field->getName() && strlen(field->getName())) ? field->getName() : "NONE") << " " << field << endl; } } for (n=0; n<getNEventOut(); n++) { Field *field = getEventOut(n); printStream << indentString << "\t" << "eventOut " << field->getTypeName() << " " << ((field->getName() && strlen(field->getName())) ? field->getName() : "NONE") << endl; } }
void AnchorNode::outputContext(ostream &printStream, const char *indentString) { SFString *description = getDescriptionField(); printStream << indentString << "\t" << "description " << description << endl; if (0 < getNParameters()) { MFString *parameter = getParameterField(); printStream << indentString << "\t" << "parameter [" << endl; parameter->MField::outputContext(printStream, indentString, "\t\t"); printStream << indentString << "\t" << "]" << endl; } if (0 < getNUrls()) { MFString *url = getUrlField(); printStream << indentString << "\t" << "url [" << endl; url->MField::outputContext(printStream, indentString, "\t\t"); printStream << indentString << "\t" << "]" << endl; } }
int MUrl::parse() { http_parser_url hpu; if (http_parser_parse_url(m_url.c_str(), m_url.length(), 0, &hpu) != 0) { return -1; } m_scheme = getUrlField(m_url, UF_SCHEMA, hpu); m_host = getUrlField(m_url, UF_HOST, hpu); m_port = getUrlField(m_url, UF_PORT, hpu).toShort(); m_path = getUrlField(m_url, UF_PATH, hpu); m_query = getUrlField(m_url, UF_QUERY, hpu); m_fragment = getUrlField(m_url, UF_FRAGMENT, hpu); if (hasQuery()) { parseQuery(); } return 0; }
void ScriptNode::setUrl(int index, const char *urlString) { getUrlField()->set1Value(index, urlString); }
const char *ScriptNode::getUrl(int index) { return getUrlField()->get1Value(index); }
int ScriptNode::getNUrls() { return getUrlField()->getSize(); }
void ScriptNode::addUrl(const char * value) { getUrlField()->addValue(value); }
void AnchorNode::addUrl(const char *value) { getUrlField()->addValue(value); }
const char *AnchorNode::getUrl(int index) { return getUrlField()->get1Value(index); }
int AnchorNode::getNUrls() { return getUrlField()->getSize(); }