From 37d73e966209ad29210d5f8ddf0d41741db7dc73 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 5 Sep 2018 23:23:47 +0200 Subject: [PATCH] [DEV] start URI developpement --- etk/fs/Uri.hpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/etk/fs/Uri.hpp b/etk/fs/Uri.hpp index e69de29..5c6fed2 100644 --- a/etk/fs/Uri.hpp +++ b/etk/fs/Uri.hpp @@ -0,0 +1,62 @@ +/** @file + * @author Edouard DUPIN + * @copyright 2018, Edouard DUPIN, all right reserved + * @license MPL v2.0 (see license file) + */ +#pragma once + +#include +#include +#include + +namespace etk { + /** + * @brief Uniform resource interface manage internal resource and nerwork resource (like URL) + * Format is manage like : __SCHEME__://__USER__@__SERVER__:__PORT__/__PATH__?__PARAMETERS__ + */ + class Uri { + private: + etk::String m_scheme; //!< + etk::String m_user; //!< + etk::String m_server; //!< + uint16_t m_port; //!< + etk::Path m_path; //!< + etk::Vector> m_parameters; //!< + public: + ETK_CONSTRUCTOR_MOVE_DEFAULT(Uri); + ETK_CONSTRUCTOR_COPY_DEFAULT(Uri); + /** + * @brief Default contructor. + */ + Uri(); + /** + * @brief Contructor with basic URI. + * @param[in] _value Element basic URI + */ + Uri(const etk::String& _value); + /** + * @brief Contructor with basic URI. + * @param[in] _value Element basic URI + */ + Uri(const char * _value); + + etk::String getScheme() const; + void setScheme(const etk::String &_value); + + etk::String getUser() const; + void setUser(const etk::String &_value); + + etk::String getServer() const; + void setServer(const etk::String &_value); + + uint16_t getPort() const; + void setPort(const uint16_t &_value); + + etk::Path getPath() const; + void setPath(const etk::Path &_value); + + etk::Parameters getParameters() const; + void setParameters(const etk::Parameters &_value); + }; +} +