亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gameswf_xml.h

?? 一個開源的嵌入式flash播放器 具體看文檔和例子就可
?? H
字號:
#ifndef __XML_H__#define __XML_H__//#define DEBUG_MEMORY_ALLOCATION 1#include "base/tu_config.h"#include "gameswf_log.h"#include "gameswf_action.h"#include "gameswf_impl.h"#include "gameswf_log.h"#ifdef HAVE_LIBXML#include <libxml/xmlmemory.h>#include <libxml/parser.h>#include <libxml/xmlreader.h>namespace gameswf{class XMLAttr { public:  XMLAttr();  ~XMLAttr();    char        *_name;  char        *_value;  XMLAttr *operator = (XMLAttr node) {    log_msg("\t\tCopying XMLAttr object at %p\n", this);        _name = new char[strlen(node._name)+2];    memset(_name, 0, strlen(node._name)+2);    strcpy(_name, node._name);    _value = new char[strlen(node._value)+2];    memset(_value, 0, strlen(node._value)+2);    strcpy(_value, node._value);    return this;  }};struct xmlattr_as_object : public gameswf::as_object{  //XMLAttr obj;  int   padding;#ifdef DEBUG_MEMORY_ALLOCATION  xmlattr_as_object()   {    log_msg("\t\tCreating xmlattr_as_object at %p\n", this);  };  ~xmlattr_as_object()   {    log_msg("\tDeleting xmlattr_as_object at %p \n", this);  };#endif}; class XMLNode{public:  XMLNode();  ~XMLNode();  int length() { return _children.size(); }  tu_string nodeName()   {    return _name;  }  char *nodeValue()  {    return _value;  }    //  nodeType 	XML.nodeType  bool hasChildNodes()  {    if (_children.size() > 0) {      return true;    }    return false;  }    XMLNode *firstChild()  {    return _children[0];  }    array<XMLNode *>childNodes()  {    return _children;  }    XMLNode *operator [] (int x)  {    gameswf::log_msg("%s: get element %d\n", __FUNCTION__, x);        return _children[x];  }    XMLNode *operator = (XMLNode &node)  {    _name = node._name;    _value = node._value;    _children = node._children;    _attributes = node._attributes;    return this;  }  XMLNode *operator = (XMLNode *node)  {    _name = node->_name;    _value = node->_value;    _children = node->_children;    _attributes = node->_attributes;    return this;  }  void appendChild(XMLNode *node)  {    node->_children.push_back(node);  }  void  change_stack_frame(int frame, gameswf::as_object *xml, gameswf::as_environment *env);  #if 0appendChild()   	 XML.appendChild()attributes 	XML.attributeschildNodes 	XML.childNodescloneNode() 	XML.cloneNode()insertBefore() 	XML.insertBefore()lastChild 	XML.lastChildnextSibling 	XML.nextSiblingnodeType 	XML.nodeTypeparentNode 	XML.parentNodepreviousSibling 	XML.previousSiblingremoveNode() 	XML.removeNode()toString() 	XML.toString()#endif  char               *_name;  char               *_value;  array<XMLNode *>   _children;  array<XMLAttr *>   _attributes;};struct xmlnode_as_object : public gameswf::as_object{  //XMLNode obj;  int                _padding;#ifdef DEBUG_MEMORY_ALLOCATION  xmlnode_as_object()   {    log_msg("\tCreating xmlnode_as_object at %p \n", this);  };  ~xmlnode_as_object()   {    log_msg("\tDeleting xmlnode_as_object at %p \n", this);  };#endif  virtual bool	get_member(const tu_stringi& name, as_value* val)  {    //printf("GET XMLNode MEMBER: %s at %p for object %p\n", name.c_str(), val, this);    if ((name == "firstChild") || (name == "childNodes")) {      //printf("Returning a self reference for %s for object at %p\n", name.c_str(), this);      val->set(this);      return true;    }        if (m_members.get(name, val) == false) {      if (m_prototype != NULL) {        return m_prototype->get_member(name, val);      }      return false;    }    return true;  }};class XML { public:  XML();  XML(tu_string xml_in);  XML(struct node * childNode);  virtual ~XML();  // Methods  bool parseDoc(xmlDocPtr document, bool mem); // This is the base method used by both parseXML() and load().  bool parseXML(tu_string xml_in); // Parses an XML document into the specified XML object tree.  bool load(const char *filespec);  // Loads a document (specified by                                    // the XML object) from a URL.  bool onLoad();                   // An event handler that returns a                                   // Boolean value indicating whether                                   // the XML object was successfully                                   // loaded with XML.load() or                                   // XML.sendAndLoad().  // Appends a node to the end of the specified object's child list.  void appendChild(XMLNode *node)  {    _nodes->_children.push_back(node);  }    virtual bool on_event(gameswf::event_id id);  virtual void	on_event_load();  bool loaded()    { return _loaded; }  XMLNode *firstChild()  {    return _nodes;    //return _node_data[0];  }    void clear()  {    delete _nodes;  }    array<XMLNode *> childNodes()  {    return _nodes->_children;  }    //  Returns true if the specified node has child nodes; otherwise, returns false.  bool hasChildNodes()  {    return _nodes->_children.size();  }  XMLNode *extractNode(xmlNodePtr node, bool mem);  XMLNode *processNode(xmlTextReaderPtr reader, XMLNode *node);  void  change_stack_frame(int frame, gameswf::as_object *xml, gameswf::as_environment *env);  void  setupStackFrames(gameswf::as_object *xml, gameswf::as_environment *env);  void  cleanupStackFrames( XMLNode *data);  as_object *setupFrame(gameswf::as_object *xml, XMLNode *data, bool src);    const char *nodeNameGet()     {      return _nodename;    }    int length() { return _nodes->length(); }  #if 0  void addRequestHeader();          // Adds or changes HTTP headers for POST                                    // operations.   void appendChild();               // Appends a node to the end of                                    // the specified object's child                                    // list.  void cloneNode();                 // Clones the specified node and,                                    // optionally, recursively clones                                    // all children.   void createElement(); // Creates a new XML element.  void createTextNode(); //Creates a new XML text node.  void getBytesLoaded(); // Returns the number of bytes loaded for the specified XML document.  void getBytesTotal(); // Returns the size of the XML document, in bytes.  void insertBefore();// Inserts a node in front of an existing node in the specified node's child list.  void removeNode();// Removes the specified node from its parent.  void send();             // Sends the specified XML object to a URL.  void sendAndLoad(); // Sends the specified XML object to a URL and loads the server response into another XML object.void   gameswf::tu_string toString();                // Converts the specified node and                                                 // any children to XML text. #endif  virtual void	on_xml_event(gameswf::event_id id) { on_event(id); }    // Special event handler;   void	on_event_close() { on_event(gameswf::event_id::SOCK_CLOSE); }    XMLNode *operator [] (int x);#if 0  XMLNode *operator = (XMLNode &node)  {    gameswf::log_msg("%s: copy element %s\n", __FUNCTION__, node._name.c_str());    _nodes = node;  }#endif  XML *operator = (XMLNode *node)  {    _nodes = node;        return this;  }  private:  //bool _on_event_loaded;    xmlDocPtr _doc;    xmlNodePtr _firstChild;        // Properties    bool _loaded;                           // Read-only; checks if                                            // the specified XML object has loaded.    const char  *_nodename;                  // The node name of an XML object.    XMLNode     *_nodes;    //    array<XMLNode *>  _node_data;  //    hash<gameswf::event_id, gameswf::as_value>	_event_handlers;#if 0    array<struct node *> _childNodes; // Read-only; returns an array containing                                            // references to the child                                            // nodes of the specified                                            // node.  contentType; //	Indicates the MIME type transmitted to the server.  docTypeDecl;	// Sets and returns information about an XML document's DOCTYPE declaration.  firstChild;	// Read-only; references the first child in the list for the specified node.  bool ignoreWhite;	// When set to true, text nodes that contain only white space are discarded during the parsing process.  lastChild;	// References the last child in the list for the specified node.  nextSibling;	// Read-only; references the next sibling in the parent node's child list.  tu_string nodeType;	// The type of the specified node (XML element or text node).  nodeValue;	// The text of the specified node if the node is a text node.  parentNode;	// Read-only; references the parent node of the specified node.  previousSibling; //	Read-only; references the previous sibling in the parent node's child list.  status; //	A numeric status code indicating the success or failure of an XML document parsing operation.  xmlDecl; //	Specifies information about a document's XML declaration.  // Collections data  attributes; // Returns an associative array containing all of the attributes of the specified node.  // Event Handlers  onData; // An event handler that is invoked when XML text has been          // completely downloaded from the server, or when an error          // occurs downloading XML text from a server. #endif  };struct xml_as_object : public gameswf::as_object{  XML obj;#ifdef DEBUG_MEMORY_ALLOCATION  xml_as_object()   {    log_msg("\tCreating xml_as_object at %p\n", this);  };  ~xml_as_object()   {    log_msg("\tDeleting xml_as_object at %p\n", this);  };#endif  virtual bool	get_member(const tu_stringi& name, as_value* val)  {    //printf("GET XML MEMBER: %s at %p for object %p\n", name.c_str(), val, this);    if ((name == "firstChild") || (name == "childNodes")) {      //printf("Returning a self reference for %s for object at %p\n", name.c_str(), this);      val->set(this);      return true;    }        if (m_members.get(name, val) == false) {      if (m_prototype != NULL) {        return m_prototype->get_member(name, val);      }      return false;    }    return true;  }};void xml_load(const fn_call& fn);void xml_set_current(const fn_call& fn);void xml_new(const fn_call& fn);// These are the event handlers called for this objectvoid xml_onload(const fn_call& fn);void xml_ondata(const fn_call& fn);void xml_loaded(const fn_call& fn);int memadjust(int x);}	// end namespace gameswf#endif // HAVE_LIBXML#endif	// __XML_H__

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合欧美在线| 香蕉成人伊视频在线观看| 在线亚洲精品福利网址导航| 国产成+人+日韩+欧美+亚洲| 亚洲狠狠爱一区二区三区| 一区二区不卡在线播放 | 1区2区3区国产精品| 国产亚洲精品资源在线26u| 26uuu成人网一区二区三区| 精品国内片67194| 久久影院视频免费| 国产欧美一区二区精品忘忧草| 久久蜜桃av一区精品变态类天堂| 精品乱码亚洲一区二区不卡| 精品少妇一区二区三区免费观看| 久久综合狠狠综合久久综合88| 久久久99精品久久| 1000部国产精品成人观看| 亚洲欧美一区二区三区久本道91 | 日本乱人伦一区| 成人av电影在线网| 91丨porny丨在线| 欧美三级一区二区| 欧美自拍偷拍一区| 欧美日韩久久一区二区| 欧美zozo另类异族| 欧美国产禁国产网站cc| 亚洲最新在线观看| 老司机午夜精品99久久| 成人97人人超碰人人99| 欧美三级资源在线| 久久精品无码一区二区三区| 亚洲男人电影天堂| 久久精品国产精品亚洲综合| bt7086福利一区国产| 欧美日韩性生活| 久久综合色8888| 亚洲专区一二三| 国产一区二区网址| 在线欧美小视频| 久久久久久久久伊人| 亚洲综合无码一区二区| 精品一区二区精品| 欧美中文字幕一二三区视频| 久久奇米777| 亚洲v精品v日韩v欧美v专区| 成人永久免费视频| 欧美精品日韩一区| 国产精品无遮挡| 石原莉奈一区二区三区在线观看 | 国产精品女上位| 丝袜美腿亚洲综合| 色综合欧美在线视频区| 久久久午夜精品理论片中文字幕| 亚洲午夜视频在线观看| 国产精品99久久久久久久女警 | 天天综合网 天天综合色| 国产乱子伦视频一区二区三区| 不卡的电视剧免费网站有什么| 91精品国产色综合久久久蜜香臀| 久久久.com| 亚洲乱码中文字幕| 懂色中文一区二区在线播放| 欧美大肚乱孕交hd孕妇| 天堂一区二区在线| 欧美日韩精品综合在线| 亚洲免费在线观看视频| 97精品久久久久中文字幕| 久久久久久综合| 国内精品久久久久影院色| 日韩欧美一级在线播放| 蜜桃av一区二区三区电影| 欧美精品视频www在线观看| 亚洲成人免费影院| 欧美亚洲另类激情小说| 亚洲综合在线观看视频| 91久久线看在观草草青青| 亚洲免费资源在线播放| 色欧美乱欧美15图片| 亚洲久草在线视频| 色久优优欧美色久优优| 亚洲国产日韩a在线播放性色| 色综合久久中文综合久久97| 亚洲激情av在线| 色94色欧美sute亚洲线路一ni | 成人高清视频免费观看| 国产精品久久久久久久浪潮网站| 成人午夜伦理影院| 最新成人av在线| 色偷偷88欧美精品久久久| 亚洲一区二区五区| 欧美精品在线一区二区三区| 日本不卡一区二区| 精品日韩99亚洲| 成人免费黄色在线| 亚洲综合自拍偷拍| 日韩久久精品一区| 成人激情免费电影网址| 一区二区三区欧美亚洲| 91精品国产综合久久久蜜臀粉嫩 | 日韩女优毛片在线| 国产成人在线视频网站| 亚洲日本一区二区| 欧美日韩精品一区二区三区蜜桃| 日韩av一级电影| 亚洲国产精品av| 欧洲亚洲精品在线| 久久99久国产精品黄毛片色诱| 国产欧美一区二区精品性| 日本二三区不卡| 狠狠色丁香婷综合久久| 一区二区三区四区在线播放| 日韩欧美一二区| 99久久国产综合精品麻豆| 天天综合网天天综合色| 国产精品视频麻豆| 在线综合视频播放| www.欧美.com| 麻豆一区二区三区| 一区二区三区加勒比av| 久久夜色精品国产噜噜av| 欧美视频中文字幕| 成人在线综合网站| 乱中年女人伦av一区二区| 亚洲视频在线观看三级| 久久女同互慰一区二区三区| 在线免费观看日本欧美| 国产经典欧美精品| 午夜电影久久久| 亚洲免费在线电影| 久久精品视频网| 91精品福利在线一区二区三区| bt7086福利一区国产| 国产一区二区免费在线| 日本中文字幕一区| 亚洲一区二区在线免费看| 中文子幕无线码一区tr| 欧美精品一区在线观看| 91精品一区二区三区久久久久久| 色婷婷精品久久二区二区蜜臂av| 国产中文一区二区三区| 日韩国产精品久久久| 亚洲自拍偷拍网站| 亚洲乱码国产乱码精品精98午夜| 中文字幕欧美三区| 国产欧美精品区一区二区三区| 日韩欧美一级片| 日韩欧美电影一二三| 在线播放日韩导航| 宅男噜噜噜66一区二区66| 欧美日韩国产综合久久| 欧美性大战久久久| 欧美日韩一级视频| 欧美日韩高清一区| 欧美美女bb生活片| 欧美精品久久久久久久多人混战| 欧美午夜精品免费| 欧美日韩在线电影| 91麻豆精品国产91久久久久久久久 | 日本中文字幕一区| 蜜桃一区二区三区四区| 日本不卡在线视频| 极品少妇xxxx偷拍精品少妇| 国产一区二区三区在线观看免费| 日韩av网站在线观看| 美女一区二区久久| 国产伦精一区二区三区| 波波电影院一区二区三区| 日本久久一区二区三区| 91精品国产欧美一区二区| 国产亚洲短视频| 亚洲九九爱视频| 伦理电影国产精品| 成人精品亚洲人成在线| 欧洲一区二区三区免费视频| 欧美一区日韩一区| 久久久久久电影| 亚洲自拍偷拍图区| 国产乱码精品一区二区三区av| 不卡一区二区在线| 欧美精品视频www在线观看| 久久久久久亚洲综合影院红桃| 亚洲欧美一区二区三区极速播放 | 亚洲欧美日韩国产综合| 欧美高清在线视频| 中文字幕在线不卡一区 | 五月综合激情网| 亚洲精品菠萝久久久久久久| 亚洲激情图片qvod| 91精品视频网| 日韩一区二区三区三四区视频在线观看| 精品欧美一区二区三区精品久久| 欧美久久一二三四区| 91麻豆精品久久久久蜜臀| 一本大道av伊人久久综合| 精品欧美乱码久久久久久1区2区| 欧美sm美女调教| 久久久久国色av免费看影院| 久久久久久久久蜜桃| 亚洲国产精品黑人久久久|