Hazelnupp/docs/CmdArgsInterface_8h_source.html
2021-09-05 12:12:03 +02:00

273 lines
48 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Leonetienne/Hazelnupp: Hazelnupp/CmdArgsInterface.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="nupp_small.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Leonetienne/Hazelnupp
</div>
<div id="projectbrief">Simple, easy to use, command line parameter interface</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<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('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_0202e1e26df2e040f4dc3d434eecf04c.html">Hazelnupp</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">CmdArgsInterface.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="CmdArgsInterface_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Parameter_8h.html">Parameter.h</a>&quot;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ParamConstraint_8h.html">ParamConstraint.h</a>&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Version_8h.html">Version.h</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="namespaceHazelnp.html"> 9</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceHazelnp.html">Hazelnp</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{<span class="comment"></span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> /** The main class to interface with</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classHazelnp_1_1CmdArgsInterface.html"> 13</a></span>&#160; <span class="keyword">class </span><a class="code" href="classHazelnp_1_1CmdArgsInterface.html">CmdArgsInterface</a></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212">CmdArgsInterface</a>();</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212">CmdArgsInterface</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span>* argv);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#aadc75b3b6c9662cfbd4a936468d50466">~CmdArgsInterface</a>();</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> //! Will parse command line arguments</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19">Parse</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span>* argv);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> //! Will return argv[0], the name of the executable.</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#afe83a815b21d37b3d2a6d0ef67137faf">GetExecutableName</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> //! Will return the value given a key</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classHazelnp_1_1Value.html">Value</a>&amp; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#af5e43c1067fb6c1074d9be3427c7a415">operator[]</a>(<span class="keyword">const</span> std::string&amp; key) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> //! Will check wether a parameter exists given a key, or not</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24">HasParam</a>(<span class="keyword">const</span> std::string&amp; key) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// Abbreviations</span><span class="comment"></span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> //! Will register an abbreviation (like -f for --force)</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#aaccf591a74408aeb4363033fe8cb2224">RegisterAbbreviation</a>(<span class="keyword">const</span> std::string&amp; abbrev, <span class="keyword">const</span> std::string&amp; target);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> //! Will return the long form of an abbreviation (like --force for -f) </span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> //! Returns &quot;&quot; if no match is found</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a1486bfef870e6502aefc23b11ce6caaf">GetAbbreviation</a>(<span class="keyword">const</span> std::string&amp; abbrev) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> //! Will check wether or not an abbreviation is registered</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9">HasAbbreviation</a>(<span class="keyword">const</span> std::string&amp; abbrev) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> //! Will delete the abbreviation for a given parameter. </span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> //! IMPORTANT: This parameter is the abbreviation! Not the long form!</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a31f690bd95d5469d38af816183cbe3e7">ClearAbbreviation</a>(<span class="keyword">const</span> std::string&amp; abbrevation);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> //! Will delete all abbreviations</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a019e48f48427e7caa76c964bd0f117d0">ClearAbbreviations</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> //! Will register a constraint for a parameter.</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> //! IMPORTANT: Any parameter can only have ONE constraint. Applying a new one will overwrite the old one!</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> //! Construct the ParamConstraint struct yourself to combine Require, TypeSafety and Incompatibilities! You can also use the ParamConstraint constructor!</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#aa30222df012f357455f90e3620346bb2">RegisterConstraint</a>(<span class="keyword">const</span> std::string&amp; key, <span class="keyword">const</span> <a class="code" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a>&amp; constraint);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> //! Will return the constraint information for a specific parameter</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span> <a class="code" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#adec82884377a5193f68dcc7b6ef69d8b">GetConstraint</a>(<span class="keyword">const</span> std::string&amp; parameter) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> //! Will the constraint of a specific parameter</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a112d2d5e3fd1cf1507592389c8454984">ClearConstraint</a>(<span class="keyword">const</span> std::string&amp; parameter);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> //! Will delete all constraints</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#ad472671fb12450b8d929418fbbffbe40">ClearConstraints</a>();</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> //! Sets whether to crash the application, and print to stderr, when an exception is </span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> //! raised whilst parsing, or not.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a16a3a02f77d240d8cf51cd4ee1797113">SetCrashOnFail</a>(<span class="keywordtype">bool</span> crashOnFail);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> //! Gets whether the application crashes on an exception whilst parsing, and prints to stderr.</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a3e60c7a90c11bdc634d0f5d0dba5064c">GetCrashOnFail</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> //! Sets whether the CmdArgsInterface should automatically catch the --help parameter, print the parameter documentation to stdout, and exit or not.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#abf553ed4acabf9e1db357715bc10533c">SetCatchHelp</a>(<span class="keywordtype">bool</span> catchHelp);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> //! Retruns whether the CmdArgsInterface should automatically catch the --help parameter, print the parameter documentation to stdout, and exit or not.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a1026d98c23659b6d3d108b231806a1e3">GetCatchHelp</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> //! Sets a brief description of the application to be automatically added to the documentation.</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a67ba6cb3176884c85dd56fc9084ab66a">SetBriefDescription</a>(<span class="keyword">const</span> std::string&amp; description);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> //! Returns the brief description of the application to be automatically added to the documentation.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"></span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a1945208a97707b2e3c654424f0760441">GetBriefDescription</a>();</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> //! Willl register a short description for a parameter. </span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> //! Will overwrite existing descriptions for that parameter.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a6589d2e818ba32f2a3e5b5a6a5e2bf1e">RegisterDescription</a>(<span class="keyword">const</span> std::string&amp; parameter, <span class="keyword">const</span> std::string&amp; description);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> //! Will return a short description for a parameter, if it exists. </span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> //! Empty string if it does not exist.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span> <span class="keyword">const</span> std::string&amp; <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3">GetDescription</a>(<span class="keyword">const</span> std::string&amp; parameter) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> //! Returns whether or not a given parameter has a registered description</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a5003f826ee31c6365bf4b6e8b2c8d9f1">HasDescription</a>(<span class="keyword">const</span> std::string&amp; parameter) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> //! Will delete the description of a parameter if it exists.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a62889ce1faa90d0f20be3ae45803baa0">ClearDescription</a>(<span class="keyword">const</span> std::string&amp; parameter);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> //! Will delete all parameter descriptions</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a328dbc265e7ffa9ab526ed8aa755e107">ClearDescriptions</a>();</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> //! Will generate a text-based documentation suited to show the user, for example on --help.</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span> std::string <a class="code" href="classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927">GenerateDocumentation</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> //! Will translate the c-like args to an std::vector</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> PopulateRawArgs(<span class="keyword">const</span> <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span>* argv);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> //! Will replace all args matching an abbreviation with their long form (like -f for --force)</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> ExpandAbbreviations();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> //! Will parse the next parameter. Returns the index of the next parameter.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span> std::size_t ParseNextParameter(<span class="keyword">const</span> std::size_t parIndex, <a class="code" href="classHazelnp_1_1Parameter.html">Parameter</a>*&amp; out_Par);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> //! Will convert a vector of string-values to an actual Value</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span> <a class="code" href="classHazelnp_1_1Value.html">Value</a>* ParseValue(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; values, <span class="keyword">const</span> <a class="code" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a>* constraint = <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> //! Will apply the loaded constraints on the loaded values, exluding types.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> ApplyConstraints();</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> //! Will return a pointer to a paramConstraint given a key. If there is no, it returns nullptr</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"></span> <span class="keyword">const</span> <a class="code" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a>* GetConstraintForKey(<span class="keyword">const</span> std::string&amp; key) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; std::string executableName; <span class="comment">//! The path of the executable. Always argv[0]</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"></span> std::unordered_map&lt;std::string, Parameter*&gt; parameters;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> //! These are abbreviations. Like, -f for --force.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span> std::unordered_map&lt;std::string, std::string&gt; parameterAbreviations;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> //! Parameter constraints, mapped to keys</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"></span> std::unordered_map&lt;std::string, ParamConstraint&gt; parameterConstraints;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> //! Raw argv</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span> std::vector&lt;std::string&gt; rawArgs;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> //! Short descriptions for parameters</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> //! First member is the abbreviation</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"></span> std::unordered_map&lt;std::string, std::string&gt; parameterDescriptions;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> //! A brief description of the application to be added to the generated documentation. Optional.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"></span> std::string briefDescription;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> //! If set to true, CmdArgsInterface will automatically catch the --help parameter, print the parameter documentation to stdout and exit.</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> catchHelp = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> //! If set to true, CmdArgsInterface will crash the application with output to stderr when an exception is thrown whilst parsing.</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"></span> <span class="keywordtype">bool</span> crashOnFail = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a1026d98c23659b6d3d108b231806a1e3"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a1026d98c23659b6d3d108b231806a1e3">Hazelnp::CmdArgsInterface::GetCatchHelp</a></div><div class="ttdeci">bool GetCatchHelp() const</div><div class="ttdoc">Retruns whether the CmdArgsInterface should automatically catch the help parameter,...</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00374">CmdArgsInterface.cpp:374</a></div></div>
<div class="ttc" id="anamespaceHazelnp_html"><div class="ttname"><a href="namespaceHazelnp.html">Hazelnp</a></div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8h_source.html#l00009">CmdArgsInterface.h:9</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html">Hazelnp::CmdArgsInterface</a></div><div class="ttdoc">The main class to interface with.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8h_source.html#l00013">CmdArgsInterface.h:13</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_adec82884377a5193f68dcc7b6ef69d8b"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#adec82884377a5193f68dcc7b6ef69d8b">Hazelnp::CmdArgsInterface::GetConstraint</a></div><div class="ttdeci">ParamConstraint GetConstraint(const std::string &amp;parameter) const</div><div class="ttdoc">Will return the constraint information for a specific parameter.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00588">CmdArgsInterface.cpp:588</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a019e48f48427e7caa76c964bd0f117d0"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a019e48f48427e7caa76c964bd0f117d0">Hazelnp::CmdArgsInterface::ClearAbbreviations</a></div><div class="ttdeci">void ClearAbbreviations()</div><div class="ttdoc">Will delete all abbreviations.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00638">CmdArgsInterface.cpp:638</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_abf553ed4acabf9e1db357715bc10533c"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#abf553ed4acabf9e1db357715bc10533c">Hazelnp::CmdArgsInterface::SetCatchHelp</a></div><div class="ttdeci">void SetCatchHelp(bool catchHelp)</div><div class="ttdoc">Sets whether the CmdArgsInterface should automatically catch the help parameter, print the parameter...</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00368">CmdArgsInterface.cpp:368</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a58b81709e631cee5f3db3f3f48611fe9"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a58b81709e631cee5f3db3f3f48611fe9">Hazelnp::CmdArgsInterface::HasAbbreviation</a></div><div class="ttdeci">bool HasAbbreviation(const std::string &amp;abbrev) const</div><div class="ttdoc">Will check wether or not an abbreviation is registered.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00627">CmdArgsInterface.cpp:627</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_aa30222df012f357455f90e3620346bb2"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#aa30222df012f357455f90e3620346bb2">Hazelnp::CmdArgsInterface::RegisterConstraint</a></div><div class="ttdeci">void RegisterConstraint(const std::string &amp;key, const ParamConstraint &amp;constraint)</div><div class="ttdoc">Will register a constraint for a parameter.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00644">CmdArgsInterface.cpp:644</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a112d2d5e3fd1cf1507592389c8454984"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a112d2d5e3fd1cf1507592389c8454984">Hazelnp::CmdArgsInterface::ClearConstraint</a></div><div class="ttdeci">void ClearConstraint(const std::string &amp;parameter)</div><div class="ttdoc">Will the constraint of a specific parameter.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00593">CmdArgsInterface.cpp:593</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Value_html"><div class="ttname"><a href="classHazelnp_1_1Value.html">Hazelnp::Value</a></div><div class="ttdoc">Abstract class for values.</div><div class="ttdef"><b>Definition:</b> <a href="Value_8h_source.html#l00010">Value.h:10</a></div></div>
<div class="ttc" id="aParamConstraint_8h_html"><div class="ttname"><a href="ParamConstraint_8h.html">ParamConstraint.h</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_aaccf591a74408aeb4363033fe8cb2224"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#aaccf591a74408aeb4363033fe8cb2224">Hazelnp::CmdArgsInterface::RegisterAbbreviation</a></div><div class="ttdeci">void RegisterAbbreviation(const std::string &amp;abbrev, const std::string &amp;target)</div><div class="ttdoc">Will register an abbreviation (like -f for force)</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00613">CmdArgsInterface.cpp:613</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a3a7fa36fe69ee8bf3b400983a21ecd24"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a3a7fa36fe69ee8bf3b400983a21ecd24">Hazelnp::CmdArgsInterface::HasParam</a></div><div class="ttdeci">bool HasParam(const std::string &amp;key) const</div><div class="ttdoc">Will check wether a parameter exists given a key, or not.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00199">CmdArgsInterface.cpp:199</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_ad472671fb12450b8d929418fbbffbe40"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#ad472671fb12450b8d929418fbbffbe40">Hazelnp::CmdArgsInterface::ClearConstraints</a></div><div class="ttdeci">void ClearConstraints()</div><div class="ttdoc">Will delete all constraints.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00651">CmdArgsInterface.cpp:651</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Parameter_html"><div class="ttname"><a href="classHazelnp_1_1Parameter.html">Hazelnp::Parameter</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8h_source.html#l00008">Parameter.h:8</a></div></div>
<div class="ttc" id="astructHazelnp_1_1ParamConstraint_html"><div class="ttname"><a href="structHazelnp_1_1ParamConstraint.html">Hazelnp::ParamConstraint</a></div><div class="ttdef"><b>Definition:</b> <a href="ParamConstraint_8h_source.html#l00008">ParamConstraint.h:8</a></div></div>
<div class="ttc" id="aVersion_8h_html"><div class="ttname"><a href="Version_8h.html">Version.h</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a3e60c7a90c11bdc634d0f5d0dba5064c"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a3e60c7a90c11bdc634d0f5d0dba5064c">Hazelnp::CmdArgsInterface::GetCrashOnFail</a></div><div class="ttdeci">bool GetCrashOnFail() const</div><div class="ttdoc">Gets whether the application crashes on an exception whilst parsing, and prints to stderr.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00363">CmdArgsInterface.cpp:363</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a5003f826ee31c6365bf4b6e8b2c8d9f1"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a5003f826ee31c6365bf4b6e8b2c8d9f1">Hazelnp::CmdArgsInterface::HasDescription</a></div><div class="ttdeci">bool HasDescription(const std::string &amp;parameter) const</div><div class="ttdoc">Returns whether or not a given parameter has a registered description.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00407">CmdArgsInterface.cpp:407</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a62889ce1faa90d0f20be3ae45803baa0"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a62889ce1faa90d0f20be3ae45803baa0">Hazelnp::CmdArgsInterface::ClearDescription</a></div><div class="ttdeci">void ClearDescription(const std::string &amp;parameter)</div><div class="ttdoc">Will delete the description of a parameter if it exists.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00412">CmdArgsInterface.cpp:412</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_aa1189c249bf0d8a4fbd5fb8f03a30212"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#aa1189c249bf0d8a4fbd5fb8f03a30212">Hazelnp::CmdArgsInterface::CmdArgsInterface</a></div><div class="ttdeci">CmdArgsInterface()</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00015">CmdArgsInterface.cpp:15</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a31f690bd95d5469d38af816183cbe3e7"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a31f690bd95d5469d38af816183cbe3e7">Hazelnp::CmdArgsInterface::ClearAbbreviation</a></div><div class="ttdeci">void ClearAbbreviation(const std::string &amp;abbrevation)</div><div class="ttdoc">Will delete the abbreviation for a given parameter.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00632">CmdArgsInterface.cpp:632</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a1f4845041e08b3335510de44fafaee19"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a1f4845041e08b3335510de44fafaee19">Hazelnp::CmdArgsInterface::Parse</a></div><div class="ttdeci">void Parse(const int argc, const char *const *argv)</div><div class="ttdoc">Will parse command line arguments.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00036">CmdArgsInterface.cpp:36</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a67ba6cb3176884c85dd56fc9084ab66a"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a67ba6cb3176884c85dd56fc9084ab66a">Hazelnp::CmdArgsInterface::SetBriefDescription</a></div><div class="ttdeci">void SetBriefDescription(const std::string &amp;description)</div><div class="ttdoc">Sets a brief description of the application to be automatically added to the documentation.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00379">CmdArgsInterface.cpp:379</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a1945208a97707b2e3c654424f0760441"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a1945208a97707b2e3c654424f0760441">Hazelnp::CmdArgsInterface::GetBriefDescription</a></div><div class="ttdeci">const std::string &amp; GetBriefDescription()</div><div class="ttdoc">Returns the brief description of the application to be automatically added to the documentation.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00385">CmdArgsInterface.cpp:385</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_af5e43c1067fb6c1074d9be3427c7a415"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#af5e43c1067fb6c1074d9be3427c7a415">Hazelnp::CmdArgsInterface::operator[]</a></div><div class="ttdeci">const Value &amp; operator[](const std::string &amp;key) const</div><div class="ttdoc">Will return the value given a key.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00604">CmdArgsInterface.cpp:604</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a328dbc265e7ffa9ab526ed8aa755e107"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a328dbc265e7ffa9ab526ed8aa755e107">Hazelnp::CmdArgsInterface::ClearDescriptions</a></div><div class="ttdeci">void ClearDescriptions()</div><div class="ttdoc">Will delete all parameter descriptions.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00419">CmdArgsInterface.cpp:419</a></div></div>
<div class="ttc" id="aParameter_8h_html"><div class="ttname"><a href="Parameter_8h.html">Parameter.h</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a9b9bc5c4443799ea847077e9cefb1927"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a9b9bc5c4443799ea847077e9cefb1927">Hazelnp::CmdArgsInterface::GenerateDocumentation</a></div><div class="ttdeci">std::string GenerateDocumentation() const</div><div class="ttdoc">Will generate a text-based documentation suited to show the user, for example on help.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00425">CmdArgsInterface.cpp:425</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a6589d2e818ba32f2a3e5b5a6a5e2bf1e"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a6589d2e818ba32f2a3e5b5a6a5e2bf1e">Hazelnp::CmdArgsInterface::RegisterDescription</a></div><div class="ttdeci">void RegisterDescription(const std::string &amp;parameter, const std::string &amp;description)</div><div class="ttdoc">Willl register a short description for a parameter.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00390">CmdArgsInterface.cpp:390</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a89bc3f54d7ff0740549dbdf7b7f727e3"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a89bc3f54d7ff0740549dbdf7b7f727e3">Hazelnp::CmdArgsInterface::GetDescription</a></div><div class="ttdeci">const std::string &amp; GetDescription(const std::string &amp;parameter) const</div><div class="ttdoc">Will return a short description for a parameter, if it exists.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00396">CmdArgsInterface.cpp:396</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a1486bfef870e6502aefc23b11ce6caaf"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a1486bfef870e6502aefc23b11ce6caaf">Hazelnp::CmdArgsInterface::GetAbbreviation</a></div><div class="ttdeci">const std::string &amp; GetAbbreviation(const std::string &amp;abbrev) const</div><div class="ttdoc">Will return the long form of an abbreviation (like force for -f) Returns &quot;&quot; if no match is found.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00619">CmdArgsInterface.cpp:619</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_afe83a815b21d37b3d2a6d0ef67137faf"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#afe83a815b21d37b3d2a6d0ef67137faf">Hazelnp::CmdArgsInterface::GetExecutableName</a></div><div class="ttdeci">const std::string &amp; GetExecutableName() const</div><div class="ttdoc">Will return argv[0], the name of the executable.</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00599">CmdArgsInterface.cpp:599</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_a16a3a02f77d240d8cf51cd4ee1797113"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#a16a3a02f77d240d8cf51cd4ee1797113">Hazelnp::CmdArgsInterface::SetCrashOnFail</a></div><div class="ttdeci">void SetCrashOnFail(bool crashOnFail)</div><div class="ttdoc">Sets whether to crash the application, and print to stderr, when an exception is raised whilst parsin...</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00657">CmdArgsInterface.cpp:657</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1CmdArgsInterface_html_aadc75b3b6c9662cfbd4a936468d50466"><div class="ttname"><a href="classHazelnp_1_1CmdArgsInterface.html#aadc75b3b6c9662cfbd4a936468d50466">Hazelnp::CmdArgsInterface::~CmdArgsInterface</a></div><div class="ttdeci">~CmdArgsInterface()</div><div class="ttdef"><b>Definition:</b> <a href="CmdArgsInterface_8cpp_source.html#l00026">CmdArgsInterface.cpp:26</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 5 2021 12:11:50 for Leonetienne/Hazelnupp by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>