summaryrefslogtreecommitdiffstats
path: root/klinkstatus/src/engine/linkstatus_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'klinkstatus/src/engine/linkstatus_impl.h')
-rw-r--r--klinkstatus/src/engine/linkstatus_impl.h417
1 files changed, 417 insertions, 0 deletions
diff --git a/klinkstatus/src/engine/linkstatus_impl.h b/klinkstatus/src/engine/linkstatus_impl.h
new file mode 100644
index 00000000..3359664c
--- /dev/null
+++ b/klinkstatus/src/engine/linkstatus_impl.h
@@ -0,0 +1,417 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Paulo Moura Guedes *
+ * moura@kdewebdev.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+inline LinkStatus::LinkStatus()
+ : status_(LinkStatus::UNDETERMINED), depth_(-1), external_domain_depth_(-1), is_root_(false),
+ error_occurred_(false), is_redirection_(false), parent_(0), redirection_(0), checked_(false),
+ only_check_header_(true), malformed_(false),
+ node_(0), has_base_URI_(false), has_html_doc_title_(false), ignored_(false),
+ mimetype_(""), is_error_page_(false), tree_view_item_(0)
+{}
+
+inline LinkStatus::LinkStatus(KURL const& absolute_url)
+ : status_(LinkStatus::UNDETERMINED), depth_(-1), external_domain_depth_(-1), is_root_(false),
+ error_occurred_(false), is_redirection_(false), parent_(0), redirection_(0), checked_(false),
+ only_check_header_(true), malformed_(false),
+ node_(0), has_base_URI_(false), has_html_doc_title_(false), ignored_(false),
+ mimetype_(""), is_error_page_(false), tree_view_item_(0)
+{
+ setAbsoluteUrl(absolute_url);
+}
+
+inline LinkStatus::LinkStatus(Node* node, LinkStatus* parent)
+ : status_(LinkStatus::UNDETERMINED), depth_(-1), external_domain_depth_(-1), is_root_(false),
+ error_occurred_(false), is_redirection_(false), parent_(0), redirection_(0), checked_(false),
+ only_check_header_(true), malformed_(false),
+ node_(node), has_base_URI_(false), has_html_doc_title_(false), ignored_(false),
+ mimetype_(""), is_error_page_(false), tree_view_item_(0)
+{
+ loadNode();
+
+ setDepth(parent->depth() + 1);
+ setParent(parent);
+ setRootUrl(parent->rootUrl());
+}
+
+inline void LinkStatus::setRootUrl(KURL const& url)
+{
+ root_url_ = url;
+}
+
+inline void LinkStatus::setStatus(Status status)
+{
+ status_ = status;
+}
+
+inline void LinkStatus::setDepth(uint depth)
+{
+ depth_ = depth;
+}
+
+inline void LinkStatus::setParent(LinkStatus* parent)
+{
+ Q_ASSERT(parent);
+
+ parent_ = parent;
+ addReferrer(parent->absoluteUrl());
+}
+
+inline void LinkStatus::setAbsoluteUrl(KURL const& url_absoluto)
+{
+ absolute_url_ = url_absoluto;
+}
+
+inline void LinkStatus::setOriginalUrl(QString const& url_original)
+{
+ original_url_ = url_original;
+}
+
+inline void LinkStatus::setLabel(QString const& label)
+{
+ label_ = label;
+}
+
+inline void LinkStatus::setDocHtml(QString const& doc_html)
+{
+ Q_ASSERT(!doc_html.isEmpty());
+ doc_html_ = doc_html;
+}
+
+inline void LinkStatus::setHttpHeader(HttpResponseHeader const& cabecalho_http)
+{
+ http_header_ = cabecalho_http;
+}
+
+inline void LinkStatus::setStatusText(QString const& status)
+{
+ Q_ASSERT(!status.isEmpty());
+ status_text_ = status;
+}
+
+inline void LinkStatus::setError(QString const& error)
+{
+ Q_ASSERT(!error.isEmpty());
+ error_ = error;
+}
+
+inline void LinkStatus::setErrorOccurred(bool houve_error)
+{
+ error_occurred_ = houve_error;
+}
+
+inline void LinkStatus::setIsRoot(bool flag)
+{
+ is_root_ = flag;
+ label_ = i18n("ROOT");
+}
+
+inline void LinkStatus::setRedirection(LinkStatus* redirection)
+{
+ Q_ASSERT(redirection != NULL);
+ Q_ASSERT(isRedirection());
+ redirection_ = redirection;
+}
+
+inline void LinkStatus::setIsRedirection(bool e_redirection)
+{
+ is_redirection_ = e_redirection;
+}
+
+inline void LinkStatus::addChildNode(Node* node)
+{
+ children_nodes_.push_back(node);
+}
+
+inline void LinkStatus::reserveMemoryForChildrenNodes(int n)
+{
+ Q_ASSERT(n > 0);
+ children_nodes_.reserve(n);
+}
+
+inline void LinkStatus::setChecked(bool flag)
+{
+ checked_ = flag;
+}
+
+inline void LinkStatus::setExternalDomainDepth(int p)
+{
+ Q_ASSERT(p >= -1);
+ external_domain_depth_ = p;
+}
+
+inline void LinkStatus::setOnlyCheckHeader(bool flag)
+{
+ only_check_header_= flag;
+}
+
+inline void LinkStatus::setHasBaseURI(bool flag)
+{
+ has_base_URI_ = flag;
+}
+
+inline void LinkStatus::setHasHtmlDocTitle(bool flag)
+{
+ has_html_doc_title_ = flag;
+}
+
+inline void LinkStatus::setBaseURI(KURL const& base_url)
+{
+ if(!base_url.isValid())
+ {
+ kdWarning(23100) << "base url not valid: " << endl
+ << "parent: " << parent()->absoluteUrl().prettyURL() << endl
+ << "url: " << absoluteUrl().prettyURL() << endl
+ << "base url resolved: " << base_url.prettyURL() << endl;
+ }
+
+ Q_ASSERT(base_url.isValid());
+ has_base_URI_ = true;
+ base_URI_ = base_url;
+}
+
+inline void LinkStatus::setHtmlDocTitle(QString const& title)
+{
+ if(title.isNull() || title.isEmpty())
+ {
+ kdError(23100) << "HTML doc title is null or empty!" << endl
+ << toString() << endl;
+ }
+ Q_ASSERT(!title.isNull() && !title.isEmpty());
+
+ has_html_doc_title_ = true;
+ html_doc_title_ = title;
+}
+
+inline void LinkStatus::setIgnored(bool flag)
+{
+ ignored_ = flag;
+}
+
+inline void LinkStatus::setMimeType(QString const& mimetype)
+{
+ Q_ASSERT(!mimetype.isNull() && !mimetype.isEmpty());
+ mimetype_ = mimetype;
+}
+
+inline void LinkStatus::setIsErrorPage(bool flag)
+{
+ is_error_page_ = flag;
+}
+
+inline void LinkStatus::setIsLocalRestrict(bool flag)
+{
+ is_local_restrict_ = flag;
+}
+
+inline void LinkStatus::setTreeViewItem(TreeViewItem* tree_view_item)
+{
+ Q_ASSERT(tree_view_item);
+ tree_view_item_ = tree_view_item;
+}
+
+inline void LinkStatus::addReferrer(KURL const& url)
+{
+ Q_ASSERT(url.isValid());
+
+ referrers_.push_back(url);
+}
+
+
+
+
+inline KURL const& LinkStatus::rootUrl() const
+{
+ return root_url_;
+}
+
+inline LinkStatus::Status const& LinkStatus::status() const
+{
+ return status_;
+}
+
+inline uint LinkStatus::depth() const
+{
+ return depth_;
+}
+
+inline bool LinkStatus::local() const
+{
+ return external_domain_depth_ == -1;
+}
+
+inline bool LinkStatus::isLocalRestrict() const
+{
+ return is_local_restrict_;
+}
+
+inline LinkStatus const* LinkStatus::parent() const
+{
+ return parent_;
+}
+
+inline QString const& LinkStatus::originalUrl() const
+{
+ return original_url_;
+}
+
+inline QString const& LinkStatus::label() const
+{
+ return label_;
+}
+
+inline KURL const& LinkStatus::absoluteUrl() const
+{
+ return absolute_url_;
+}
+
+inline QString const& LinkStatus::docHtml() const
+{
+ return doc_html_;
+}
+
+inline HttpResponseHeader const& LinkStatus::httpHeader() const
+{
+ return http_header_;
+}
+
+inline HttpResponseHeader& LinkStatus::httpHeader()
+{
+ return http_header_;
+}
+
+inline QString LinkStatus::statusText() const
+{
+ if(errorOccurred())
+ return error();
+ else if(!absoluteUrl().protocol().startsWith("http"))
+ return status_text_;
+ else
+ {
+ QString string_code = QString::number(httpHeader().statusCode());
+ if(absoluteUrl().hasRef()) // ref URL
+ return status_text_;
+ else if(string_code == "200"/* or string_code == "304"*/)
+ return "OK";
+ else
+ return string_code;
+ }
+}
+
+inline QString const& LinkStatus::error() const
+{
+ return error_;
+}
+
+inline bool LinkStatus::isRoot() const
+{
+ return is_root_;
+}
+
+inline bool LinkStatus::errorOccurred() const
+{
+ return error_occurred_;
+}
+
+inline bool LinkStatus::isRedirection() const
+{
+ return is_redirection_;
+}
+
+inline LinkStatus* LinkStatus::redirection() const
+{
+ Q_ASSERT(isRedirection());
+
+ return redirection_;
+}
+
+inline Node* LinkStatus::node() const
+{
+ //Q_ASSERT(node_);
+ return node_;
+}
+
+inline vector<Node*> const& LinkStatus::childrenNodes() const
+{
+ return children_nodes_;
+}
+
+inline bool LinkStatus::checked() const
+{
+ return checked_;
+}
+
+inline int LinkStatus::externalDomainDepth() const
+{
+ return external_domain_depth_;
+}
+
+inline bool LinkStatus::onlyCheckHeader() const
+{
+ return only_check_header_;
+}
+
+inline bool LinkStatus::hasBaseURI() const
+{
+ return has_base_URI_;
+}
+
+inline bool LinkStatus::hasHtmlDocTitle() const
+{
+ return has_html_doc_title_;
+}
+
+inline KURL const& LinkStatus::baseURI() const
+{
+ Q_ASSERT(hasBaseURI());
+ return base_URI_;
+}
+
+inline QString const& LinkStatus::htmlDocTitle() const
+{
+ Q_ASSERT(has_html_doc_title_);
+ return html_doc_title_;
+}
+
+inline bool LinkStatus::ignored() const
+{
+ return ignored_;
+}
+
+inline QString LinkStatus::mimeType() const
+{
+ Q_ASSERT(!mimetype_.isNull());
+ return mimetype_;
+}
+
+inline bool LinkStatus::isErrorPage() const
+{
+ return is_error_page_;
+}
+
+inline TreeViewItem* LinkStatus::treeViewItem() const
+{
+ return tree_view_item_;
+}
+
+inline QValueVector<KURL> const& LinkStatus::referrers() const
+{
+ return referrers_;
+}
+