svf-tools 1.0.500 → 1.0.501

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +77 -17
  2. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +22 -22
  3. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +19 -18
  4. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
  6. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +24 -23
  7. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +98 -66
  8. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +6 -6
  9. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  10. package/SVF-doxygen/html/html/functions_e.html +4 -1
  11. package/SVF-doxygen/html/html/functions_func_e.html +5 -2
  12. package/SVF-doxygen/html/html/functions_func_g.html +2 -2
  13. package/SVF-doxygen/html/html/functions_g.html +2 -2
  14. package/SVF-doxygen/html/html/functions_i.html +3 -3
  15. package/SVF-doxygen/html/html/functions_l.html +3 -3
  16. package/SVF-doxygen/html/html/functions_o.html +12 -12
  17. package/SVF-doxygen/html/html/functions_p.html +10 -8
  18. package/SVF-doxygen/html/html/functions_r.html +4 -2
  19. package/SVF-doxygen/html/html/functions_s.html +7 -7
  20. package/SVF-doxygen/html/html/functions_t.html +4 -4
  21. package/SVF-doxygen/html/html/functions_v.html +3 -3
  22. package/SVF-doxygen/html/html/functions_w.html +10 -6
  23. package/SVF-doxygen/html/html/globals_func_g.html +2 -2
  24. package/SVF-doxygen/html/html/globals_func_p.html +3 -0
  25. package/SVF-doxygen/html/html/globals_g.html +2 -2
  26. package/SVF-doxygen/html/html/globals_p.html +6 -3
  27. package/SVF-doxygen/html/html/globals_r.html +3 -3
  28. package/SVF-doxygen/html/html/globals_s.html +12 -12
  29. package/SVF-doxygen/html/html/search/all_10.js +7 -6
  30. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  31. package/SVF-doxygen/html/html/search/all_13.js +9 -9
  32. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  33. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  34. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  35. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  36. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  37. package/SVF-doxygen/html/html/search/all_7.js +4 -4
  38. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  39. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  40. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  41. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  42. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  43. package/SVF-doxygen/html/html/search/functions_4.js +1 -0
  44. package/SVF-doxygen/html/html/search/functions_6.js +4 -4
  45. package/SVF-doxygen/html/html/search/functions_f.js +2 -1
  46. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  47. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  48. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  49. package/include/Util/ExtAPI.h +4 -2
  50. package/lib/Util/ExtAPI.cpp +118 -98
  51. package/package.json +1 -1
@@ -78,53 +78,71 @@ $(function() {
78
78
  <table class="memberdecls">
79
79
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
80
80
  Functions</h2></td></tr>
81
- <tr class="memitem:acf93365b9c9e5e35c979a671ee600409"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409">GetStdoutFromCommand</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> command)</td></tr>
82
- <tr class="separator:acf93365b9c9e5e35c979a671ee600409"><td class="memSeparator" colspan="2">&#160;</td></tr>
83
- <tr class="memitem:a5e6188ceb5d9d599bd8f4ada2bd4e645"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html#a5e6188ceb5d9d599bd8f4ada2bd4e645">getJsonFile</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> path)</td></tr>
84
- <tr class="separator:a5e6188ceb5d9d599bd8f4ada2bd4e645"><td class="memSeparator" colspan="2">&#160;</td></tr>
81
+ <tr class="memitem:a424940f91f234b23bcc633f12269f935"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;command)</td></tr>
82
+ <tr class="separator:a424940f91f234b23bcc633f12269f935"><td class="memSeparator" colspan="2">&#160;</td></tr>
83
+ <tr class="memitem:a82e0f4095086de7f384a1f55838b5d28"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html#a82e0f4095086de7f384a1f55838b5d28">getJsonFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;path)</td></tr>
84
+ <tr class="separator:a82e0f4095086de7f384a1f55838b5d28"><td class="memSeparator" colspan="2">&#160;</td></tr>
85
+ <tr class="memitem:a3957468a4d85cef02d8be1f82bcdfc69"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structcJSON.html">cJSON</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69">parseJson</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;path, off_t fileSize)</td></tr>
86
+ <tr class="separator:a3957468a4d85cef02d8be1f82bcdfc69"><td class="memSeparator" colspan="2">&#160;</td></tr>
85
87
  </table>
86
88
  <h2 class="groupheader">Function Documentation</h2>
87
- <a id="a5e6188ceb5d9d599bd8f4ada2bd4e645"></a>
88
- <h2 class="memtitle"><span class="permalink"><a href="#a5e6188ceb5d9d599bd8f4ada2bd4e645">&#9670;&nbsp;</a></span>getJsonFile()</h2>
89
+ <a id="a82e0f4095086de7f384a1f55838b5d28"></a>
90
+ <h2 class="memtitle"><span class="permalink"><a href="#a82e0f4095086de7f384a1f55838b5d28">&#9670;&nbsp;</a></span>getJsonFile()</h2>
89
91
 
90
92
  <div class="memitem">
91
93
  <div class="memproto">
94
+ <table class="mlabels">
95
+ <tr>
96
+ <td class="mlabels-left">
92
97
  <table class="memname">
93
98
  <tr>
94
- <td class="memname">FILE* getJsonFile </td>
99
+ <td class="memname">static <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> getJsonFile </td>
95
100
  <td>(</td>
96
- <td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td>
101
+ <td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;&#160;</td>
97
102
  <td class="paramname"><em>path</em></td><td>)</td>
98
103
  <td></td>
99
104
  </tr>
100
105
  </table>
106
+ </td>
107
+ <td class="mlabels-right">
108
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
109
+ </tr>
110
+ </table>
101
111
  </div><div class="memdoc">
102
112
 
103
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00097">97</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
104
- <div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> jsonFilePath = <a class="code" href="ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409">GetStdoutFromCommand</a>(path);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">int</span> os_flag = 1;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating system, otherwise the ExtAPI.json path may not be found</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Linux os</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#ifdef linux</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; os_flag = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; jsonFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Mac os</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (os_flag == 1)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; jsonFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; jsonFilePath.append(<a class="code" href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; FILE *file = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; file = fopen(jsonFilePath.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> file;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="ExtAPI_8h_html_ad9bef4304f41728bb3edf259c6b67668"><div class="ttname"><a href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a></div><div class="ttdeci">#define EXTAPI_JSON_PATH</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00042">ExtAPI.h:42</a></div></div>
105
- <div class="ttc" id="ExtAPI_8cpp_html_acf93365b9c9e5e35c979a671ee600409"><div class="ttname"><a href="ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409">GetStdoutFromCommand</a></div><div class="ttdeci">std::string GetStdoutFromCommand(std::string command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00073">ExtAPI.cpp:73</a></div></div>
113
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00046">46</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
114
+ <div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> jsonFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">int</span> os_flag = 1;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating system,</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// otherwise the ExtAPI.json path may not be found</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Linux os</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#ifdef linux</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; os_flag = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; jsonFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Mac os</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (os_flag == 1)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; jsonFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; jsonFilePath.append(<a class="code" href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> jsonFilePath;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="ttc" id="ExtAPI_8h_html_ad9bef4304f41728bb3edf259c6b67668"><div class="ttname"><a href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a></div><div class="ttdeci">#define EXTAPI_JSON_PATH</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00042">ExtAPI.h:42</a></div></div>
115
+ <div class="ttc" id="ExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &amp;command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00022">ExtAPI.cpp:22</a></div></div>
106
116
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
107
117
  </div><!-- fragment -->
108
118
  </div>
109
119
  </div>
110
- <a id="acf93365b9c9e5e35c979a671ee600409"></a>
111
- <h2 class="memtitle"><span class="permalink"><a href="#acf93365b9c9e5e35c979a671ee600409">&#9670;&nbsp;</a></span>GetStdoutFromCommand()</h2>
120
+ <a id="a424940f91f234b23bcc633f12269f935"></a>
121
+ <h2 class="memtitle"><span class="permalink"><a href="#a424940f91f234b23bcc633f12269f935">&#9670;&nbsp;</a></span>GetStdoutFromCommand()</h2>
112
122
 
113
123
  <div class="memitem">
114
124
  <div class="memproto">
125
+ <table class="mlabels">
126
+ <tr>
127
+ <td class="mlabels-left">
115
128
  <table class="memname">
116
129
  <tr>
117
- <td class="memname"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> GetStdoutFromCommand </td>
130
+ <td class="memname">static <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> GetStdoutFromCommand </td>
118
131
  <td>(</td>
119
- <td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td>
132
+ <td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;&#160;</td>
120
133
  <td class="paramname"><em>command</em></td><td>)</td>
121
134
  <td></td>
122
135
  </tr>
123
136
  </table>
137
+ </td>
138
+ <td class="mlabels-right">
139
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
140
+ </tr>
141
+ </table>
124
142
  </div><div class="memdoc">
125
143
 
126
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00073">73</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
127
- <div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Open pipe to file</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; FILE *pipe = <a class="code" href="util_8h.html#a7a377e01cff8d8243569ddc8bfef959b">popen</a>(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (!pipe)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// read till end of process:</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// use buffer to read and add to result</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span> (fgets(buffer, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; result += buffer;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="util_8h.html#a01a6dd34fa639fc5ad5a05b22407a658">pclose</a>(pipe);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; result.erase(<span class="keyword">remove</span>(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="ttc" id="util_8h_html_a7a377e01cff8d8243569ddc8bfef959b"><div class="ttname"><a href="util_8h.html#a7a377e01cff8d8243569ddc8bfef959b">popen</a></div><div class="ttdeci">FILE * popen()</div></div>
144
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00022">22</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
145
+ <div class="fragment"><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// Open pipe to file</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; FILE *pipe = <a class="code" href="util_8h.html#a7a377e01cff8d8243569ddc8bfef959b">popen</a>(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span> (!pipe)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// read till end of process:</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// use buffer to read and add to result</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span> (fgets(buffer, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; result += buffer;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="util_8h.html#a01a6dd34fa639fc5ad5a05b22407a658">pclose</a>(pipe);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; result.erase(<span class="keyword">remove</span>(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="util_8h_html_a7a377e01cff8d8243569ddc8bfef959b"><div class="ttname"><a href="util_8h.html#a7a377e01cff8d8243569ddc8bfef959b">popen</a></div><div class="ttdeci">FILE * popen()</div></div>
128
146
  <div class="ttc" id="cJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
129
147
  <div class="ttc" id="cuddInt_8c_html_a8b2e13c78efca330f06b6ddcd7464b41"><div class="ttname"><a href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a></div><div class="ttdeci">static int result</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l07466">cuddInt.c:7466</a></div></div>
130
148
  <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
@@ -133,6 +151,48 @@ Functions</h2></td></tr>
133
151
  </div><!-- fragment -->
134
152
  </div>
135
153
  </div>
154
+ <a id="a3957468a4d85cef02d8be1f82bcdfc69"></a>
155
+ <h2 class="memtitle"><span class="permalink"><a href="#a3957468a4d85cef02d8be1f82bcdfc69">&#9670;&nbsp;</a></span>parseJson()</h2>
156
+
157
+ <div class="memitem">
158
+ <div class="memproto">
159
+ <table class="mlabels">
160
+ <tr>
161
+ <td class="mlabels-left">
162
+ <table class="memname">
163
+ <tr>
164
+ <td class="memname">static <a class="el" href="structcJSON.html">cJSON</a>* parseJson </td>
165
+ <td>(</td>
166
+ <td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;&#160;</td>
167
+ <td class="paramname"><em>path</em>, </td>
168
+ </tr>
169
+ <tr>
170
+ <td class="paramkey"></td>
171
+ <td></td>
172
+ <td class="paramtype">off_t&#160;</td>
173
+ <td class="paramname"><em>fileSize</em>&#160;</td>
174
+ </tr>
175
+ <tr>
176
+ <td></td>
177
+ <td>)</td>
178
+ <td></td><td></td>
179
+ </tr>
180
+ </table>
181
+ </td>
182
+ <td class="mlabels-right">
183
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
184
+ </tr>
185
+ </table>
186
+ </div><div class="memdoc">
187
+
188
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00069">69</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
189
+ <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; FILE *file = fopen(path.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (!file)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// allocate memory size matched with file size</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">char</span> *jsonStr = (<span class="keywordtype">char</span> *)calloc(fileSize + 1, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// read json string from file</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = fread(jsonStr, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), fileSize, file);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (size == 0)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Read ExtAPI.json file fails!&quot;</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; fclose(file);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// convert json string to json pointer variable</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *root = cJSON_Parse(jsonStr);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (!root)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="util_8h.html#a3110dcad20c2a6616d360901b94e06a1">free</a>(jsonStr);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="util_8h.html#a3110dcad20c2a6616d360901b94e06a1">free</a>(jsonStr);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> root;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
190
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00084">SVFBasicTypes.h:84</a></div></div>
191
+ <div class="ttc" id="structcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
192
+ <div class="ttc" id="util_8h_html_a3110dcad20c2a6616d360901b94e06a1"><div class="ttname"><a href="util_8h.html#a3110dcad20c2a6616d360901b94e06a1">free</a></div><div class="ttdeci">VOID_OR_INT free(void *)</div></div>
193
+ </div><!-- fragment -->
194
+ </div>
195
+ </div>
136
196
  </div><!-- contents -->
137
197
  <!-- start footer part -->
138
198
  <hr class="footer"/><address class="footer"><small>