1 /* 2 * Copyright 2010-2019 Branimir Karadzic. All rights reserved. 3 * License: https://github.com/bkaradzic/bx#license-bsd-2-clause 4 */ 5 6 #ifndef BX_URL_H_HEADER_GUARD 7 #define BX_URL_H_HEADER_GUARD 8 9 #include "string.h" 10 11 namespace bx 12 { 13 /// 14 class UrlView 15 { 16 public: 17 enum Enum 18 { 19 Scheme, 20 UserName, 21 Password, 22 Host, 23 Port, 24 Path, 25 Query, 26 Fragment, 27 28 Count 29 }; 30 31 /// 32 UrlView(); 33 34 /// 35 void clear(); 36 37 /// 38 bool parse(const StringView& _url); 39 40 /// 41 const StringView& get(Enum _token) const; 42 43 private: 44 StringView m_tokens[Count]; 45 }; 46 47 /// 48 void urlEncode(char* _out, uint32_t _max, const StringView& _str); 49 50 } // namespace bx 51 52 #endif // BX_URL_H_HEADER_GUARD 53