⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug_element_builder.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Debug_Element_Builder.cpp,v 1.7 2002/10/13 03:58:57 kitty Exp#include "ACEXML/common/SAXExceptions.h"#include "ACEXML/parser/debug_validator/Debug_Element_Builder.h"ACEXML_Debug_Element_Builder::ACEXML_Debug_Element_Builder ()  : type_ (UNDEFINED),    root_ (0){}ACEXML_Debug_Element_Builder::~ACEXML_Debug_Element_Builder (){  delete this->root_;}intACEXML_Debug_Element_Builder::setElementName (const ACEXML_Char *,                                              const ACEXML_Char *,                                              const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)      ACE_THROW_SPEC ((ACEXML_SAXException)){  this->element_.set (qName, 0);  return 0;}intACEXML_Debug_Element_Builder::setContentType (CONTENT_TYPE type ACEXML_ENV_ARG_DECL)      ACE_THROW_SPEC ((ACEXML_SAXException)){  if (this->type_ == UNDEFINED)    {      this->type_ = type;      return 0;    }  ACEXML_THROW_RETURN (ACEXML_SAXParseException (ACE_TEXT("Element type redefinition in Debug_Validator.")), -1);}intACEXML_Debug_Element_Builder::insertMixedElement (const ACEXML_Char *,                                                  const ACEXML_Char *,                                                  const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)      ACE_THROW_SPEC ((ACEXML_SAXException)){  ACEXML_Element_Tree_Name_Node *node;  // @@ We should "throw" an exception here instead of returning -1.  ACE_NEW_RETURN (node,                  ACEXML_Element_Tree_Name_Node (qName),                  -1);  if (this->root_ == 0)    // @@ Memory leak if fail?    ACE_NEW_RETURN (this->root_,                    ACEXML_Element_Tree_List_Node (),                    -1);  return this->root_->insert (node);}intACEXML_Debug_Element_Builder::startChildGroup (){  ACEXML_Element_Tree_List_Node *lnode;  ACE_NEW_RETURN (lnode,                  ACEXML_Element_Tree_List_Node (),                  -1);  if (this->root_ == 0)    {      this->root_ = lnode;    }  else    {      // @@ check error?      this->root_->insert (lnode);    }  this->active_list_.push (lnode);  return 0;}intACEXML_Debug_Element_Builder::endChildGroup (CARDINALITY  ACEXML_ENV_ARG_DECL_NOT_USED){  this->active_list_.pop ();  return 0;}intACEXML_Debug_Element_Builder::setChoice (){  this->active_list_.top ()->set (ACEXML_Element_Tree_List_Node::CHOICE);  return 0;}intACEXML_Debug_Element_Builder::setSequence (){  this->active_list_.top ()->set (ACEXML_Element_Tree_List_Node::SEQUENCE);  return 0;}intACEXML_Debug_Element_Builder::insertElement  (const ACEXML_Char *,                                              const ACEXML_Char *,                                              const ACEXML_Char *qName ACEXML_ENV_ARG_DECL_NOT_USED)      ACE_THROW_SPEC ((ACEXML_SAXException)){  ACEXML_Element_Tree_Name_Node *node;  // @@ We should "throw" an exception here instead of returning -1.  ACE_NEW_RETURN (node,                  ACEXML_Element_Tree_Name_Node (qName),                  -1);  return this->active_list_.top ()->insert (node);}voidACEXML_Debug_Element_Builder::dump (){  cout << "<!ELEMENT " << this->element_;  // @@ Also dump element contentspec here.  switch (this->type_)    {    case EMPTY:      cout << "EMPTY";      break;    case ANY:      cout << "ANY";      break;    case MIXED:    case CHILDREN:      // @@ Dump the content of this->root_      cout << "*** not implemented ***";      break;    default:      cout << "*** Unidentified element type ***";      break;    }  cout << ">" << endl;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -