Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:documentation:devguide:core [2016/03/10 09:50] gribeiro [API] |
wiki:documentation:devguide:core [2016/11/21 08:26] (current) carolina.santos |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TerraLib → Core Runtime Library ====== | + | ====== TerraLib.Core ====== |
- | ===== URI ===== | + | * **[[:wiki:documentation:devguide:core:translator|Translator]]:** language translation. |
+ | * **[[:wiki:documentation:devguide:core:char_encoding|CharEncoding]]:** encode/decode characters. | ||
- | ==== Design ==== | + | * **[[:wiki:documentation:devguide:core:logger|Logger]]:** event logs. |
- | ==== API ==== | + | * **[[:wiki:documentation:devguide:core:uri|URI]]:** URIs manipulation. |
- | <code cpp> | + | * **[[:wiki:documentation:devguide:core:library|Library]]:** library management. |
- | class URI | + | |
- | { | + | |
- | public: | + | |
- | // typedefs | + | * **[[:wiki:documentation:devguide:core:files|FileSystem]]:** system paths with UTF-8 strings. |
- | typedef std::string string_type; | + | |
- | typedef string_type::iterator iterator; | + | |
- | typedef string_type::const_iterator const_iterator; | + | |
- | typedef std::iterator_traits<iterator>::value_type value_type; | + | |
- | typedef boost::iterator_range<const_iterator> const_range_type; | + | |
- | + | ||
- | // constructors and destructor | + | |
- | URI(); | + | |
- | + | ||
- | template <typename InputIter, class Alloc = std::allocator<value_type> > | + | |
- | URI(const InputIter &first, const InputIter &last, const Alloc &alloc = Alloc()); | + | |
- | + | ||
- | template <class Source, class Alloc = std::allocator<value_type>> | + | |
- | explicit URI(const Source& source, const Alloc& alloc = Alloc()); | + | |
- | + | ||
- | URI(const URI& other); | + | |
- | + | ||
- | URI(URI&& other) noexcept; | + | |
- | + | ||
- | ~URI(); | + | |
- | + | ||
- | // assignment | + | |
- | URI& operator=(const URI& other); | + | |
- | + | ||
- | URI& operator=(URI&& other) noexcept; | + | |
- | + | ||
- | // swap | + | |
- | void swap(URI& other) noexcept; | + | |
- | + | ||
- | // iterators | + | |
- | const_iterator begin() const; | + | |
- | + | ||
- | const_iterator end() const; | + | |
- | + | ||
- | const_range_type scheme_range() const; | + | |
- | + | ||
- | const_range_type user_info_range() const; | + | |
- | + | ||
- | const_range_type host_range() const; | + | |
- | + | ||
- | const_range_type port_range() const; | + | |
- | + | ||
- | const_range_type path_range() const; | + | |
- | + | ||
- | + | ||
- | const_range_type query_range() const; | + | |
- | + | ||
- | const_range_type fragment_range() const; | + | |
- | + | ||
- | // accessors | + | |
- | string_type scheme() const; | + | |
- | string_type user_info() const; | + | |
- | string_type host() const; | + | |
- | string_type port() const; | + | |
- | string_type path() const; | + | |
- | string_type authority() const; | + | |
- | string_type query() const; | + | |
- | string_type fragment() const; | + | |
- | }; | + | |
- | </code> | + | |
- | ==== Examples ==== | + | |
- | + | ||
- | <file cpp main.cpp> | + | |
- | // TerraLib | + | |
- | #include <terralib/core/URI.h> | + | |
- | + | ||
- | // STL | + | |
- | #include <cassert> | + | |
- | + | ||
- | int main() | + | |
- | { | + | |
- | + | ||
- | te::core::URI uri("http://www.dpi.inpe.br/terralib5/wiki/doku.php?id=wiki:documentation:devguide#modules"); | + | |
- | + | ||
- | assert(uri.is_absolute()); | + | |
- | assert(!uri.is_opaque()); | + | |
- | assert(*uri.scheme() == "http"); | + | |
- | assert(*uri.host() == "www.dpi.inpe.br"); | + | |
- | assert(*uri.path() == "/terralib5/wiki/doku.php"); | + | |
- | assert(*uri.query() == "id=wiki:documentation:devguide"); | + | |
- | assert(*uri.fragment() == "modules"); | + | |
- | + | ||
- | return 0; | + | |
- | } | + | |
- | </file> | + | |
- | ==== References ==== | + | |
- | + | ||
- | ==== Tickets ==== | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/270|#270]]: Refactory URI. | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/1332|#1332]]: Criar a estrutura de pastas e registro no CMake para a nova versão de URI. | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/1333|#1333]]: Implementação da API URI. | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/1334|#1334]]: Implementação de testes para API URI. | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/1335|#1335]]: Implementar os exemplos da API URI. | + | |
- | * [[https://trac.dpi.inpe.br/terralib5/ticket/1336|#1336]]: Fazer a documentação da API de URIs. | + | |
- | ===== Module Manager ===== | + | |
+ | * **[[:wiki:documentation:devguide:core:plugins|Plugins]]:** plugins management. |