This repository has been archived on 2020-05-10. You can view files and clone it, but cannot push or open issues or pull requests.
mastodon-cpp/docs/classMastodon_1_1Easy_1_1En...

780 lines
81 KiB
HTML

<!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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mastodon-cpp: Mastodon::Easy::Entity Class Reference</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="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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mastodon-cpp
&#160;<span id="projectnumber">0.110.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 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="namespaceMastodon.html">Mastodon</a></li><li class="navelem"><a class="el" href="namespaceMastodon_1_1Easy.html">Easy</a></li><li class="navelem"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html">Entity</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classMastodon_1_1Easy_1_1Entity-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Mastodon::Easy::Entity Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Base class for all entities.
<a href="classMastodon_1_1Easy_1_1Entity.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="entity_8hpp_source.html">entity.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Mastodon::Easy::Entity:</div>
<div class="dyncontent">
<div class="center">
<img src="classMastodon_1_1Easy_1_1Entity.png" usemap="#Mastodon::Easy::Entity_map" alt=""/>
<map id="Mastodon::Easy::Entity_map" name="Mastodon::Easy::Entity_map">
<area href="classMastodon_1_1Easy_1_1Account.html" title="Class to hold accounts." alt="Mastodon::Easy::Account" shape="rect" coords="215,56,420,80"/>
<area href="classMastodon_1_1Easy_1_1Account_1_1Source.html" title="Class to hold source attribute." alt="Mastodon::Easy::Account::Source" shape="rect" coords="215,112,420,136"/>
<area href="classMastodon_1_1Easy_1_1Application.html" title="Class to hold applications." alt="Mastodon::Easy::Application" shape="rect" coords="215,168,420,192"/>
<area href="classMastodon_1_1Easy_1_1Attachment.html" title="Class to hold attachments." alt="Mastodon::Easy::Attachment" shape="rect" coords="215,224,420,248"/>
<area href="classMastodon_1_1Easy_1_1Attachment_1_1Meta.html" title="Metadata for attachments." alt="Mastodon::Easy::Attachment::Meta" shape="rect" coords="215,280,420,304"/>
<area href="classMastodon_1_1Easy_1_1Card.html" title="Class to hold cards." alt="Mastodon::Easy::Card" shape="rect" coords="215,336,420,360"/>
<area href="classMastodon_1_1Easy_1_1Context.html" title="Class to hold contexts." alt="Mastodon::Easy::Context" shape="rect" coords="215,392,420,416"/>
<area href="classMastodon_1_1Easy_1_1Conversation.html" title="Class to hold conversations." alt="Mastodon::Easy::Conversation" shape="rect" coords="215,448,420,472"/>
<area href="classMastodon_1_1Easy_1_1Emoji.html" title="Class to hold emojis." alt="Mastodon::Easy::Emoji" shape="rect" coords="215,504,420,528"/>
<area href="classMastodon_1_1Easy_1_1Filter.html" title="Class to hold filters." alt="Mastodon::Easy::Filter" shape="rect" coords="215,560,420,584"/>
<area href="classMastodon_1_1Easy_1_1Instance.html" title="Class to hold instances." alt="Mastodon::Easy::Instance" shape="rect" coords="215,616,420,640"/>
<area href="classMastodon_1_1Easy_1_1List.html" title="Class to hold lists." alt="Mastodon::Easy::List" shape="rect" coords="215,672,420,696"/>
<area href="classMastodon_1_1Easy_1_1Mention.html" title="Class to hold mentions." alt="Mastodon::Easy::Mention" shape="rect" coords="215,728,420,752"/>
<area href="classMastodon_1_1Easy_1_1Notification.html" title="Class to hold notifications." alt="Mastodon::Easy::Notification" shape="rect" coords="215,784,420,808"/>
<area href="classMastodon_1_1Easy_1_1Poll.html" title="Class to hold polls." alt="Mastodon::Easy::Poll" shape="rect" coords="215,840,420,864"/>
<area href="classMastodon_1_1Easy_1_1PushSubscription.html" title="Class to hold push subscriptions." alt="Mastodon::Easy::PushSubscription" shape="rect" coords="215,896,420,920"/>
<area href="classMastodon_1_1Easy_1_1Relationship.html" title="Class to hold relationships." alt="Mastodon::Easy::Relationship" shape="rect" coords="215,952,420,976"/>
<area href="classMastodon_1_1Easy_1_1Results.html" title="Class to hold results." alt="Mastodon::Easy::Results" shape="rect" coords="215,1008,420,1032"/>
<area href="classMastodon_1_1Easy_1_1Status.html" title="Class to hold statuses." alt="Mastodon::Easy::Status" shape="rect" coords="215,1064,420,1088"/>
<area href="classMastodon_1_1Easy_1_1Tag.html" title="Class to hold tags." alt="Mastodon::Easy::Tag" shape="rect" coords="215,1120,420,1144"/>
<area href="classMastodon_1_1Easy_1_1Tag_1_1History.html" title="Class to hold Tag history." alt="Mastodon::Easy::Tag::History" shape="rect" coords="215,1176,420,1200"/>
<area href="classMastodon_1_1Easy_1_1Token.html" title="Class to hold applications." alt="Mastodon::Easy::Token" shape="rect" coords="215,1232,420,1256"/>
</map>
</div></div>
<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:a753b382e29be6cb7b16772d4c609cedc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a753b382e29be6cb7b16772d4c609cedc">Entity</a> (const string &amp;json)</td></tr>
<tr class="memdesc:a753b382e29be6cb7b16772d4c609cedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object from a JSON string. <a href="#a753b382e29be6cb7b16772d4c609cedc">More...</a><br /></td></tr>
<tr class="separator:a753b382e29be6cb7b16772d4c609cedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f75930d233df7d2bc04629ba00a139d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a2f75930d233df7d2bc04629ba00a139d">Entity</a> (const Json::Value &amp;object)</td></tr>
<tr class="memdesc:a2f75930d233df7d2bc04629ba00a139d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object from a JSON object. <a href="#a2f75930d233df7d2bc04629ba00a139d">More...</a><br /></td></tr>
<tr class="separator:a2f75930d233df7d2bc04629ba00a139d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83eb2be5a13eaaa22b2796f05817f7a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a83eb2be5a13eaaa22b2796f05817f7a9">Entity</a> ()</td></tr>
<tr class="memdesc:a83eb2be5a13eaaa22b2796f05817f7a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an empty <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object. <a href="#a83eb2be5a13eaaa22b2796f05817f7a9">More...</a><br /></td></tr>
<tr class="separator:a83eb2be5a13eaaa22b2796f05817f7a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d6464e9bb1fccd4e8b677f30a655f19"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a5d6464e9bb1fccd4e8b677f30a655f19">~Entity</a> ()</td></tr>
<tr class="memdesc:a5d6464e9bb1fccd4e8b677f30a655f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <a href="#a5d6464e9bb1fccd4e8b677f30a655f19">More...</a><br /></td></tr>
<tr class="separator:a5d6464e9bb1fccd4e8b677f30a655f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f81e1e98c1780ac23bea646122f4bba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a8f81e1e98c1780ac23bea646122f4bba">operator const Json::Value</a> () const</td></tr>
<tr class="separator:a8f81e1e98c1780ac23bea646122f4bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d99717df650d00312509b79de70a60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a16d99717df650d00312509b79de70a60">from_string</a> (const string &amp;json)</td></tr>
<tr class="memdesc:a16d99717df650d00312509b79de70a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> with a new one from a JSON string. <a href="#a16d99717df650d00312509b79de70a60">More...</a><br /></td></tr>
<tr class="separator:a16d99717df650d00312509b79de70a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7482a8784b8ce80a0f534e23c8d9cceb"><td class="memItemLeft" align="right" valign="top">const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a7482a8784b8ce80a0f534e23c8d9cceb">to_string</a> () const</td></tr>
<tr class="memdesc:a7482a8784b8ce80a0f534e23c8d9cceb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the JSON of the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> as formatted string. <a href="#a7482a8784b8ce80a0f534e23c8d9cceb">More...</a><br /></td></tr>
<tr class="separator:a7482a8784b8ce80a0f534e23c8d9cceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a036816325ebd642c096eaf862d746db3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a036816325ebd642c096eaf862d746db3">from_object</a> (const Json::Value &amp;object)</td></tr>
<tr class="memdesc:a036816325ebd642c096eaf862d746db3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> with a new one from a JSON object. <a href="#a036816325ebd642c096eaf862d746db3">More...</a><br /></td></tr>
<tr class="separator:a036816325ebd642c096eaf862d746db3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9ed99f52a6337b04a506e8b30b37dd9"><td class="memItemLeft" align="right" valign="top">const Json::Value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#ab9ed99f52a6337b04a506e8b30b37dd9">to_object</a> () const</td></tr>
<tr class="memdesc:ab9ed99f52a6337b04a506e8b30b37dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the JSON object of the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a>. <a href="#ab9ed99f52a6337b04a506e8b30b37dd9">More...</a><br /></td></tr>
<tr class="separator:ab9ed99f52a6337b04a506e8b30b37dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab418a0cde7adc0ecb6016dd5499597a6"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#ab418a0cde7adc0ecb6016dd5499597a6">valid</a> () const =0</td></tr>
<tr class="memdesc:ab418a0cde7adc0ecb6016dd5499597a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> holds valid data. <a href="#ab418a0cde7adc0ecb6016dd5499597a6">More...</a><br /></td></tr>
<tr class="separator:ab418a0cde7adc0ecb6016dd5499597a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15066ab4c090dd52b08b7c410b14e181"><td class="memItemLeft" align="right" valign="top">const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a> () const</td></tr>
<tr class="memdesc:a15066ab4c090dd52b08b7c410b14e181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns error string sent by the server. <a href="#a15066ab4c090dd52b08b7c410b14e181">More...</a><br /></td></tr>
<tr class="separator:a15066ab4c090dd52b08b7c410b14e181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d8e026d50315925f6824e0f6c58df36"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a9d8e026d50315925f6824e0f6c58df36">was_set</a> () const</td></tr>
<tr class="memdesc:a9d8e026d50315925f6824e0f6c58df36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the last requested value was set, false if it was unset. <a href="#a9d8e026d50315925f6824e0f6c58df36">More...</a><br /></td></tr>
<tr class="separator:a9d8e026d50315925f6824e0f6c58df36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a34f71a5cf80f966660ce032566c4521b"><td class="memItemLeft" align="right" valign="top">const Json::Value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:a34f71a5cf80f966660ce032566c4521b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as Json::Value. <a href="#a34f71a5cf80f966660ce032566c4521b">More...</a><br /></td></tr>
<tr class="separator:a34f71a5cf80f966660ce032566c4521b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb8d99a42bce94868a5bd68937cc1e93"><td class="memItemLeft" align="right" valign="top">const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#adb8d99a42bce94868a5bd68937cc1e93">get_string</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:adb8d99a42bce94868a5bd68937cc1e93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as std::string. <a href="#adb8d99a42bce94868a5bd68937cc1e93">More...</a><br /></td></tr>
<tr class="separator:adb8d99a42bce94868a5bd68937cc1e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad27a6fe68b96e187ed29d5260e52e32b"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#ad27a6fe68b96e187ed29d5260e52e32b">get_uint64</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:ad27a6fe68b96e187ed29d5260e52e32b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as std::uint64_t. <a href="#ad27a6fe68b96e187ed29d5260e52e32b">More...</a><br /></td></tr>
<tr class="separator:ad27a6fe68b96e187ed29d5260e52e32b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6082153efde52b69b1b88372d268554f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a6082153efde52b69b1b88372d268554f">get_double</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:a6082153efde52b69b1b88372d268554f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as double. <a href="#a6082153efde52b69b1b88372d268554f">More...</a><br /></td></tr>
<tr class="separator:a6082153efde52b69b1b88372d268554f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10c3fde7a0941c679eec4ae7539aa421"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a10c3fde7a0941c679eec4ae7539aa421">get_bool</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:a10c3fde7a0941c679eec4ae7539aa421"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as bool. <a href="#a10c3fde7a0941c679eec4ae7539aa421">More...</a><br /></td></tr>
<tr class="separator:a10c3fde7a0941c679eec4ae7539aa421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab557dc44a715065d9a10331a984f7c0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structMastodon_1_1Easy_1_1time__type.html">Easy::time_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#aab557dc44a715065d9a10331a984f7c0">get_time</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:aab557dc44a715065d9a10331a984f7c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as Easy::time. <a href="#aab557dc44a715065d9a10331a984f7c0">More...</a><br /></td></tr>
<tr class="separator:aab557dc44a715065d9a10331a984f7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f1106c4143e070207b0a96ba736042"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a00f1106c4143e070207b0a96ba736042">get_vector</a> (const string &amp;key) const</td></tr>
<tr class="memdesc:a00f1106c4143e070207b0a96ba736042"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of key as vector. <a href="#a00f1106c4143e070207b0a96ba736042">More...</a><br /></td></tr>
<tr class="separator:a00f1106c4143e070207b0a96ba736042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a598cb356c85af698e6e5390a12d39e6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a598cb356c85af698e6e5390a12d39e6a">set</a> (const string &amp;key, const Json::Value &amp;value)</td></tr>
<tr class="memdesc:a598cb356c85af698e6e5390a12d39e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the value of key. <a href="#a598cb356c85af698e6e5390a12d39e6a">More...</a><br /></td></tr>
<tr class="separator:a598cb356c85af698e6e5390a12d39e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc71e78fbc381dddfc838e09318d4de8"><td class="memItemLeft" align="right" valign="top"><a id="adc71e78fbc381dddfc838e09318d4de8"></a>
std::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#adc71e78fbc381dddfc838e09318d4de8">stouint64</a> (const string &amp;str) const</td></tr>
<tr class="memdesc:adc71e78fbc381dddfc838e09318d4de8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns value of str as uint64_t. <br /></td></tr>
<tr class="separator:adc71e78fbc381dddfc838e09318d4de8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9af50e48d1241e0c2f32b2032312cfef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMastodon_1_1Easy_1_1Entity.html#a9af50e48d1241e0c2f32b2032312cfef">check_valid</a> (const std::vector&lt; string &gt; &amp;attributes) const</td></tr>
<tr class="memdesc:a9af50e48d1241e0c2f32b2032312cfef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> is valid. <a href="#a9af50e48d1241e0c2f32b2032312cfef">More...</a><br /></td></tr>
<tr class="separator:a9af50e48d1241e0c2f32b2032312cfef"><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>Base class for all entities. </p>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a753b382e29be6cb7b16772d4c609cedc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a753b382e29be6cb7b16772d4c609cedc">&#9670;&nbsp;</a></span>Entity() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Easy::Entity::Entity </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>json</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object from a JSON string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">json</td><td>JSON string</td></tr>
</table>
</dd>
</dl>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;: _tree(Json::nullValue)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;,_was_set(<span class="keyword">false</span>)</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; <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a16d99717df650d00312509b79de70a60">from_string</a>(json);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a16d99717df650d00312509b79de70a60"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a16d99717df650d00312509b79de70a60">Mastodon::Easy::Entity::from_string</a></div><div class="ttdeci">void from_string(const string &amp;json)</div><div class="ttdoc">Replaces the Entity with a new one from a JSON string.</div><div class="ttdef"><b>Definition:</b> entity.cpp:56</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2f75930d233df7d2bc04629ba00a139d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f75930d233df7d2bc04629ba00a139d">&#9670;&nbsp;</a></span>Entity() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Easy::Entity::Entity </td>
<td>(</td>
<td class="paramtype">const Json::Value &amp;&#160;</td>
<td class="paramname"><em>object</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object from a JSON object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">object</td><td>JSON object</td></tr>
</table>
</dd>
</dl>
<dl class="section since"><dt>Since</dt><dd>0.100.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;: _tree(<span class="keywordtype">object</span>)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;,_was_set(<span class="keyword">false</span>)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{}</div></div><!-- fragment -->
</div>
</div>
<a id="a83eb2be5a13eaaa22b2796f05817f7a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83eb2be5a13eaaa22b2796f05817f7a9">&#9670;&nbsp;</a></span>Entity() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Easy::Entity::Entity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an empty <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> object. </p>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;: _tree(Json::nullValue)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;, _was_set(<span class="keyword">false</span>)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{}</div></div><!-- fragment -->
</div>
</div>
<a id="a5d6464e9bb1fccd4e8b677f30a655f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d6464e9bb1fccd4e8b677f30a655f19">&#9670;&nbsp;</a></span>~Entity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Easy::Entity::~Entity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the object. </p>
<dl class="section since"><dt>Since</dt><dd>0.100.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9af50e48d1241e0c2f32b2032312cfef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9af50e48d1241e0c2f32b2032312cfef">&#9670;&nbsp;</a></span>check_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool Easy::Entity::check_valid </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; string &gt; &amp;&#160;</td>
<td class="paramname"><em>attributes</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if an <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> is valid. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attributes</td><td>The attributes to check</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if all attributes are set</dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.18.2 </dd></dl>
<div class="fragment"><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="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;attribute : attributes)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(attribute);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a9d8e026d50315925f6824e0f6c58df36">was_set</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</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;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
<div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a9d8e026d50315925f6824e0f6c58df36"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a9d8e026d50315925f6824e0f6c58df36">Mastodon::Easy::Entity::was_set</a></div><div class="ttdeci">bool was_set() const</div><div class="ttdoc">Returns true if the last requested value was set, false if it was unset.</div><div class="ttdef"><b>Definition:</b> entity.cpp:128</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a15066ab4c090dd52b08b7c410b14e181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15066ab4c090dd52b08b7c410b14e181">&#9670;&nbsp;</a></span>error()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const string Easy::Entity::error </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns error string sent by the server. </p>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">string</span> error = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#adb8d99a42bce94868a5bd68937cc1e93">get_string</a>(<span class="stringliteral">&quot;error&quot;</span>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (error.empty())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Pleroma uses {&quot;errors&quot;:{&quot;detail&quot;:&quot;[…]&quot;}} sometimes.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(<span class="stringliteral">&quot;errors.detail&quot;</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; error = node.asString();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
<div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a15066ab4c090dd52b08b7c410b14e181"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">Mastodon::Easy::Entity::error</a></div><div class="ttdeci">const string error() const</div><div class="ttdoc">Returns error string sent by the server.</div><div class="ttdef"><b>Definition:</b> entity.cpp:116</div></div>
<div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_adb8d99a42bce94868a5bd68937cc1e93"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#adb8d99a42bce94868a5bd68937cc1e93">Mastodon::Easy::Entity::get_string</a></div><div class="ttdeci">const string get_string(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as std::string.</div><div class="ttdef"><b>Definition:</b> entity.cpp:174</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a036816325ebd642c096eaf862d746db3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a036816325ebd642c096eaf862d746db3">&#9670;&nbsp;</a></span>from_object()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Easy::Entity::from_object </td>
<td>(</td>
<td class="paramtype">const Json::Value &amp;&#160;</td>
<td class="paramname"><em>object</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Replaces the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> with a new one from a JSON object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">object</td><td>JSON object</td></tr>
</table>
</dd>
</dl>
<dl class="section since"><dt>Since</dt><dd>0.100.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; _tree = object;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a16d99717df650d00312509b79de70a60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16d99717df650d00312509b79de70a60">&#9670;&nbsp;</a></span>from_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Easy::Entity::from_string </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>json</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Replaces the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> with a new one from a JSON string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">json</td><td>JSON string</td></tr>
</table>
</dd>
</dl>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span> (json.find(<span class="charliteral">&#39;{&#39;</span>) != std::string::npos)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::stringstream ss(json);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; ss &gt;&gt; _tree;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">else</span></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; _tree.clear();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// If the JSON is a single object encapsulated in an array,</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// transform it into an object. If the JSON string is [], transform to null</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span> (_tree.type() == Json::ValueType::arrayValue &amp;&amp; _tree.size() &lt;= 1)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; _tree = _tree[0];</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;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (_tree.isNull())</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; ttdebug &lt;&lt; <span class="stringliteral">&quot;ERROR: JSON string holds no object\n&quot;</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;String was: &quot;</span> &lt;&lt; json &lt;&lt; <span class="charliteral">&#39;\n&#39;</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="keywordflow">else</span> <span class="keywordflow">if</span> (!_tree[<span class="stringliteral">&quot;error&quot;</span>].isNull() || !_tree[<span class="stringliteral">&quot;errors&quot;</span>].isNull())</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;ERROR: Server returned an error\n&quot;</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;String was: &quot;</span> &lt;&lt; json &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a34f71a5cf80f966660ce032566c4521b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34f71a5cf80f966660ce032566c4521b">&#9670;&nbsp;</a></span>get()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Json::Value Easy::Entity::get </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as Json::Value. </p>
<pre class="fragment"> Returns an empty object if the value does not exist or is
null.
</pre> <div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> Json::Value *node;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (key.find(<span class="charliteral">&#39;.&#39;</span>) == std::string::npos)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; node = &amp;_tree[key];</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// If dots in key, we have to walk through the tree</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; std::size_t pos = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">string</span> current_key = key;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; node = &amp;_tree;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">while</span> ((pos = current_key.find(<span class="charliteral">&#39;.&#39;</span>)) != std::string::npos)</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; <span class="keywordflow">try</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; node = &amp;(*node)[current_key.substr(0, pos)];</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; current_key = current_key.substr(pos + 1);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">catch</span> (<span class="keyword">const</span> Json::LogicError &amp;e)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; ttdebug &lt;&lt; e.what() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">goto</span> <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; node = &amp;(*node)[current_key];</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (!node-&gt;isNull())</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> *node;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a>:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;Could not get data: &quot;</span> &lt;&lt; key &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> Json::Value();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a15066ab4c090dd52b08b7c410b14e181"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">Mastodon::Easy::Entity::error</a></div><div class="ttdeci">const string error() const</div><div class="ttdoc">Returns error string sent by the server.</div><div class="ttdef"><b>Definition:</b> entity.cpp:116</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a10c3fde7a0941c679eec4ae7539aa421"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10c3fde7a0941c679eec4ae7539aa421">&#9670;&nbsp;</a></span>get_bool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool Easy::Entity::get_bool </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as bool. </p>
<pre class="fragment"> Returns false if the value does not exist or is null.
</pre> <div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (node.isBool())</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> node.asBool();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6082153efde52b69b1b88372d268554f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6082153efde52b69b1b88372d268554f">&#9670;&nbsp;</a></span>get_double()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double Easy::Entity::get_double </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as double. </p>
<pre class="fragment"> Returns 0.0 if the value does not exist or is null.
</pre> <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (node.isDouble())</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> node.asDouble();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="adb8d99a42bce94868a5bd68937cc1e93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb8d99a42bce94868a5bd68937cc1e93">&#9670;&nbsp;</a></span>get_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const string Easy::Entity::get_string </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as std::string. </p>
<pre class="fragment"> returns "" if the value does not exist or is null.
</pre> <div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> (node.isString())</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> node.asString();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aab557dc44a715065d9a10331a984f7c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab557dc44a715065d9a10331a984f7c0">&#9670;&nbsp;</a></span>get_time()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structMastodon_1_1Easy_1_1time__type.html">Easy::time_type</a> Easy::Entity::get_time </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as Easy::time. </p>
<pre class="fragment"> Returns clocks epoch if the value does not exist or is null.
</pre> <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (node.isString())</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceMastodon_1_1Easy.html#abe0ede22d60e964cc39e9a70f9cc6a5b">Easy::string_to_time</a>(node.asString());</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// Return clocks epoch</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> { system_clock::time_point() };</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
<div class="ttc" id="namespaceMastodon_1_1Easy_html_abe0ede22d60e964cc39e9a70f9cc6a5b"><div class="ttname"><a href="namespaceMastodon_1_1Easy.html#abe0ede22d60e964cc39e9a70f9cc6a5b">Mastodon::Easy::string_to_time</a></div><div class="ttdeci">const Easy::time_type string_to_time(const string &amp;strtime)</div><div class="ttdoc">Convert ISO 8601 time string to Easy::time.</div><div class="ttdef"><b>Definition:</b> easy.cpp:85</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ad27a6fe68b96e187ed29d5260e52e32b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad27a6fe68b96e187ed29d5260e52e32b">&#9670;&nbsp;</a></span>get_uint64()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t Easy::Entity::get_uint64 </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as std::uint64_t. </p>
<pre class="fragment"> Returns 0 if the value does not exist or is null.
</pre> <div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (node.isUInt64())</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> node.asUInt64();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a00f1106c4143e070207b0a96ba736042"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f1106c4143e070207b0a96ba736042">&#9670;&nbsp;</a></span>get_vector()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt; string &gt; Easy::Entity::get_vector </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the value of key as vector. </p>
<pre class="fragment"> Returns an empty vector if the value does not exist or is
null.
</pre> <div class="fragment"><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> Json::Value node = <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">get</a>(key);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (node.isArray())</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; std::vector&lt;string&gt; vec;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; std::transform(node.begin(), node.end(), std::back_inserter(vec),</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; [](<span class="keyword">const</span> Json::Value &amp;value)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; { <span class="keywordflow">return</span> value.asString(); });</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; _was_set = <span class="keyword">true</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> vec;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; _was_set = <span class="keyword">false</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> {};</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a34f71a5cf80f966660ce032566c4521b"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a34f71a5cf80f966660ce032566c4521b">Mastodon::Easy::Entity::get</a></div><div class="ttdeci">const Json::Value get(const string &amp;key) const</div><div class="ttdoc">Returns the value of key as Json::Value.</div><div class="ttdef"><b>Definition:</b> entity.cpp:133</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8f81e1e98c1780ac23bea646122f4bba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f81e1e98c1780ac23bea646122f4bba">&#9670;&nbsp;</a></span>operator const Json::Value()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Easy::Entity::operator const Json::Value </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the JSON object of the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a></p>
<dl class="section since"><dt>Since</dt><dd>0.100.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#ab9ed99f52a6337b04a506e8b30b37dd9">to_object</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_ab9ed99f52a6337b04a506e8b30b37dd9"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#ab9ed99f52a6337b04a506e8b30b37dd9">Mastodon::Easy::Entity::to_object</a></div><div class="ttdeci">const Json::Value to_object() const</div><div class="ttdoc">Returns the JSON object of the Entity.</div><div class="ttdef"><b>Definition:</b> entity.cpp:97</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a598cb356c85af698e6e5390a12d39e6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a598cb356c85af698e6e5390a12d39e6a">&#9670;&nbsp;</a></span>set()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Easy::Entity::set </td>
<td>(</td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Json::Value &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the value of key. </p>
<dl class="section since"><dt>Since</dt><dd>0.17.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (key.find(<span class="charliteral">&#39;.&#39;</span>) == std::string::npos)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; _tree[key] = value;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; std::size_t pos = 0;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">string</span> current_key = key;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; Json::Value *node = &amp;_tree;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">while</span> ((pos = current_key.find(<span class="charliteral">&#39;.&#39;</span>)) != std::string::npos)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">try</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; node = &amp;(*node)[current_key.substr(0, pos)];</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (node-&gt;isNull())</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; *node = Json::Value(Json::objectValue);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; current_key = current_key.substr(pos + 1);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">catch</span> (<span class="keyword">const</span> Json::LogicError &amp;e)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; ttdebug &lt;&lt; e.what() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">goto</span> <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; (*node)[current_key] = value;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">error</a>:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;Could not set data: &quot;</span> &lt;&lt; key &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="ttc" id="classMastodon_1_1Easy_1_1Entity_html_a15066ab4c090dd52b08b7c410b14e181"><div class="ttname"><a href="classMastodon_1_1Easy_1_1Entity.html#a15066ab4c090dd52b08b7c410b14e181">Mastodon::Easy::Entity::error</a></div><div class="ttdeci">const string error() const</div><div class="ttdoc">Returns error string sent by the server.</div><div class="ttdef"><b>Definition:</b> entity.cpp:116</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ab9ed99f52a6337b04a506e8b30b37dd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9ed99f52a6337b04a506e8b30b37dd9">&#9670;&nbsp;</a></span>to_object()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const Json::Value Easy::Entity::to_object </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the JSON object of the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>JSON object</dd></dl>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<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; <span class="keywordflow">return</span> _tree;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="a7482a8784b8ce80a0f534e23c8d9cceb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7482a8784b8ce80a0f534e23c8d9cceb">&#9670;&nbsp;</a></span>to_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const string Easy::Entity::to_string </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the JSON of the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> as formatted string. </p>
<dl class="section return"><dt>Returns</dt><dd>JSON string</dd></dl>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><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="keywordflow">return</span> _tree.toStyledString();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="ab418a0cde7adc0ecb6016dd5499597a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab418a0cde7adc0ecb6016dd5499597a6">&#9670;&nbsp;</a></span>valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool Mastodon::Easy::Entity::valid </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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Entity</a> holds valid data. </p>
<dl class="section since"><dt>Since</dt><dd>before 0.11.0 (virtual since 0.18.2) </dd></dl>
<p>Implemented in <a class="el" href="classMastodon_1_1Easy_1_1Account_1_1Source.html#a6ab220f9f526f44a2d3c8ecd343016d5">Mastodon::Easy::Account::Source</a>, <a class="el" href="classMastodon_1_1Easy_1_1Attachment.html#a14f7491aec4e9a0454ae425f93e02244">Mastodon::Easy::Attachment</a>, <a class="el" href="classMastodon_1_1Easy_1_1Tag.html#ac2803320da5bda58a2df64073e6a8502">Mastodon::Easy::Tag</a>, <a class="el" href="classMastodon_1_1Easy_1_1Attachment_1_1Meta.html#ae516bbad2e5ea50c3f6c9802e2bf9df8">Mastodon::Easy::Attachment::Meta</a>, <a class="el" href="classMastodon_1_1Easy_1_1Status.html#a438e08530236c955a5bf48fd03c1f725">Mastodon::Easy::Status</a>, <a class="el" href="classMastodon_1_1Easy_1_1Tag_1_1History.html#a425baf253c7be213de2c7100e3ed0cc0">Mastodon::Easy::Tag::History</a>, <a class="el" href="classMastodon_1_1Easy_1_1Account.html#a911caac2b03a66e9e5d3a33f0abab15b">Mastodon::Easy::Account</a>, <a class="el" href="classMastodon_1_1Easy_1_1Instance.html#a22141e6d58a5dfdf15a36dfe5430cb0b">Mastodon::Easy::Instance</a>, <a class="el" href="classMastodon_1_1Easy_1_1Notification.html#a39ccbca0be78322dbc59ed089d7f7cfa">Mastodon::Easy::Notification</a>, <a class="el" href="classMastodon_1_1Easy_1_1PushSubscription.html#a8c41cbb717c566075c0ddfb3c9aa4415">Mastodon::Easy::PushSubscription</a>, <a class="el" href="classMastodon_1_1Easy_1_1Results.html#abf9ff8ec79589823e7702cb5f15a2566">Mastodon::Easy::Results</a>, <a class="el" href="classMastodon_1_1Easy_1_1Conversation.html#a374202b87ec0e5cf71f2d1d2d883d963">Mastodon::Easy::Conversation</a>, <a class="el" href="classMastodon_1_1Easy_1_1List.html#ab83a1117048576b01668a547dceaf3e3">Mastodon::Easy::List</a>, <a class="el" href="classMastodon_1_1Easy_1_1Mention.html#a6743236820add7233996046ae7e3a6dd">Mastodon::Easy::Mention</a>, <a class="el" href="classMastodon_1_1Easy_1_1Poll.html#a5ba6d82e4c6ec61f7f8d0cdfc184ee58">Mastodon::Easy::Poll</a>, <a class="el" href="classMastodon_1_1Easy_1_1Card.html#a61f4a9a15eccf3d865fae52815871617">Mastodon::Easy::Card</a>, <a class="el" href="classMastodon_1_1Easy_1_1Context.html#a2a6b415040bffa785d9c9dd37682a6f3">Mastodon::Easy::Context</a>, <a class="el" href="classMastodon_1_1Easy_1_1Relationship.html#aca12192abfa476fc2dcf2bc1e4d80c11">Mastodon::Easy::Relationship</a>, <a class="el" href="classMastodon_1_1Easy_1_1Application.html#a75eda9844052a10b096780f6a71efc7f">Mastodon::Easy::Application</a>, <a class="el" href="classMastodon_1_1Easy_1_1Emoji.html#aa6f155b213aa5d9c9f023cef4f132c6a">Mastodon::Easy::Emoji</a>, <a class="el" href="classMastodon_1_1Easy_1_1Filter.html#a3a6cc1383dac66e76739f9e57fccef66">Mastodon::Easy::Filter</a>, and <a class="el" href="classMastodon_1_1Easy_1_1Token.html#ae855b478e692b0644c668157e3725d50">Mastodon::Easy::Token</a>.</p>
</div>
</div>
<a id="a9d8e026d50315925f6824e0f6c58df36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d8e026d50315925f6824e0f6c58df36">&#9670;&nbsp;</a></span>was_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Easy::Entity::was_set </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the last requested value was set, false if it was unset. </p>
<p>Members of <a class="el" href="classMastodon_1_1Easy_1_1Entity.html" title="Base class for all entities.">Easy::Entity</a>-derived classes return a default value depending on its type when the requested value is not found in the JSON. "" for strings, false for bools and so on. Most of the time this is no problem, but sometimes you need to know for sure.</p>
<p>Example: </p><div class="fragment"><div class="line">Easy::Account a(jsonstring);</div><div class="line"><span class="keywordflow">if</span> (a.note().empty())</div><div class="line">{</div><div class="line"> <span class="keywordflow">if</span> (a.was_set())</div><div class="line"> {</div><div class="line"> cout &lt;&lt; <span class="stringliteral">&quot;Account has an empty description.\n&quot;</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> cout &lt;&lt; <span class="stringliteral">&quot;Account has no description.\n&quot;</span>;</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --><dl class="section since"><dt>Since</dt><dd>before 0.11.0 </dd></dl>
<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> _was_set;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/easy/<a class="el" href="entity_8hpp_source.html">entity.hpp</a></li>
<li>src/easy/entity.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>