當前位置: 首頁>>代碼示例>>C++>>正文


C++ AddressTableEntryLessThan函數代碼示例

本文整理匯總了C++中AddressTableEntryLessThan函數的典型用法代碼示例。如果您正苦於以下問題:C++ AddressTableEntryLessThan函數的具體用法?C++ AddressTableEntryLessThan怎麽用?C++ AddressTableEntryLessThan使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了AddressTableEntryLessThan函數的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。

示例1: updateEntry

    void updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status)
    {
        // Find address / label in model
        QList<AddressTableEntry>::iterator lower = qLowerBound(
            cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
        QList<AddressTableEntry>::iterator upper = qUpperBound(
            cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
        int lowerIndex = (lower - cachedAddressTable.begin());
        int upperIndex = (upper - cachedAddressTable.begin());
        bool inModel = (lower != upper);
        AddressTableEntry::Type newEntryType = translateTransactionType(purpose, isMine);

        switch(status)
        {
        case CT_NEW:
            if(inModel)
            {
                qWarning() << "AddressTablePriv::updateEntry: Warning: Got CT_NEW, but entry is already in model";
                break;
            }
            parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);
            cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address));
            parent->endInsertRows();
            break;
        case CT_UPDATED:
            if(!inModel)
            {
                qWarning() << "AddressTablePriv::updateEntry: Warning: Got CT_UPDATED, but entry is not in model";
                break;
            }
            lower->type = newEntryType;
            lower->label = label;
            parent->emitDataChanged(lowerIndex);
            break;
        case CT_DELETED:
            if(!inModel)
            {
                qWarning() << "AddressTablePriv::updateEntry: Warning: Got CT_DELETED, but entry is not in model";
                break;
            }
            parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
            cachedAddressTable.erase(lower, upper);
            parent->endRemoveRows();
            break;
        }
    }
開發者ID:thelonecrouton,項目名稱:uniqredit,代碼行數:46,代碼來源:addresstablemodel.cpp

示例2: refreshAddressTable

 void refreshAddressTable()
 {
     cachedAddressTable.clear();
     {
         LOCK(wallet->cs_wallet);
         BOOST_FOREACH(const PAIRTYPE(CTxDestination, std::string)& item, wallet->mapAddressBook)
         {
             const CBitcoinAddress& address = item.first;
             const std::string& strName = item.second;
             bool fMine = IsMine(*wallet, address.Get());
             cachedAddressTable.append(AddressTableEntry(fMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending,
                               QString::fromStdString(strName),
                               QString::fromStdString(address.ToString())));
         }
     }
     // qLowerBound() and qUpperBound() require our cachedAddressTable list to be sorted in asc order
     qSort(cachedAddressTable.begin(), cachedAddressTable.end(), AddressTableEntryLessThan());
 }
開發者ID:GalleonBank,項目名稱:galleon,代碼行數:18,代碼來源:addresstablemodel.cpp

示例3: refreshAddressTable

 void refreshAddressTable(interfaces::Wallet& wallet)
 {
     cachedAddressTable.clear();
     {
         for (const auto& address : wallet.getAddresses())
         {
             AddressTableEntry::Type addressType = translateTransactionType(
                     QString::fromStdString(address.purpose), address.is_mine);
             cachedAddressTable.append(AddressTableEntry(addressType,
                               QString::fromStdString(address.name),
                               QString::fromStdString(EncodeDestination(address.dest))));
         }
     }
     // qLowerBound() and qUpperBound() require our cachedAddressTable list to be sorted in asc order
     // Even though the map is already sorted this re-sorting step is needed because the originating map
     // is sorted by binary address, not by base58() address.
     qSort(cachedAddressTable.begin(), cachedAddressTable.end(), AddressTableEntryLessThan());
 }
開發者ID:994920256,項目名稱:bitcoin,代碼行數:18,代碼來源:addresstablemodel.cpp

示例4: refreshAddressTable

    void refreshAddressTable()
    {
        cachedAddressTable.clear();
        {
            LOCK(wallet->cs_wallet);
            BOOST_FOREACH(const PAIRTYPE(CTxDestination, std::string)& item, wallet->mapAddressBook)
            {
                const CBitcoinAddress& address = item.first;
                const std::string& strName = item.second;
                bool fMine = IsMine(*wallet, address.Get());

                std::string a;
                std::string PMKey = "";
                a = address.ToString();

                if (fMine)
                {
                    int i = SecureMsgGetLocalPublicKey(a, PMKey);
                    if (i == 4)
                        PMKey = "Wallet is Locked.";
                    else if (i)
                        printf("Error getting PM Key %i\n", i);
                }

                cachedAddressTable.append(AddressTableEntry(fMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending,
                                  QString::fromStdString(strName),
                                  QString::fromStdString(address.ToString()),
                                  QString::fromStdString(PMKey)));
            }

            std::set<CStealthAddress>::iterator it;
            for (it = wallet->stealthAddresses.begin(); it != wallet->stealthAddresses.end(); ++it)
            {
                bool fMine = !(it->scan_secret.size() < 1);
                cachedAddressTable.append(AddressTableEntry(fMine ? AddressTableEntry::Receiving : AddressTableEntry::Sending,
                                  QString::fromStdString(it->label),
                                  QString::fromStdString(it->Encoded()),
                                  QString::fromStdString(""),
                                  true));
            };
        }
        // qLowerBound() and qUpperBound() require our cachedAddressTable list to be sorted in asc order
        qSort(cachedAddressTable.begin(), cachedAddressTable.end(), AddressTableEntryLessThan());
    }
開發者ID:ChemCoin,項目名稱:Chemcoin,代碼行數:44,代碼來源:addresstablemodel.cpp

示例5: refreshAddressTable

 void refreshAddressTable()
 {
     cachedAddressTable.clear();
     {
         LOCK(wallet->cs_wallet);
         BOOST_FOREACH(const PAIRTYPE(CTxDestination, CAddressBookData)& item, wallet->mapAddressBook)
         {
             const CDeuscoinAddress& address = item.first;
             bool fMine = IsMine(*wallet, address.Get());
             AddressTableEntry::Type addressType = translateTransactionType(
                     QString::fromStdString(item.second.purpose), fMine);
             const std::string& strName = item.second.name;
             cachedAddressTable.append(AddressTableEntry(addressType,
                               QString::fromStdString(strName),
                               QString::fromStdString(address.ToString())));
         }
     }
     // qLowerBound() and qUpperBound() require our cachedAddressTable list to be sorted in asc order
     // Even though the map is already sorted this re-sorting step is needed because the originating map
     // is sorted by binary address, not by base58() address.
     qSort(cachedAddressTable.begin(), cachedAddressTable.end(), AddressTableEntryLessThan());
 }
開發者ID:deuscoin,項目名稱:deuscoin,代碼行數:22,代碼來源:addresstablemodel.cpp

示例6: updateEntry

    void updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status)
    {
        // Find address / label in model
        QList<AddressTableEntry>::iterator lower = qLowerBound(
            cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
        QList<AddressTableEntry>::iterator upper = qUpperBound(
            cachedAddressTable.begin(), cachedAddressTable.end(), address, AddressTableEntryLessThan());
        int lowerIndex = (lower - cachedAddressTable.begin());
        int upperIndex = (upper - cachedAddressTable.begin());
        bool inModel = (lower != upper);
        AddressTableEntry::Type newEntryType = translateTransactionType(purpose, isMine);

		CMnemonicAddress bitcoinAddress;
		bitcoinAddress.SetString( address.toStdString() );
		CKeyID keyID;
		bitcoinAddress.GetKeyID(keyID);

        switch(status)
        {
        case CT_NEW:
            if(inModel)
            {
                qDebug() << "AddressTablePriv::updateEntry : Warning: Got CT_NOW, but entry is already in model";
                break;
            }
            parent->beginInsertRows(QModelIndex(), lowerIndex, lowerIndex);

            cachedAddressTable.insert(lowerIndex, AddressTableEntry(newEntryType, label, address,QString::number ( wallet->AvailableCoinsAmount(keyID))));
            parent->endInsertRows();
            break;
        case CT_UPDATED:
            if(!inModel)
            {
                qDebug() << "AddressTablePriv::updateEntry : Warning: Got CT_UPDATED, but entry is not in model";
                break;
            }
            lower->type = newEntryType;
            lower->label = label;
            parent->emitDataChanged(lowerIndex);
            break;
		case CT_BALANCE:
			if(!inModel)
			{
				qDebug() << "AddressTablePriv::updateEntry : Warning: Got CT_UPDATED, but entry is not in model";
				break;
			}
			lower->balance = CDimsUnits::format(0, wallet->AvailableCoinsAmount(keyID));
			parent->emitDataChanged(lowerIndex);
			break;
        case CT_DELETED:
            if(!inModel)
            {
                qDebug() << "AddressTablePriv::updateEntry : Warning: Got CT_DELETED, but entry is not in model";
                break;
            }
            parent->beginRemoveRows(QModelIndex(), lowerIndex, upperIndex-1);
            cachedAddressTable.erase(lower, upper);
            parent->endRemoveRows();
            break;
        }
    }
開發者ID:salivan-ratcoin-dev-team,項目名稱:dims,代碼行數:61,代碼來源:addresstablemodel.cpp


注:本文中的AddressTableEntryLessThan函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。