data_workshop/name_service.go
huangsimin 27c0277ba8 init
2020-05-19 18:12:18 +08:00

53 lines
1.1 KiB
Go

package main
import (
"context"
"encoding/gob"
"log"
)
type LastName struct {
Name []byte
}
type FirstName struct {
Name []byte
}
var fnl *KeyList = &KeyList{}
var lnl *KeyList = &KeyList{}
func init() {
gob.Register(LastName{})
gob.Register(FirstName{})
LoadGob("./data/firstname.gob", fnl)
LoadGob("./data/lastname.gob", lnl)
}
type nameserver struct {
}
func (s *nameserver) FirstName(cxt context.Context, request *Request) (*Reply, error) {
reply := &Reply{}
reply.Message = string(GetRandomKey(fnl).(FirstName).Name)
return reply, nil
}
func (s *nameserver) LastName(cxt context.Context, request *Request) (*Reply, error) {
reply := &Reply{}
log.Println(len(lnl.Keys))
reply.Message = string(GetRandomKey(lnl).(LastName).Name)
return reply, nil
}
func (s *nameserver) FullName(cxt context.Context, request *Request) (*Reply, error) {
reply := &Reply{}
var fullname []byte
fullname = append(fullname, GetRandomKey(fnl).(FirstName).Name...)
fullname = append(fullname, GetRandomKey(lnl).(LastName).Name...)
reply.Message = string(fullname)
return reply, nil
}