/* * This file is part of libdom. * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang */ #ifndef dom_html_document_h_ #define dom_html_document_h_ #include #include #include #include struct dom_element; struct dom_html_collection; struct dom_html_element; struct dom_nodelist; typedef struct dom_html_document dom_html_document; typedef struct dom_html_document_vtable { struct dom_document_vtable base; dom_exception (*get_title)(dom_html_document *doc, dom_string **title); dom_exception (*set_title)(dom_html_document *doc, dom_string *title); dom_exception (*get_referrer)(dom_html_document *doc, dom_string **referrer); dom_exception (*get_domain)(dom_html_document *doc, dom_string **domain); dom_exception (*get_url)(dom_html_document *doc, dom_string **url); dom_exception (*get_body)(dom_html_document *doc, struct dom_html_element **body); dom_exception (*set_body)(dom_html_document *doc, struct dom_html_element *body); dom_exception (*get_images)(dom_html_document *doc, struct dom_html_collection **col); dom_exception (*get_applets)(dom_html_document *doc, struct dom_html_collection **col); dom_exception (*get_links)(dom_html_document *doc, struct dom_html_collection **col); dom_exception (*get_forms)(dom_html_document *doc, struct dom_html_collection **col); dom_exception (*get_anchors)(dom_html_document *doc, struct dom_html_collection **col); dom_exception (*get_cookie)(dom_html_document *doc, dom_string **cookie); dom_exception (*set_cookie)(dom_html_document *doc, dom_string *cookie); dom_exception (*open)(dom_html_document *doc); dom_exception (*close)(dom_html_document *doc); dom_exception (*write)(dom_html_document *doc, dom_string *text); dom_exception (*writeln)(dom_html_document *doc, dom_string *text); dom_exception (*get_elements_by_name)(dom_html_document *doc, dom_string *name, struct dom_nodelist **list); } dom_html_document_vtable; static inline dom_exception dom_html_document_get_title( dom_html_document *doc, dom_string **title) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_title(doc, title); } #define dom_html_document_get_title(d, t) \ dom_html_document_get_title((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_set_title(dom_html_document *doc, dom_string *title) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> set_title(doc, title); } #define dom_html_document_set_title(d, t) \ dom_html_document_set_title((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_referrer(dom_html_document *doc, dom_string **referrer) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_referrer(doc, referrer); } #define dom_html_document_get_referrer(d, r) \ dom_html_document_get_referrer((dom_html_document *) (d), (r)) static inline dom_exception dom_html_document_get_domain(dom_html_document *doc, dom_string **domain) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_domain(doc, domain); } #define dom_html_document_get_domain(d, t) \ dom_html_document_get_domain((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_url(dom_html_document *doc, dom_string **url) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_url(doc, url); } #define dom_html_document_get_url(d, u) \ dom_html_document_get_url((dom_html_document *) (d), (u)) static inline dom_exception dom_html_document_get_body(dom_html_document *doc, struct dom_html_element **body) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_body(doc, body); } #define dom_html_document_get_body(d, b) \ dom_html_document_get_body((dom_html_document *) (d), \ (struct dom_html_element **) (b)) static inline dom_exception dom_html_document_set_body(dom_html_document *doc, struct dom_html_element *body) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> set_body(doc, body); } #define dom_html_document_set_body(d, b) \ dom_html_document_set_body((dom_html_document *) (d), \ (struct dom_html_element **) (b)) static inline dom_exception dom_html_document_get_images(dom_html_document *doc, struct dom_html_collection **col) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_images(doc, col); } #define dom_html_document_get_images(d, c) \ dom_html_document_get_images((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_applets(dom_html_document *doc, struct dom_html_collection **col) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_applets(doc, col); } #define dom_html_document_get_applets(d, c) \ dom_html_document_get_applets((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_links(dom_html_document *doc, struct dom_html_collection **col) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_links(doc, col); } #define dom_html_document_get_links(d, c) \ dom_html_document_get_links((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_forms(dom_html_document *doc, struct dom_html_collection **col) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_forms(doc, col); } #define dom_html_document_get_forms(d, c) \ dom_html_document_get_forms((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_anchors(dom_html_document *doc, struct dom_html_collection **col) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_anchors(doc, col); } #define dom_html_document_get_anchors(d, c) \ dom_html_document_get_anchors((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc, dom_string **cookie) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_cookie(doc, cookie); } #define dom_html_document_get_cookie(d, c) \ dom_html_document_get_cookie((dom_html_document *) (d), (c)) static inline dom_exception dom_html_document_set_cookie(dom_html_document *doc, dom_string *cookie) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> set_cookie(doc, cookie); } #define dom_html_document_set_cookie(d, c) \ dom_html_document_set_cookie((dom_html_document *) (d), (c)) static inline dom_exception dom_html_document_open(dom_html_document *doc) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> open(doc); } #define dom_html_document_open(d) \ dom_html_document_open((dom_html_document *) (d)) static inline dom_exception dom_html_document_close(dom_html_document *doc) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> close(doc); } #define dom_html_document_close(d) \ dom_html_document_close((dom_html_document *) (d)) static inline dom_exception dom_html_document_write(dom_html_document *doc, dom_string *text) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> write(doc, text); } #define dom_html_document_write(d, t) \ dom_html_document_write((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_writeln(dom_html_document *doc, dom_string *text) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> writeln(doc, text); } #define dom_html_document_writeln(d, t) \ dom_html_document_writeln((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc, dom_string *name, struct dom_nodelist **list) { return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_elements_by_name(doc, name, list); } #define dom_html_document_get_element_by_name(d, n, l) \ dom_html_document_get_elements_by_name((dom_html_document *) (d), \ (n), (struct dom_nodelist **) (l)) #endif