#ifndef URI_HPP #define URI_HPP /** * @file Uri.hpp * * This module declares the Uri::Uri class. * * © 2018 by Richard Walters */ #include namespace Uri { /** * This class represents a Uniform Resource Identifier (URI), * as defined in RFC 3986 (https://tools.ietf.org/html/rfc3986). */ class Uri { // Lifecycle management public: ~Uri(); Uri(const Uri&) = delete; Uri(Uri&&) = delete; Uri& operator=(const Uri&) = delete; Uri& operator=(Uri&&) = delete; // Public methods public: /** * This is the default constructor. */ Uri(); // Private properties private: /** * This is the type of structure that contains the private * properties of the instance. It is defined in the implementation * and declared here to ensure that it is scoped inside the class. */ struct Impl; /** * This contains the private properties of the instance. */ std::unique_ptr< struct Impl > impl_; }; } #endif /* URI_HPP */