本文整理汇总了C++中LedgerKey::data方法的典型用法代码示例。如果您正苦于以下问题:C++ LedgerKey::data方法的具体用法?C++ LedgerKey::data怎么用?C++ LedgerKey::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LedgerKey
的用法示例。
在下文中一共展示了LedgerKey::data方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
LedgerKey
LedgerEntryKey(LedgerEntry const& e)
{
auto& d = e.data;
LedgerKey k;
switch (d.type())
{
case ACCOUNT:
k.type(ACCOUNT);
k.account().accountID = d.account().accountID;
break;
case TRUSTLINE:
k.type(TRUSTLINE);
k.trustLine().accountID = d.trustLine().accountID;
k.trustLine().asset = d.trustLine().asset;
break;
case OFFER:
k.type(OFFER);
k.offer().sellerID = d.offer().sellerID;
k.offer().offerID = d.offer().offerID;
break;
case DATA:
k.type(DATA);
k.data().accountID = d.data().accountID;
k.data().dataName = d.data().dataName;
break;
}
return k;
}
示例2: runtime_error
std::shared_ptr<LedgerEntry const>
LedgerStateRoot::Impl::loadData(LedgerKey const& key) const
{
std::string actIDStrKey = KeyUtils::toStrKey(key.data().accountID);
std::string const& dataName = key.data().dataName;
std::string dataValue;
soci::indicator dataValueIndicator;
LedgerEntry le;
le.data.type(DATA);
DataEntry& de = le.data.data();
std::string sql = "SELECT datavalue, lastmodified "
"FROM accountdata "
"WHERE accountid= :id AND dataname= :dataname";
auto prep = mDatabase.getPreparedStatement(sql);
auto& st = prep.statement();
st.exchange(soci::into(dataValue, dataValueIndicator));
st.exchange(soci::into(le.lastModifiedLedgerSeq));
st.exchange(soci::use(actIDStrKey));
st.exchange(soci::use(dataName));
st.define_and_bind();
st.execute(true);
if (!st.got_data())
{
return nullptr;
}
de.accountID = key.data().accountID;
de.dataName = dataName;
if (dataValueIndicator != soci::i_ok)
{
throw std::runtime_error("bad database state");
}
decoder::decode_b64(dataValue, de.dataValue);
return std::make_shared<LedgerEntry const>(std::move(le));
}