Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > d8d30ad953f2dbe7e871721325480315 > files > 195

librttr-devel-0.9.6-1.mga7.armv7hl.rpm

<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.15"/>
        <script type="text/javascript" src="jquery.min.js"></script>
        <title>rttr: rttr::library Class Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link rel = "shortcut icon" type = "image/x-icon" href = "favicon.ico">
        <link rel = "stylesheet" href = "fonts/ptsans_regular_macroman/stylesheet.css">
        <link rel = "stylesheet" href = "fonts/source_code_pro_regular/stylesheet.css">
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="custom-doxygen.css" rel="stylesheet" type="text/css"/>
        <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" href="custom-bootstrap.css">
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <script type="text/javascript" src="doxy-boot.js"></script>
    </head>
    <body>
     <!--
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">rttr 0.9.6</a>
                </div>
            </div>
        </nav>
        -->
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacerttr.html">rttr</a></li><li class="navelem"><a class="el" href="classrttr_1_1library.html">library</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classrttr_1_1library-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">rttr::library Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The <a class="el" href="classrttr_1_1library.html">library</a> class provides a cross platform way of explicit loading shared objects (<code>.so</code> on Unix based system and <code>.DLL</code> on windows).  
 <a href="classrttr_1_1library.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="library_8h_source.html">library.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae2d5d5e24c0d88ac120a7a8f8ee3215b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#ae2d5d5e24c0d88ac120a7a8f8ee3215b">library</a> (<a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> file_name, <a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> version=<a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>())</td></tr>
<tr class="memdesc:ae2d5d5e24c0d88ac120a7a8f8ee3215b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a library instance that will load the given library <code><code>file_name</code></code> and an optional version number <code>version</code>.  <a href="#ae2d5d5e24c0d88ac120a7a8f8ee3215b">More...</a><br /></td></tr>
<tr class="separator:ae2d5d5e24c0d88ac120a7a8f8ee3215b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860d6b08355718044f8233c72610a0a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#a860d6b08355718044f8233c72610a0a2">library</a> (const <a class="el" href="classrttr_1_1library.html">library</a> &amp;)=delete</td></tr>
<tr class="separator:a860d6b08355718044f8233c72610a0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeff4aa27b7c00d9d26717399b8eff75c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#aeff4aa27b7c00d9d26717399b8eff75c">~library</a> ()</td></tr>
<tr class="memdesc:aeff4aa27b7c00d9d26717399b8eff75c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the library instance.  <a href="#aeff4aa27b7c00d9d26717399b8eff75c">More...</a><br /></td></tr>
<tr class="separator:aeff4aa27b7c00d9d26717399b8eff75c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbed9630dc3d9b7f8bf66b7cb2fcb671"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#abbed9630dc3d9b7f8bf66b7cb2fcb671">get_error_string</a> () const noexcept</td></tr>
<tr class="memdesc:abbed9630dc3d9b7f8bf66b7cb2fcb671"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a text string with the description of the last error that occurred.  <a href="#abbed9630dc3d9b7f8bf66b7cb2fcb671">More...</a><br /></td></tr>
<tr class="separator:abbed9630dc3d9b7f8bf66b7cb2fcb671"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af47977ce295e08b523db38813c408608"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#af47977ce295e08b523db38813c408608">get_file_name</a> () const noexcept</td></tr>
<tr class="memdesc:af47977ce295e08b523db38813c408608"><td class="mdescLeft">&#160;</td><td class="mdescRight">When the library was not yet <a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">loaded</a>, the file name given in the constructor will be returned.  <a href="#af47977ce295e08b523db38813c408608">More...</a><br /></td></tr>
<tr class="separator:af47977ce295e08b523db38813c408608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc0fd8714fa63f9b8d5c0418575708a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt; <a class="el" href="classrttr_1_1method.html">method</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#aacc0fd8714fa63f9b8d5c0418575708a">get_global_methods</a> () const noexcept</td></tr>
<tr class="memdesc:aacc0fd8714fa63f9b8d5c0418575708a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A range of all registered global <a class="el" href="classrttr_1_1method.html">methods</a> in this library.  <a href="#aacc0fd8714fa63f9b8d5c0418575708a">More...</a><br /></td></tr>
<tr class="separator:aacc0fd8714fa63f9b8d5c0418575708a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14adc51b00376663bbf4e167104abdbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt; <a class="el" href="classrttr_1_1property.html">property</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#a14adc51b00376663bbf4e167104abdbd">get_global_properties</a> () const noexcept</td></tr>
<tr class="memdesc:a14adc51b00376663bbf4e167104abdbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">A range of all registered global <a class="el" href="classrttr_1_1property.html">properties</a> in this library.  <a href="#a14adc51b00376663bbf4e167104abdbd">More...</a><br /></td></tr>
<tr class="separator:a14adc51b00376663bbf4e167104abdbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3bd54aa554717f8de56544a3b04e7e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt; <a class="el" href="classrttr_1_1type.html">type</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#af3bd54aa554717f8de56544a3b04e7e6">get_types</a> () const noexcept</td></tr>
<tr class="memdesc:af3bd54aa554717f8de56544a3b04e7e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">A range of all registered type in this library.  <a href="#af3bd54aa554717f8de56544a3b04e7e6">More...</a><br /></td></tr>
<tr class="separator:af3bd54aa554717f8de56544a3b04e7e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e3bd86d3968e9bc0b3e3d3f03ebd56b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#a5e3bd86d3968e9bc0b3e3d3f03ebd56b">is_loaded</a> () const noexcept</td></tr>
<tr class="memdesc:a5e3bd86d3968e9bc0b3e3d3f03ebd56b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the library is loaded; otherwise returns false.  <a href="#a5e3bd86d3968e9bc0b3e3d3f03ebd56b">More...</a><br /></td></tr>
<tr class="separator:a5e3bd86d3968e9bc0b3e3d3f03ebd56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada3a0cb1563d4764fd72641cbf95dcde"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">load</a> ()</td></tr>
<tr class="memdesc:ada3a0cb1563d4764fd72641cbf95dcde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the library and returns <code>true</code>; otherwise <code>false. </code> <a href="#ada3a0cb1563d4764fd72641cbf95dcde">More...</a><br /></td></tr>
<tr class="separator:ada3a0cb1563d4764fd72641cbf95dcde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b482287fc414540b7149d89a7c0027"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1library.html">library</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#a84b482287fc414540b7149d89a7c0027">operator=</a> (const <a class="el" href="classrttr_1_1library.html">library</a> &amp;)=delete</td></tr>
<tr class="separator:a84b482287fc414540b7149d89a7c0027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab06ad42544a4af8cc4336af551625186"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186">unload</a> ()</td></tr>
<tr class="memdesc:ab06ad42544a4af8cc4336af551625186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unloads the library.  <a href="#ab06ad42544a4af8cc4336af551625186">More...</a><br /></td></tr>
<tr class="separator:ab06ad42544a4af8cc4336af551625186"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classrttr_1_1library.html">library</a> class provides a cross platform way of explicit loading shared objects (<code>.so</code> on Unix based system and <code>.DLL</code> on windows). </p>
<p>With a call to <a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">load()</a> the library will be loaded and with <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186">unload()</a> unloaded. The explicit call to <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186">unload()</a> is not necessary. An internal ref count will trigger the unload automatically on application exit. So you are free the let the <a class="el" href="classrttr_1_1library.html">library</a> instance go out of scope after loading, the type data will still be available.</p>
<p>After loading the library, the types of the plugin will be registered to the type system of RTTR. Use therefore the macro: <a class="el" href="registration_8h.html#acd4d632edb955a7664489ae6d90aa8bd">RTTR_PLUGIN_REGISTRATION</a>. The <a class="el" href="classrttr_1_1type.html">types</a> or global <a class="el" href="classrttr_1_1property.html">properties</a> or <a class="el" href="classrttr_1_1method.html">methods</a> can be retrieved directly from the library class via getters.</p>
<p>Because the types are registered via RTTR, it is not necessary to additionally mark your types for export (e.g. using <code>__declspec( dllexport )</code> on windows). Furthermore, with using RTTR, it is possible to export overloaded methods (same name but different signature).</p>
<h2>Copying and Assignment </h2>
<p>A <a class="el" href="classrttr_1_1library.html">library</a> object cannot be copied or assigned.</p>
<h2>Typical Usage </h2>
<p>A typical usage example is the following: Some cpp file in your plugin called: "MyPlugin": </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;rttr/registration&gt;</span></div><div class="line"><span class="keyword">struct </span>Foo</div><div class="line">{</div><div class="line">   <span class="keywordtype">void</span> set_value(<span class="keywordtype">int</span> v) { <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a> = v; }</div><div class="line">   <span class="keywordtype">int</span> get_value()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a>; }</div><div class="line">   <span class="keywordtype">int</span> <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a> = 0;</div><div class="line">};</div><div class="line"></div><div class="line"><a class="code" href="registration_8h.html#acd4d632edb955a7664489ae6d90aa8bd">RTTR_PLUGIN_REGISTRATION</a></div><div class="line">{</div><div class="line">  <a class="code" href="classrttr_1_1registration_1_1class__.html">rttr::registration::class_&lt;Foo&gt;</a>(<span class="stringliteral">&quot;Foo&quot;</span>)</div><div class="line">          .<a class="code" href="classrttr_1_1registration_1_1class__.html#a92925cd9adc8c53c6c2df6e5f7f86e8a">constructor</a>&lt;&gt;()</div><div class="line">          .property(<span class="stringliteral">&quot;value&quot;</span>, &amp;Foo::set_value, &amp;Foo::get_value);</div><div class="line">}</div></div><!-- fragment --><p>Now in your application, which loads the plugin: </p><div class="fragment"><div class="line"><a class="code" href="classrttr_1_1library.html#ae2d5d5e24c0d88ac120a7a8f8ee3215b">library</a> lib(<span class="stringliteral">&quot;MyPlugin&quot;</span>); <span class="comment">// file suffix is not needed, will be automatically appended</span></div><div class="line">lib.load();</div><div class="line"><span class="keyword">auto</span> t = <a class="code" href="classrttr_1_1type.html#a7ba79b9f4916c30db74fe65508dca033">type::get_by_name</a>(<span class="stringliteral">&quot;Foo&quot;</span>);</div><div class="line">std::cout &lt;&lt; t.get_name() &lt;&lt; std::endl; <span class="comment">// prints &quot;Foo&quot;</span></div><div class="line">variant var = t.create();</div><div class="line"><span class="keyword">auto</span> <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a> = t.set_property_value(<span class="stringliteral">&quot;value&quot;</span>, var, 12);</div><div class="line">std::cout &lt;&lt; t.get_property_value(<span class="stringliteral">&quot;value&quot;</span>, var).to_string() &lt;&lt; std::endl; <span class="comment">// prints &quot;12&quot;</span></div></div><!-- fragment --> </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae2d5d5e24c0d88ac120a7a8f8ee3215b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2d5d5e24c0d88ac120a7a8f8ee3215b">&#9670;&nbsp;</a></span>library() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">rttr::library::library </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>&#160;</td>
          <td class="paramname"><em>file_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>&#160;</td>
          <td class="paramname"><em>version</em> = <code><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs a library instance that will load the given library <code><code>file_name</code></code> and an optional version number <code>version</code>. </p>
<p>The file name is expected to be encoded in UTF-8 format.</p>
<p>It is recommend to omit the file suffix, the library class will automatically look for a file with the native library suffix/prefix ( e.g. <code>lib</code>, <code>.so</code> on Unix, <code>.dylib</code> on macOS and iOS, and <code>.dll</code> on Windows) </p>

</div>
</div>
<a id="aeff4aa27b7c00d9d26717399b8eff75c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeff4aa27b7c00d9d26717399b8eff75c">&#9670;&nbsp;</a></span>~library()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">rttr::library::~library </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroys the library instance. </p>
<dl class="section remark"><dt>Remarks</dt><dd>This will not <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186">unload</a> the library. However, on application exit, the library will be unloaded automatically.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186" title="Unloads the library.">unload()</a> </dd></dl>

</div>
</div>
<a id="a860d6b08355718044f8233c72610a0a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a860d6b08355718044f8233c72610a0a2">&#9670;&nbsp;</a></span>library() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">rttr::library::library </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classrttr_1_1library.html">library</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abbed9630dc3d9b7f8bf66b7cb2fcb671"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbed9630dc3d9b7f8bf66b7cb2fcb671">&#9670;&nbsp;</a></span>get_error_string()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> rttr::library::get_error_string </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a text string with the description of the last error that occurred. </p>
<p>The error string will be only set when the <a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">loading</a> or <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186">unloading</a> fails.</p>
<dl class="section return"><dt>Returns</dt><dd>An error string. Empty when no error occurred.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde" title="Loads the library and returns true; otherwise false.">load()</a>, <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186" title="Unloads the library.">unload()</a> </dd></dl>

</div>
</div>
<a id="af47977ce295e08b523db38813c408608"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af47977ce295e08b523db38813c408608">&#9670;&nbsp;</a></span>get_file_name()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> rttr::library::get_file_name </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>When the library was not yet <a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">loaded</a>, the file name given in the constructor will be returned. </p>
<p>After a successful call to <a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde">load()</a>, <a class="el" href="classrttr_1_1library.html#af47977ce295e08b523db38813c408608">get_file_name()</a> returns the fully-qualified file name of the library, including the absolute path to the library if one was given in the constructor. e.g. </p><div class="fragment"><div class="line"><a class="code" href="classrttr_1_1library.html#ae2d5d5e24c0d88ac120a7a8f8ee3215b">library</a> lib(<span class="stringliteral">&quot;MyPlugin&quot;</span>); <span class="comment">// loading a windows DLL relative (actual name is MyPlugin.dll)</span></div><div class="line">lib.load();</div><div class="line">lib.get_file_name();     <span class="comment">// returns &quot;MyPlugin.dll&quot;</span></div></div><!-- fragment --><dl class="section return"><dt>Returns</dt><dd><code>true</code> when the library is loaded; otherwise <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde" title="Loads the library and returns true; otherwise false.">load()</a>, <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186" title="Unloads the library.">unload()</a> </dd></dl>

</div>
</div>
<a id="aacc0fd8714fa63f9b8d5c0418575708a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aacc0fd8714fa63f9b8d5c0418575708a">&#9670;&nbsp;</a></span>get_global_methods()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt;<a class="el" href="classrttr_1_1method.html">method</a>&gt; rttr::library::get_global_methods </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A range of all registered global <a class="el" href="classrttr_1_1method.html">methods</a> in this library. </p>
<dl class="section return"><dt>Returns</dt><dd>A range of all loaded methods. Or empty if no <a class="el" href="classrttr_1_1method.html">methods</a> were loaded.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1method.html" title="The method class provides several meta information about a method and can be invoked.">method</a> </dd></dl>

</div>
</div>
<a id="a14adc51b00376663bbf4e167104abdbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14adc51b00376663bbf4e167104abdbd">&#9670;&nbsp;</a></span>get_global_properties()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt;<a class="el" href="classrttr_1_1property.html">property</a>&gt; rttr::library::get_global_properties </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A range of all registered global <a class="el" href="classrttr_1_1property.html">properties</a> in this library. </p>
<dl class="section return"><dt>Returns</dt><dd>A range of all loaded properties. Or empty if no <a class="el" href="classrttr_1_1property.html">properties</a> were loaded.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1property.html" title="The property class provides several meta information about a property and gives read/write access to ...">property</a> </dd></dl>

</div>
</div>
<a id="af3bd54aa554717f8de56544a3b04e7e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3bd54aa554717f8de56544a3b04e7e6">&#9670;&nbsp;</a></span>get_types()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classrttr_1_1array__range.html">array_range</a>&lt;<a class="el" href="classrttr_1_1type.html">type</a>&gt; rttr::library::get_types </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A range of all registered type in this library. </p>
<dl class="section return"><dt>Returns</dt><dd>A range of all loaded types. Or empty if no <a class="el" href="classrttr_1_1type.html">types</a> were loaded.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1type.html" title="The type class holds the type information for any arbitrary object.">type</a> </dd></dl>

</div>
</div>
<a id="a5e3bd86d3968e9bc0b3e3d3f03ebd56b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e3bd86d3968e9bc0b3e3d3f03ebd56b">&#9670;&nbsp;</a></span>is_loaded()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool rttr::library::is_loaded </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns true if the library is loaded; otherwise returns false. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> when the library is loaded; otherwise <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde" title="Loads the library and returns true; otherwise false.">load()</a>, <a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186" title="Unloads the library.">unload()</a> </dd></dl>

</div>
</div>
<a id="ada3a0cb1563d4764fd72641cbf95dcde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada3a0cb1563d4764fd72641cbf95dcde">&#9670;&nbsp;</a></span>load()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool rttr::library::load </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads the library and returns <code>true</code>; otherwise <code>false. </code></p>
<p>When the library could not be loaded, check the <a class="el" href="classrttr_1_1library.html#abbed9630dc3d9b7f8bf66b7cb2fcb671">error string</a>.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> when the library was successfully loaded; otherwise <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ab06ad42544a4af8cc4336af551625186" title="Unloads the library.">unload()</a>, <a class="el" href="classrttr_1_1library.html#abbed9630dc3d9b7f8bf66b7cb2fcb671" title="Returns a text string with the description of the last error that occurred.">get_error_string()</a> </dd></dl>

</div>
</div>
<a id="a84b482287fc414540b7149d89a7c0027"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84b482287fc414540b7149d89a7c0027">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classrttr_1_1library.html">library</a>&amp; rttr::library::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classrttr_1_1library.html">library</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab06ad42544a4af8cc4336af551625186"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab06ad42544a4af8cc4336af551625186">&#9670;&nbsp;</a></span>unload()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool rttr::library::unload </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unloads the library. </p>
<p>On application exit this happens automatically, so usually you don't need to call this function. When the same library is loaded multiple times, this call will not succeed before every library instance was unloaded.</p>
<dl class="section remark"><dt>Remarks</dt><dd>When you unload the library, make sure you don't hold any data (methods, properties or variants etc...) anymore, which was created by this library. Otherwise undefined behavior may occur (crash!).</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> when the library was successfully unloaded, otherwise <code>false</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1library.html#ada3a0cb1563d4764fd72641cbf95dcde" title="Loads the library and returns true; otherwise false.">load()</a>, <a class="el" href="classrttr_1_1library.html#abbed9630dc3d9b7f8bf66b7cb2fcb671" title="Returns a text string with the description of the last error that occurred.">get_error_string()</a> </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="library_8h_source.html">library.h</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
<small>
Generated on Thu Apr 11 2019 20:05:58 for rttr - 0.9.6 by 
<a href="http://www.doxygen.org/index.html">doxygen</a>.
</small>
</address>
</body>
</html>