Skip to content

Commit

Permalink
Use FinshedBytes() in go-echo example instead of manually encoding of…
Browse files Browse the repository at this point in the history
…fset (google#7660)

Co-authored-by: Derek Bailey <[email protected]>
  • Loading branch information
2 people authored and Wen Sun committed Dec 25, 2022
1 parent 924f04d commit f7282a5
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 20 deletions.
15 changes: 2 additions & 13 deletions examples/go-echo/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,7 @@ func RequestBody() *bytes.Reader {
b := flatbuffers.NewBuilder(0)
r := net.RequestT{Player: &hero.WarriorT{Name: "Krull", Hp: 100}}
b.Finish(r.Pack(b))

// Encode builder head in last 4 bytes of request body
buf := make([]byte, 4)
flatbuffers.WriteUOffsetT(buf, b.Head())
buf = append(b.Bytes, buf...)

return bytes.NewReader(buf)
return bytes.NewReader(b.FinishedBytes())
}

func ReadResponse(r *http.Response) {
Expand All @@ -32,18 +26,13 @@ func ReadResponse(r *http.Response) {
return
}

// Last 4 bytes is offset.
off := flatbuffers.GetUOffsetT(body[len(body)-4:])
buf := body[:len(body) - 4]

res := net.GetRootAsResponse(buf, off)
res := net.GetRootAsResponse(body, 0)
player := res.Player(nil)

fmt.Printf("Got response (name: %v, hp: %v)\n", string(player.Name()), player.Hp())
}

func main() {

body := RequestBody()
req, err := http.NewRequest("POST", "http://localhost:8080/echo", body)
if err != nil {
Expand Down
8 changes: 1 addition & 7 deletions examples/go-echo/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (
"fmt"
"io/ioutil"
"net/http"

flatbuffers "github.com/google/flatbuffers/go"
)

func echo(w http.ResponseWriter, r *http.Request) {
Expand All @@ -16,11 +14,7 @@ func echo(w http.ResponseWriter, r *http.Request) {
return
}

// Last 4 bytes is offset. See client.go.
off := flatbuffers.GetUOffsetT(body[len(body)-4:])
buf := body[:len(body) - 4]

req := net.GetRootAsRequest(buf, off)
req := net.GetRootAsRequest(body, 0)
player := req.Player(nil)

fmt.Printf("Got request (name: %v, hp: %v)\n", string(player.Name()), player.Hp())
Expand Down

0 comments on commit f7282a5

Please sign in to comment.