mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Start TEngine3.0
Start TEngine3.0
This commit is contained in:
74
Luban/Luban.ClientServer/Templates/proto/go/bean.tpl
Normal file
74
Luban/Luban.ClientServer/Templates/proto/go/bean.tpl
Normal file
@@ -0,0 +1,74 @@
|
||||
{{-
|
||||
go_full_name = x.go_full_name
|
||||
parent_def_type = x.parent_def_type
|
||||
is_abstract_type = x.is_abstract_type
|
||||
hierarchy_fields = x.hierarchy_fields
|
||||
hierarchy_not_abstract_children = x.hierarchy_not_abstract_children
|
||||
-}}
|
||||
|
||||
package {{x.top_module}}
|
||||
|
||||
import (
|
||||
"bright/serialization"
|
||||
)
|
||||
|
||||
{{x.go_bin_import}}
|
||||
|
||||
type {{go_full_name}} struct {
|
||||
{{~for field in hierarchy_fields ~}}
|
||||
{{field.convention_name}} {{go_define_type field.ctype}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
const TypeId_{{go_full_name}} = {{x.id}}
|
||||
|
||||
func (*{{go_full_name}}) GetTypeId() int32 {
|
||||
return {{x.id}}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Serialize(_buf *serialization.ByteBuf) {
|
||||
{{~for field in hierarchy_fields ~}}
|
||||
{{go_serialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Deserialize(_buf *serialization.ByteBuf) (err error) {
|
||||
{{~for field in hierarchy_fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf' 'err'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
||||
|
||||
{{~if is_abstract_type~}}
|
||||
func Serialize{{go_full_name}}(_v interface{}, _buf *serialization.ByteBuf) {
|
||||
_b := _v.(serialization.ISerializable)
|
||||
_buf.WriteInt(_b.GetTypeId())
|
||||
_b.Serialize(_buf)
|
||||
}
|
||||
|
||||
func Deserialize{{go_full_name}}(_buf *serialization.ByteBuf) (_v serialization.ISerializable, err error) {
|
||||
var id int32
|
||||
if id, err = _buf.ReadInt() ; err != nil {
|
||||
return
|
||||
}
|
||||
switch id {
|
||||
{{~for child in hierarchy_not_abstract_children~}}
|
||||
case {{child.id}}: _v = &{{child.go_full_name}}{}; if err = _v.Deserialize(_buf); err != nil { return nil, err } else { return }
|
||||
{{~end~}}
|
||||
default: return nil, errors.New("unknown type id")
|
||||
}
|
||||
}
|
||||
{{~else~}}
|
||||
func Serialize{{go_full_name}}(_v serialization.ISerializable, _buf *serialization.ByteBuf) {
|
||||
_v.Serialize(_buf)
|
||||
}
|
||||
|
||||
func Deserialize{{go_full_name}}(_buf *serialization.ByteBuf) (*{{go_full_name}}, error) {
|
||||
v := &{{go_full_name}}{}
|
||||
if err := v.Deserialize(_buf); err == nil {
|
||||
return v, nil
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
{{~end~}}
|
40
Luban/Luban.ClientServer/Templates/proto/go/proto.tpl
Normal file
40
Luban/Luban.ClientServer/Templates/proto/go/proto.tpl
Normal file
@@ -0,0 +1,40 @@
|
||||
{{-
|
||||
go_full_name = x.go_full_name
|
||||
parent_def_type = x.parent_def_type
|
||||
is_abstract_type = x.is_abstract_type
|
||||
fields = x.fields
|
||||
hierarchy_not_abstract_children = x.hierarchy_not_abstract_children
|
||||
-}}
|
||||
|
||||
package {{x.top_module}}
|
||||
|
||||
import (
|
||||
"bright/serialization"
|
||||
)
|
||||
|
||||
{{x.go_bin_import}}
|
||||
|
||||
type {{go_full_name}} struct {
|
||||
{{~for field in fields ~}}
|
||||
{{field.convention_name}} {{go_define_type field.ctype}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
const TypeId_{{go_full_name}} = {{x.id}}
|
||||
|
||||
func (*{{go_full_name}}) GetTypeId() int32 {
|
||||
return {{x.id}}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Serialize(_buf *serialization.ByteBuf) {
|
||||
{{~for field in fields ~}}
|
||||
{{go_serialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Deserialize(_buf *serialization.ByteBuf) (err error) {
|
||||
{{~for field in fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf' 'err'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
51
Luban/Luban.ClientServer/Templates/proto/go/rpc.tpl
Normal file
51
Luban/Luban.ClientServer/Templates/proto/go/rpc.tpl
Normal file
@@ -0,0 +1,51 @@
|
||||
{{-
|
||||
go_full_name = x.go_full_name
|
||||
parent_def_type = x.parent_def_type
|
||||
is_abstract_type = x.is_abstract_type
|
||||
hierarchy_fields = x.hierarchy_fields
|
||||
hierarchy_not_abstract_children = x.hierarchy_not_abstract_children
|
||||
arg_type = x.targ_type
|
||||
res_type = x.tres_type
|
||||
-}}
|
||||
|
||||
package {{x.top_module}}
|
||||
|
||||
import (
|
||||
"bright/serialization"
|
||||
"errors"
|
||||
)
|
||||
|
||||
{{x.go_bin_import}}
|
||||
|
||||
type {{go_full_name}} struct {
|
||||
SeqId int64
|
||||
Arg {{go_define_type arg_type}}
|
||||
Res {{go_define_type res_type}}
|
||||
}
|
||||
|
||||
const TypeId_{{go_full_name}} = {{x.id}}
|
||||
|
||||
func (*{{go_full_name}}) GetTypeId() int32 {
|
||||
return {{x.id}}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Serialize(_buf *serialization.ByteBuf) {
|
||||
_buf.WriteLong(_v.SeqId)
|
||||
if _v.SeqId & 0x1 == 0 {
|
||||
{{go_serialize_field arg_type "_v.Arg" '_buf'}}
|
||||
} else {
|
||||
{{go_serialize_field res_type "_v.Res" '_buf'}}
|
||||
}
|
||||
}
|
||||
|
||||
func (_v *{{go_full_name}})Deserialize(_buf *serialization.ByteBuf) (err error) {
|
||||
if _v.SeqId, err = _buf.ReadLong() ; err != nil {
|
||||
return
|
||||
}
|
||||
if _v.SeqId & 0x1 == 0 {
|
||||
{{go_deserialize_field arg_type "_v.Arg" '_buf' 'err'}}
|
||||
} else {
|
||||
{{go_deserialize_field res_type "_v.Res" '_buf' 'err'}}
|
||||
}
|
||||
return
|
||||
}
|
17
Luban/Luban.ClientServer/Templates/proto/go/stub.tpl
Normal file
17
Luban/Luban.ClientServer/Templates/proto/go/stub.tpl
Normal file
@@ -0,0 +1,17 @@
|
||||
package {{namespace}}
|
||||
|
||||
import "bright/net"
|
||||
|
||||
type ProtocolFactory = func () net.Protocol
|
||||
|
||||
var ProtocolStub map[int]ProtocolFactory
|
||||
|
||||
func init() {
|
||||
ProtocolStub = make(map[int]ProtocolFactory)
|
||||
{{~for p in protos~}}
|
||||
ProtocolStub[{{p.id}}] = func () net.Protocol { return &{{p.go_full_name}}{} }
|
||||
{{~end~}}
|
||||
{{~for r in rpcs~}}
|
||||
ProtocolStub[{{r.id}}] = func () net.Protocol { return &{{r.go_full_name}}{} }
|
||||
{{~end~}}
|
||||
}
|
Reference in New Issue
Block a user