コード例 #1
0
	void *NclPresentationControlParser::posCompileSwitch(
		    DOMElement *parentElement, void *parentObject) {

		wclog << "posCompileSwitch" << endl;
		DOMNodeList *elementNodeList;
		int i, size;
		DOMNode *node;
		void *elementObject;

		elementNodeList = parentElement->getChildNodes();
		size = elementNodeList->getLength();

		for (i = 0; i < size; i++) {
			node = elementNodeList->item(i);
			if (node->getNodeType() == DOMNode::ELEMENT_NODE &&
				    XMLString::compareIString(
				    	    ((DOMElement*)node)->getTagName(),
				    	    XMLString::transcode("switchPort")) == 0) {

				elementObject = getInterfacesParser()->parseSwitchPort(
					    (DOMElement*)node, parentObject);

				if (elementObject != NULL) {
					addSwitchPortToSwitch(parentObject, elementObject);
				}
			}
		}

		return parentObject;
	}
コード例 #2
0
	void *NclStructureParser::parseBody(
		    DOMElement *parentElement, void *objGrandParent) {

		void *parentObject;
		DOMNodeList *elementNodeList;
		int i, size;
		DOMNode *node;
		DOMElement *element;
		string elementTagName;
		void *elementObject;

		parentObject = createBody(parentElement, objGrandParent);
		if (parentObject == NULL) {
			return NULL;
		}

		elementNodeList = parentElement->getChildNodes();
		size = elementNodeList->getLength();

		for (i = 0; i < size; i++) {
			node = elementNodeList->item(i);
			if(node->getNodeType()==DOMNode::ELEMENT_NODE){
				element = (DOMElement*)node;
				elementTagName = XMLString::transcode(element->getTagName());
				if (XMLString::compareIString(
					    elementTagName.c_str(), "media")==0) {

					elementObject = getComponentsParser()->parseMedia(
						    element, parentObject);

					if (elementObject != NULL) {
						addMediaToBody(parentObject, elementObject);
					}
				}
				else if (XMLString::compareIString(
					    elementTagName.c_str(), "context")==0) {

					elementObject = getComponentsParser()->parseContext(
						    element, parentObject);

					if (elementObject != NULL) {
						addContextToBody(parentObject, elementObject);
					}
				}
				else if (XMLString::compareIString(
					    elementTagName.c_str(), "switch")==0) {

					elementObject = getPresentationControlParser()->
						    parseSwitch(element, parentObject);

					if (elementObject != NULL) {
						addSwitchToBody(parentObject, elementObject);
					}
				}
			}
		}

		for (i = 0; i < size; i++) {
			node = elementNodeList->item(i);
			if (node->getNodeType()==DOMNode::ELEMENT_NODE &&
				    XMLString::compareIString(((DOMElement*)node)->
				    	    getTagName(),
				    	    XMLString::transcode("property"))==0) {

				elementObject = getInterfacesParser()->parseProperty(
					    (DOMElement*)node, parentObject);

				if (elementObject != NULL) {
					addPropertyToBody(parentObject, elementObject);
				}
			}
		}

		return parentObject;
	}