public Disposable start()

in backup-core/src/main/java/org/apache/iotdb/backup/core/ExportStarter.java [52:102]


  public Disposable start(ExportModel exportModel) {

    pipeSinkList.clear();
    pipeSourceList.clear();

    PipelineBuilder builder = new PipelineBuilder();
    String fileFloder = exportModel.getFileFolder();
    if (!fileFloder.endsWith("/") && !fileFloder.endsWith("\\")) {
      fileFloder += File.separator;
    }
    exportModel.setFileFolder(fileFloder);
    File file = new File(fileFloder);
    if (!file.exists()) {
      file.mkdirs();
    }
    StringBuilder requestFilePath = new StringBuilder();
    requestFilePath.append(exportModel.getFileFolder()).append("REQUEST.json");
    String json = JSON.toJSONString(exportModel);
    try (OutputStreamWriter out = new FileWriter(requestFilePath.toString())) {
      out.write(json);
    } catch (IOException e) {
      e.printStackTrace();
    }

    if (exportModel.getNeedTimeseriesStructure()) {
      PipeSink<TimeSeriesRowModel, TimeSeriesRowModel> outStructureFileSink =
          new OutStructureFileSink("structure sink");
      // pipeSinkList.add(outStructureFileSink);
      builder
          .source(new OutStructureSource("structure source"))
          .channel(new StringFormatIncludeNullFieldChannel("structure channel"))
          .sink(outStructureFileSink);
    }
    PipeSink<TimeSeriesRowModel, TimeSeriesRowModel> pipeSink = generateSink(exportModel);
    pipeSinkList.add(pipeSink);
    PipeSource pipeSource = generateSource(exportModel);
    pipeSourceList.add(pipeSource);
    pipeline =
        builder
            .source(pipeSource)
            .channel(() -> generateChannel(exportModel))
            .sink(pipeSink)
            .build()
            .withContext(
                () -> {
                  PipelineContext<ExportModel> context = new PipelineContext<>();
                  context.setModel(exportModel);
                  return context;
                });
    return pipeline.start();
  }