diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/uri.h | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/uri.h')
| -rw-r--r-- | src/uri.h | 91 |
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 : |
