All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jd.blockchain.sdk.service.event.UserEventRunnable Maven / Gradle / Ivy

The newest version!
package com.jd.blockchain.sdk.service.event;

import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.ledger.Event;
import com.jd.blockchain.sdk.UserEventListener;
import com.jd.blockchain.sdk.EventContext;
import com.jd.blockchain.sdk.EventListenerHandle;
import com.jd.blockchain.sdk.UserEventPoint;
import com.jd.blockchain.transaction.BlockchainQueryService;

import java.util.Set;

/**
 * 用户事件处理线程
 *
 * @author shaozhuguang
 *
 */
public class UserEventRunnable extends AbstractEventRunnable {

    private BlockchainQueryService queryService;

    private UserEventListener listener;

    public UserEventRunnable(HashDigest ledgerHash, BlockchainQueryService queryService, Set eventPointSet,
                             UserEventListener listener, EventListenerHandle handle) {
        super(ledgerHash, eventPointSet, handle);
        this.listener = listener;
        this.queryService = queryService;
    }

    @Override
    Event[] loadEvent(UserEventPoint eventPoint, long fromSequence, int maxCount) {
        return queryService.getUserEvents(getLedgerHash(), eventPoint.getEventAccount(), eventPoint.getEventName(),
        fromSequence, maxCount);
    }

    @Override
    void onEvent(Event[] events) {
        for(Event event:events) {
            listener.onEvent(event, eventContext(event));
        }
    }

    @Override
    EventContext eventContext(Event event) {
        EventContextData context = new EventContextData<>(getLedgerHash(), getHandle());
        return context;
    }

    @Override
    String eventPointKey(UserEventPoint eventPoint) {
        return eventPoint.getEventAccount() + eventPoint.getEventName();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy