summaryrefslogtreecommitdiffstats
path: root/src/uri.h
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-01-16 02:36:01 +0000
committermental <mental@users.sourceforge.net>2006-01-16 02:36:01 +0000
commit179fa413b047bede6e32109e2ce82437c5fb8d34 (patch)
treea5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/uri.h
downloadinkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz
inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/uri.h')
-rw-r--r--src/uri.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/uri.h b/src/uri.h
new file mode 100644
index 000000000..1c890a608
--- /dev/null
+++ b/src/uri.h
@@ -0,0 +1,91 @@
+/**
+ * \file
+ * \brief Classes for representing and manipulating URIs as per RFC 2396.
+ *
+ * Authors:
+ * MenTaLguY <mental@rydia.net>
+ * Jon A. Cruz <jon@joncruz.org>
+ *
+ * Copyright (C) 2003 MenTaLguY
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#ifndef INKSCAPE_URI_H
+#define INKSCAPE_URI_H
+
+#include <glib/gtypes.h>
+#include <exception>
+#include <libxml/uri.h>
+#include "bad-uri-exception.h"
+
+namespace Inkscape {
+
+/** \brief Represents an URI as per RFC 2396. */
+class URI {
+public:
+ URI(URI const &uri);
+ explicit URI(gchar const *preformed) throw(BadURIException);
+ ~URI();
+
+ bool isOpaque() const { return _impl->isOpaque(); }
+ bool isRelative() const { return _impl->isRelative(); }
+ bool isNetPath() const { return _impl->isNetPath(); }
+ bool isRelativePath() const { return _impl->isRelativePath(); }
+ bool isAbsolutePath() const { return _impl->isAbsolutePath(); }
+ const gchar *getScheme() const { return _impl->getScheme(); }
+ const gchar *getPath() const { return _impl->getPath(); }
+ const gchar *getQuery() const { return _impl->getQuery(); }
+ const gchar *getFragment() const { return _impl->getFragment(); }
+ const gchar *getOpaque() const { return _impl->getOpaque(); }
+
+ static URI fromUtf8( gchar const* path ) throw (BadURIException);
+ static URI from_native_filename(gchar const *path) throw(BadURIException);
+ static gchar *to_native_filename(gchar const* uri) throw(BadURIException);
+
+ gchar *toNativeFilename() const throw(BadURIException);
+ gchar *toString() const { return _impl->toString(); }
+
+ URI &operator=(URI const &uri);
+
+private:
+ class Impl {
+ public:
+ static Impl *create(xmlURIPtr uri);
+ void reference();
+ void unreference();
+
+ bool isOpaque() const;
+ bool isRelative() const;
+ bool isNetPath() const;
+ bool isRelativePath() const;
+ bool isAbsolutePath() const;
+ const gchar *getScheme() const;
+ const gchar *getPath() const;
+ const gchar *getQuery() const;
+ const gchar *getFragment() const;
+ const gchar *getOpaque() const;
+ gchar *toString() const;
+ private:
+ Impl(xmlURIPtr uri);
+ ~Impl();
+ int _refcount;
+ xmlURIPtr _uri;
+ };
+ Impl *_impl;
+};
+
+} /* namespace Inkscape */
+
+#endif
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :