LCOV - code coverage report
Current view: top level - zeroeq - uri.cpp (source / functions) Hit Total Coverage
Test: ZeroEQ Lines: 51 51 100.0 %
Date: 2017-12-01 01:44:57 Functions: 16 16 100.0 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2015, Human Brain Project
       3             :  *                     Daniel.Nachbaur@epfl.ch
       4             :  */
       5             : 
       6             : #include "uri.h"
       7             : #include "detail/constants.h"
       8             : #include "log.h"
       9             : 
      10             : #include <cassert>
      11             : 
      12             : namespace zeroeq
      13             : {
      14             : namespace
      15             : {
      16         172 : servus::URI createURI(std::string string)
      17             : {
      18         344 :     servus::URI uri(string);
      19         172 :     if (uri.getScheme().empty())
      20             :     {
      21         124 :         if (string.empty() || string[0] == ':')
      22           2 :             string = std::string("*") + string;
      23         124 :         return servus::URI(DEFAULT_SCHEMA + "://" + string);
      24             :     }
      25             : 
      26          48 :     return uri;
      27             : }
      28             : }
      29             : 
      30         100 : URI::URI()
      31         100 :     : servus::URI()
      32             : {
      33         100 :     setScheme(DEFAULT_SCHEMA);
      34         100 : }
      35             : 
      36         429 : URI::~URI()
      37             : {
      38         429 : }
      39             : 
      40         150 : URI::URI(const std::string& uri)
      41         150 :     : servus::URI(createURI(uri.c_str()))
      42             : {
      43         150 : }
      44             : 
      45          22 : URI::URI(const char* uri)
      46          22 :     : servus::URI(createURI(uri))
      47             : {
      48          22 : }
      49             : 
      50         151 : URI::URI(const URI& from)
      51         151 :     : servus::URI(from)
      52             : {
      53         151 :     assert(!getScheme().empty());
      54         151 : }
      55             : 
      56           6 : URI::URI(const servus::URI& from)
      57           6 :     : servus::URI(from)
      58             : {
      59           6 :     if (getScheme().empty())
      60           4 :         setScheme(DEFAULT_SCHEMA);
      61           6 : }
      62             : 
      63          39 : URI& URI::operator=(const URI& rhs)
      64             : {
      65          39 :     if (this == &rhs)
      66           1 :         return *this;
      67          38 :     servus::URI::operator=(rhs);
      68          38 :     assert(!getScheme().empty());
      69          38 :     return *this;
      70             : }
      71             : 
      72           2 : URI& URI::operator=(const servus::URI& rhs)
      73             : {
      74           2 :     servus::URI::operator=(rhs);
      75           2 :     if (getScheme().empty())
      76           1 :         setScheme(DEFAULT_SCHEMA);
      77           2 :     return *this;
      78             : }
      79             : 
      80           4 : bool URI::operator==(const URI& rhs) const
      81             : {
      82           4 :     return servus::URI::operator==(rhs);
      83             : }
      84             : 
      85           1 : bool URI::operator==(const servus::URI& rhs) const
      86             : {
      87           1 :     return servus::URI::operator==(rhs);
      88             : }
      89             : 
      90           2 : bool URI::operator!=(const URI& rhs) const
      91             : {
      92           2 :     return servus::URI::operator!=(rhs);
      93             : }
      94             : 
      95           1 : bool URI::operator!=(const servus::URI& rhs) const
      96             : {
      97           1 :     return servus::URI::operator!=(rhs);
      98             : }
      99             : 
     100          32 : bool URI::isFullyQualified() const
     101             : {
     102          90 :     return getScheme() != DEFAULT_SCHEMA ||
     103          88 :            (!getHost().empty() && getPort() != 0);
     104             : }
     105          24 : }

Generated by: LCOV version 1.11