本文整理汇总了C++中LedgerManager::getMaxTxSetSize方法的典型用法代码示例。如果您正苦于以下问题:C++ LedgerManager::getMaxTxSetSize方法的具体用法?C++ LedgerManager::getMaxTxSetSize怎么用?C++ LedgerManager::getMaxTxSetSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LedgerManager
的用法示例。
在下文中一共展示了LedgerManager::getMaxTxSetSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
void
TxSetFrame::surgePricingFilter(LedgerManager const& lm)
{
size_t max = lm.getMaxTxSetSize();
if (mTransactions.size() > max)
{ // surge pricing in effect!
CLOG(WARNING, "Herder")
<< "surge pricing in effect! " << mTransactions.size();
// determine the fee ratio for each account
map<AccountID, double> accountFeeMap;
for (auto& tx : mTransactions)
{
double r = tx->getFeeRatio(lm);
double now = accountFeeMap[tx->getSourceID()];
if (now == 0)
accountFeeMap[tx->getSourceID()] = r;
else if (r < now)
accountFeeMap[tx->getSourceID()] = r;
}
// sort tx by amount of fee they have paid
// remove the bottom that aren't paying enough
std::vector<TransactionFramePtr> tempList = mTransactions;
std::sort(tempList.begin(), tempList.end(), SurgeSorter(accountFeeMap));
for (auto iter = tempList.begin() + max; iter != tempList.end(); iter++)
{
removeTx(*iter);
}
}
}