Skip to content

Commit

Permalink
Change route and add get meta method.
Browse files Browse the repository at this point in the history
  • Loading branch information
kakaLQY committed Apr 27, 2017
1 parent 10d222c commit 3db6b81
Showing 1 changed file with 92 additions and 84 deletions.
176 changes: 92 additions & 84 deletions service/methods.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,81 @@ func exit(b []byte, w io.Writer) {
// ping uint8(1) used to extend readtimeout
func ping(b []byte, w io.Writer) {}

// action uint8(2) to receive action income.
// getMeta uint8(2) to get meta information
func getMeta(b []byte, w io.Writer) {
thisRoute := uint8(2)

var meta Meta

v, err := db.Version()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Version = uint32(v)

tag, err := db.Tag()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Tag = tag

cre, err := db.CreateAt()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.CreateAt = cre

host, err := db.Host()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Host = host

username, err := db.Username()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Username = username

arch, err := db.Arch()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Arch = arch

osInfo, err := db.OS()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Os = osInfo

offset, err := db.ZoneOffset()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.ZoneOffset = offset

buf, err := proto.Marshal(&meta)
if err != nil {
WriteErrorMessage(err, w)
return
}

headerBuf := GenerateHeaderBuf(uint16(len(buf)), thisRoute)
if _, err := w.Write(append(headerBuf, buf...)); err != nil {
lg.L.Error("error writing", zap.Error(err))
}
}

// action uint8(10) to receive action income.
func action(b []byte, w io.Writer) {
// enqueue
go func() {
Expand All @@ -74,8 +148,10 @@ func action(b []byte, w io.Writer) {
}()
}

// getActions uint8(3) to get all actions
// getActions uint8(11) to get all actions
func getActions(b []byte, w io.Writer) {
thisRoute := uint8(11)

var all AllActions
targets, starts, lasts, err := db.GetActions()
if err != nil {
Expand All @@ -98,14 +174,16 @@ func getActions(b []byte, w io.Writer) {
return
}

headerBuf := GenerateHeaderBuf(uint16(len(buf)), uint8(3))
headerBuf := GenerateHeaderBuf(uint16(len(buf)), thisRoute)
if _, err := w.Write(append(headerBuf, buf...)); err != nil {
lg.L.Error("error writing", zap.Error(err))
}
}

// getTargets uint8(4) to get all targets
// getTargets uint8(20) to get all targets
func getTargets(b []byte, w io.Writer) {
thisRoute := uint8(20)

targets := db.GetTargets()

var all Targets
Expand All @@ -117,14 +195,16 @@ func getTargets(b []byte, w io.Writer) {
return
}

headerBuf := GenerateHeaderBuf(uint16(len(buf)), uint8(4))
headerBuf := GenerateHeaderBuf(uint16(len(buf)), thisRoute)
if _, err := w.Write(append(headerBuf, buf...)); err != nil {
lg.L.Error("error writing", zap.Error(err))
}
}

// getSlots uint8(5) to get slots of a target in a range
// getSlots uint8(21) to get slots of a target in a range
func getSlots(b []byte, w io.Writer) {
thisRoute := uint8(21)

var rang SlotRange
if err := proto.Unmarshal(b, &rang); err != nil {
WriteErrorMessage(err, w)
Expand Down Expand Up @@ -156,79 +236,7 @@ func getSlots(b []byte, w io.Writer) {
return
}

headerBuf := GenerateHeaderBuf(uint16(len(buf)), uint8(5))
if _, err := w.Write(append(headerBuf, buf...)); err != nil {
lg.L.Error("error writing", zap.Error(err))
}
}

// getMeta uint8(6) to get meta information
func getMeta(b []byte, w io.Writer) {
var meta Meta

v, err := db.Version()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Version = uint32(v)

tag, err := db.Tag()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Tag = tag

cre, err := db.CreateAt()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.CreateAt = cre

host, err := db.Host()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Host = host

username, err := db.Username()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Username = username

arch, err := db.Arch()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Arch = arch

osInfo, err := db.OS()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.Os = osInfo

offset, err := db.ZoneOffset()
if err != nil {
WriteErrorMessage(err, w)
return
}
meta.ZoneOffset = offset

buf, err := proto.Marshal(&meta)
if err != nil {
WriteErrorMessage(err, w)
return
}

headerBuf := GenerateHeaderBuf(uint16(len(buf)), uint8(6))
headerBuf := GenerateHeaderBuf(uint16(len(buf)), thisRoute)
if _, err := w.Write(append(headerBuf, buf...)); err != nil {
lg.L.Error("error writing", zap.Error(err))
}
Expand All @@ -239,11 +247,11 @@ func getRouter() map[uint8]RouteFunc {

m[uint8(0)] = exit
m[uint8(1)] = ping
m[uint8(2)] = action
m[uint8(3)] = getActions
m[uint8(4)] = getTargets
m[uint8(5)] = getSlots
m[uint8(6)] = getMeta
m[uint8(2)] = getMeta
m[uint8(10)] = action
m[uint8(11)] = getActions
m[uint8(20)] = getTargets
m[uint8(21)] = getSlots

return m
}

0 comments on commit 3db6b81

Please sign in to comment.