diff options
Diffstat (limited to 'graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp')
-rw-r--r-- | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp b/graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp new file mode 100644 index 0000000000..cb9b243f43 --- /dev/null +++ b/graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp @@ -0,0 +1,62 @@ +// Copyright (c) Glyn Matthews 2011-2016 +// Copyright 2012 Dean Michael Berris <dberris@google.com> +// Copyright 2012 Google, Inc. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +/** + * \file + * \brief Defines stream overloads for the uri class. + */ + +#ifndef NETWORK_URI_URI_IO_INC +#define NETWORK_URI_URI_IO_INC + +#include <network/uri/config.hpp> +#include <network/uri/uri.hpp> +#include <iosfwd> + +namespace network { +#if !defined(NETWORK_URI_MSVC) +template <typename CharT, class CharTraits = std::char_traits<CharT> > +std::basic_ostream<CharT, CharTraits> &operator<<( + std::basic_ostream<CharT, CharTraits> &os, const uri &uri_) { + return os << uri_.to_string<CharT, CharTraits>(); +} + +template <typename CharT, class CharTraits = std::char_traits<CharT> > +std::basic_istream<CharT, CharTraits> &operator>>( + std::basic_istream<CharT, CharTraits> &is, uri &uri_) { + std::basic_string<CharT, CharTraits> uri_string; + is >> uri_string; + uri_ = uri(uri_string); + return is; +} +#else +inline std::ostream &operator<<(std::ostream &os, const uri &uri_) { + return os << uri_.string(); +} + +inline std::wostream &operator<<(std::wostream &os, const uri &uri_) { + return os << uri_.wstring(); +} + +inline std::istream &operator>>(std::istream &is, uri &uri_) { + std::string uri_string; + is >> uri_string; + uri_ = uri(uri_string); + return is; +} + +inline std::wistream &operator>>(std::wistream &is, uri &uri_) { + std::wstring uri_string; + is >> uri_string; + uri_ = uri(uri_string); + return is; +} +#endif // !defined(NETWORK_URI_MSVC) + +} // namespace network + +#endif // NETWORK_URI_URI_IO_INC |