syntax = "proto3";

package enginepb;

option go_package = "github.com/pingcap/tiflow/engine/enginepb";

service DataRWService {
    rpc ReadLines(ReadLinesRequest ) returns (stream ReadLinesResponse) {}
    rpc WriteLines(stream WriteLinesRequest) returns (WriteLinesResponse) {}
    rpc GenerateData(GenerateDataRequest) returns (GenerateDataResponse);
    rpc ListFiles (ListFilesReq ) returns (ListFilesResponse);
    rpc IsReady (IsReadyRequest) returns (IsReadyResponse);
    rpc CheckDir (CheckDirRequest) returns (CheckDirResponse);
}

message GenerateDataRequest {
    int32 file_num = 1;
    int32 record_num = 2;
}

message GenerateDataResponse {
    string err_msg = 1;
}

message CheckDirRequest {
    string dir = 1;
}

message CheckDirResponse {
    string err_msg = 1;
    int32 err_file_idx = 2;
}

message IsReadyRequest {
}

message IsReadyResponse {
    bool ready = 1;
}

message ListFilesReq {
}

message ListFilesResponse{
    int32 fileNum =1;
}

message ReadLinesRequest {
    int32   fileIdx = 1;
    bytes   lineNo = 2;
}

message ReadLinesResponse {
    bytes  key = 1 ;
    bytes  val = 2 ;
    bool    isEof = 3;
    string  errMsg = 4;
}

message WriteLinesRequest {
    string dir = 1;
    int32  file_idx = 2;
    bytes key = 3;
    bytes value = 4;
}

message WriteLinesResponse {
    string err_msg = 1;
}






