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

io.nuls.base.api.provider.protocol.ProtocolProviderForRpc Maven / Gradle / Ivy

package io.nuls.base.api.provider.protocol;

import io.nuls.base.api.provider.BaseRpcService;
import io.nuls.base.api.provider.Provider;
import io.nuls.base.api.provider.Result;
import io.nuls.base.api.provider.protocol.facade.GetVersionReq;
import io.nuls.base.api.provider.protocol.facade.VersionInfo;
import io.nuls.core.rpc.model.ModuleE;

import java.util.Map;
import java.util.function.Function;

/**
 * @Author: zhoulijun
 * @Time: 2020-01-15 18:17
 * @Description: 功能描述
 */
@Provider(Provider.ProviderType.RPC)
public class ProtocolProviderForRpc extends BaseRpcService implements ProtocolProvider {

    @Override
    protected  Result call(String method, Object req, Function callback) {
        return callRpc(ModuleE.PU.abbr,method,req,callback);
    }

    @Override
    public  Result getVersion(GetVersionReq req) {
        Function callback = res->{
            Map local = (Map) res.get("localProtocolVersion");
            Map net = (Map) res.get("currentProtocolVersion");
            VersionInfo info = new VersionInfo();
            info.setLocalProtocolVersion((Integer) local.get("version"));
            info.setCurrentProtocolVersion((Integer) net.get("version"));
            return success(info);
        };
        return call("getVersion",req,callback);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy