uri_facade_lin.cpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #include <opc/common/uri_facade.h>
00013 
00014 #include <opc/common/exception.h>
00015 
00016 #include <libxml/uri.h>
00017 
00018 namespace Common
00019 {
00020 
00021   void Uri::Initialize(const char* uriString, std::size_t)
00022   {
00023     xmlURIPtr uri = xmlParseURI(uriString);
00024     if (!uri)
00025     {
00026       THROW_ERROR1(CannotParseUri, uriString);
00027     }
00028     if (uri->scheme)
00029     {
00030       SchemeStr = uri->scheme;
00031     }
00032     if (uri->user)
00033     {
00034       UserStr = uri->user;
00035       int ix = UserStr.find(':');
00036       if(ix > 0) {
00037         PasswordStr = UserStr.substr(ix + 1);
00038         UserStr = UserStr.substr(0, ix);
00039       }
00040     }
00041     if (uri->server)
00042     {
00043       HostStr = uri->server;
00044     }
00045 
00046     PortNum = uri->port;
00047     xmlFreeURI(uri);
00048 
00049     if (SchemeStr.empty() || HostStr.empty())
00050     {
00051       THROW_ERROR1(CannotParseUri, uriString);
00052     }
00053   }
00054 
00055 } // namespace Common
00056 
00057 


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Sat Jun 8 2019 18:24:57