package tlvpickle;

import "google/protobuf/descriptor.proto";

option java_package = "com.tencent.tlvpickle";
option java_outer_classname = "tlvpickle";

option optimize_for = CODE_SIZE;



message SKBuiltinInt32_PB {
    required uint32 iVal = 1;
}

message SKBuiltinUint32_PB {
    required uint32 uiVal = 1;
}

message SKBuiltinChar_PB {
    required int32  iVal = 1;
}

message SKBuiltinUchar_PB {
    required uint32 uiVal = 1;
}

message SKBuiltinInt8_PB {
    required int32 iVal = 1;
}

message SKBuiltinUint8_PB {
    required uint32 uiVal = 1;
}

message SKBuiltinInt16_PB {
    required int32 iVal = 1;
}

message SKBuiltinUint16_PB {
    required uint32 uiVal = 1;
}

message SKBuiltinInt64_PB {
    required int64 llVal = 1;
}

message SKBuiltinUint64_PB {
    required uint64 ullVal = 1;
}

message SKBuiltinFloat32_PB {
    required float fVal = 1;
}

message SKBuiltinDouble64_PB {
    required double dVal = 1;
}

message SKBuiltinBuffer_PB {
    required uint32 iLen = 1;
    optional bytes Buffer = 2;
}

message SKBuiltinString_PB {
    optional string String = 1;
}

message SKBuiltinBytes_PB {
    optional bytes Buffer = 1;
}

message SKBuiltinEmpty_PB {
}

message SKBuiltinNoexsit_PB {
}
message SKBuiltinEchoInfo_PB {
    required int32 EchoLen = 1;
    required bytes EchoStr = 2;
}

message SKPBMetaInfo {
    optional string file_name = 1;
    optional SKBuiltinBuffer_PB buffer = 2;
}

message SKPBMetaInfoResp {
    repeated SKPBMetaInfo info = 1;
}

message SKProfileReq
{
    optional int32 index = 1; //worker id
    optional int32 oper = 2;  //1 open; 2 close;
    optional int32 profile_type = 3; //1:heap profile; 2: cpu profile;
    optional int32 timeout = 4;  
};

message SKProfileResp
{
    optional string result = 1;
}

message SKBuiltinGenericMsg_PB {
}

//////////////////////////////

extend google.protobuf.FieldOptions {
    optional string Desc = 1000010;
}

extend google.protobuf.ServiceOptions {
    optional string ServerType = 1000000;
    optional int32 Magic = 1000001;
    optional int32 Target = 1000002;
}

message SKExtendRet {
    required int32 ReadTimeout = 1;
    required int32 FastFail = 2;
    required int32 TicketErr = 3;
    required int32 OtherErr = 4;
}

message SKFieldMap  {
    optional string ReqText  = 1;
    optional string ReqTextWx  = 2;
    optional string RetText  = 3;
}

extend google.protobuf.MethodOptions {
    optional int32  CmdID = 1000000;
    optional string OptString = 1000001;
    optional string Usage = 1000002;
    optional int32 NeedExtEnd = 1000003;
    optional SKExtendRet ExtendRet = 1000004; 
    optional string Brief = 1000005;
    optional string Url = 1000006;
    optional SKFieldMap FieldMap = 1000007;
}


//支付在业务增加了FieldOptiops字段，id从1百万开始
//后续有业务需要增加的时候，请在此添加占用的id字段
/*
extend google.protobuf.FieldOptions {
    optional int32 Privacy = 1000005[default=0]; 
}
*/
