github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/grpcwrapper/rawydb/operation_params.go (about)

     1  package rawydb
     2  
     3  import (
     4  	"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Operations"
     5  
     6  	"github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawoptional"
     7  )
     8  
     9  type OperationParams struct {
    10  	OperationMode OperationParamsMode
    11  
    12  	OperationTimeout rawoptional.Duration
    13  	CancelAfter      rawoptional.Duration
    14  }
    15  
    16  func (p *OperationParams) ToProto() *Ydb_Operations.OperationParams {
    17  	res := &Ydb_Operations.OperationParams{
    18  		OperationMode: p.OperationMode.ToProto(),
    19  	}
    20  	res.OperationTimeout = p.OperationTimeout.ToProto()
    21  	res.CancelAfter = p.CancelAfter.ToProto()
    22  
    23  	return res
    24  }
    25  
    26  type OperationParamsMode int
    27  
    28  const (
    29  	OperationParamsModeUnspecified OperationParamsMode = 0
    30  	OperationParamsModeSync        OperationParamsMode = 1
    31  	OperationParamsModeAsync       OperationParamsMode = 2
    32  )
    33  
    34  func (mode OperationParamsMode) ToProto() Ydb_Operations.OperationParams_OperationMode {
    35  	return Ydb_Operations.OperationParams_OperationMode(mode)
    36  }
    37  
    38  func NewRawOperationParamsFromProto(proto *Ydb_Operations.OperationParams) (res OperationParams) {
    39  	res.OperationMode = OperationParamsMode(proto.GetOperationMode())
    40  	res.CancelAfter = rawoptional.Duration{
    41  		Value:    proto.GetCancelAfter().AsDuration(),
    42  		HasValue: proto.GetCancelAfter().AsDuration() > 0,
    43  	}
    44  	res.OperationTimeout = rawoptional.Duration{
    45  		Value:    proto.GetOperationTimeout().AsDuration(),
    46  		HasValue: proto.GetOperationTimeout().AsDuration() > 0,
    47  	}
    48  
    49  	return res
    50  }