ClientUtils.java 1.19 KB
package com.example.mina.client;

import com.example.mina.client.base.ClientManager;
import com.example.mina.client.base.Experiment;
import com.example.mina.client.base.ExperimentManager;
import com.example.mina.client.base.ExperimentOptions;
import com.example.mina.client.base.MatrixClient;
import com.example.mina.client.base.MatrixConnectConfig;
import javax.annotation.PostConstruct;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;

/**
 * @author BenJin Yin
 * @date 2021/4/6
 */
@Component
@AllArgsConstructor
public class ClientUtils {
    private static ClientUtils SELF = null;
    private final ClientManager clientManager;
    private final ExperimentManager experimentManager;

    @PostConstruct
    void init() {
        SELF = this;
    }

    public static void start(MatrixConnectConfig connectConfig, ExperimentOptions options) {
        MatrixClient client = SELF.clientManager.getOrCreateClient(connectConfig);
        Experiment experiment = SELF.experimentManager.getOrCreateExperiment(client, options);
        experiment.start();
    }

    public static void stop(String experimentId) {
        SELF.experimentManager.stopExperiment(experimentId);
    }


}