mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 11:45:36 +02:00
add a timer to initiate payment to assigned nodes
This commit is contained in:
parent
072343ce79
commit
8fb85110ac
2 changed files with 23 additions and 2 deletions
|
@ -57,6 +57,13 @@ DomainServer::DomainServer(int argc, char* argv[]) :
|
|||
setupNodeListAndAssignments();
|
||||
|
||||
_networkAccessManager = new QNetworkAccessManager(this);
|
||||
|
||||
// setup a timer to send transactions to pay assigned nodes every 30 seconds
|
||||
QTimer* nodePaymentTimer = new QTimer(this);
|
||||
connect(nodePaymentTimer, &QTimer::timeout, this, &DomainServer::payAssignedNodes);
|
||||
|
||||
const qint64 NODE_PAYMENT_INTERVAL_MSECS = 30 * 1000;
|
||||
nodePaymentTimer->start(NODE_PAYMENT_INTERVAL_MSECS);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -343,10 +350,12 @@ void DomainServer::handleConnectRequest(const QByteArray& packet, const HifiSock
|
|||
bool isAssignment = _pendingAssignedNodes.contains(packetUUID);
|
||||
SharedAssignmentPointer matchingQueuedAssignment = SharedAssignmentPointer();
|
||||
PendingAssignedNodeData* pendingAssigneeData = NULL;
|
||||
|
||||
if (isAssignment) {
|
||||
pendingAssigneeData = _pendingAssignedNodes.take(packetUUID);
|
||||
|
||||
if (pendingAssigneeData) {
|
||||
matchingQueuedAssignment = matchingQueuedAssignmentForCheckIn(packetUUID, nodeType);
|
||||
matchingQueuedAssignment = matchingQueuedAssignmentForCheckIn(pendingAssigneeData->getAssignmentUUID(), nodeType);
|
||||
|
||||
if (matchingQueuedAssignment) {
|
||||
qDebug() << "Assignment deployed with" << uuidStringWithoutCurlyBraces(packetUUID)
|
||||
|
@ -647,6 +656,18 @@ void DomainServer::readAvailableDatagrams() {
|
|||
}
|
||||
}
|
||||
|
||||
void DomainServer::payAssignedNodes() {
|
||||
// enumerate the NodeList to find the assigned nodes
|
||||
foreach (const SharedNodePointer& node, LimitedNodeList::getInstance()->getNodeHash()) {
|
||||
DomainServerNodeData* nodeData = reinterpret_cast<DomainServerNodeData*>(node->getLinkedData());
|
||||
|
||||
if (!nodeData->getAssignmentUUID().isNull() && !nodeData->getWalletUUID().isNull()) {
|
||||
// add a pending transaction for this node or increase the amount for the existing transaction
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DomainServer::processDatagram(const QByteArray& receivedPacket, const HifiSockAddr& senderSockAddr) {
|
||||
LimitedNodeList* nodeList = LimitedNodeList::getInstance();
|
||||
|
||||
|
|
|
@ -45,8 +45,8 @@ public slots:
|
|||
void nodeKilled(SharedNodePointer node);
|
||||
|
||||
private slots:
|
||||
|
||||
void readAvailableDatagrams();
|
||||
void payAssignedNodes();
|
||||
private:
|
||||
void setupNodeListAndAssignments(const QUuid& sessionUUID = QUuid::createUuid());
|
||||
bool optionallySetupOAuth();
|
||||
|
|
Loading…
Reference in a new issue