Move each backend to a separate file

Signed-off-by: Solomon Hykes <solomon@docker.com>
This commit is contained in:
Solomon Hykes 2014-06-02 07:14:06 +00:00
parent fc41d09026
commit 3243ae084b
3 changed files with 62 additions and 48 deletions

View File

@ -1,10 +1,7 @@
package backends package backends
import ( import (
"fmt"
"github.com/docker/libswarm/beam" "github.com/docker/libswarm/beam"
"strings"
"time"
) )
// New returns a new engine, with all backends // New returns a new engine, with all backends
@ -21,48 +18,3 @@ func New() *beam.Object {
backends.Bind("forward", Forward()) backends.Bind("forward", Forward())
return beam.Obj(backends) return beam.Obj(backends)
} }
func Debug() beam.Sender {
backend := beam.NewServer()
backend.OnSpawn(beam.Handler(func(ctx *beam.Message) error {
instance := beam.Task(func(in beam.Receiver, out beam.Sender) {
fmt.Printf("debug backend!")
for {
msg, err := in.Receive(beam.Ret)
if err != nil {
fmt.Printf("debug receive: %v", err)
return
}
fmt.Printf("[DEBUG] %s %s\n", msg.Verb, strings.Join(msg.Args, " "))
if _, err := out.Send(msg); err != nil {
fmt.Printf("debug send: %v", err)
return
}
}
})
_, err := ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance})
return err
}))
return backend
}
func FakeClient() beam.Sender {
backend := beam.NewServer()
backend.OnSpawn(beam.Handler(func(ctx *beam.Message) error {
// Instantiate a new fakeclient instance
instance := beam.Task(func(in beam.Receiver, out beam.Sender) {
fmt.Printf("fake client!\n")
defer fmt.Printf("end of fake client!\n")
o := beam.Obj(out)
o.Log("fake client starting")
defer o.Log("fake client terminating")
for {
time.Sleep(1 * time.Second)
o.Log("fake client heartbeat!")
}
})
_, err := ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance})
return err
}))
return backend
}

32
backends/debug.go Normal file
View File

@ -0,0 +1,32 @@
package backends
import (
"fmt"
"strings"
"github.com/docker/libswarm/beam"
)
func Debug() beam.Sender {
backend := beam.NewServer()
backend.OnSpawn(beam.Handler(func(ctx *beam.Message) error {
instance := beam.Task(func(in beam.Receiver, out beam.Sender) {
fmt.Printf("debug backend!")
for {
msg, err := in.Receive(beam.Ret)
if err != nil {
fmt.Printf("debug receive: %v", err)
return
}
fmt.Printf("[DEBUG] %s %s\n", msg.Verb, strings.Join(msg.Args, " "))
if _, err := out.Send(msg); err != nil {
fmt.Printf("debug send: %v", err)
return
}
}
})
_, err := ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance})
return err
}))
return backend
}

30
backends/fakeclient.go Normal file
View File

@ -0,0 +1,30 @@
package backends
import (
"fmt"
"time"
"github.com/docker/libswarm/beam"
)
func FakeClient() beam.Sender {
backend := beam.NewServer()
backend.OnSpawn(beam.Handler(func(ctx *beam.Message) error {
// Instantiate a new fakeclient instance
instance := beam.Task(func(in beam.Receiver, out beam.Sender) {
fmt.Printf("fake client!\n")
defer fmt.Printf("end of fake client!\n")
o := beam.Obj(out)
o.Log("fake client starting")
defer o.Log("fake client terminating")
for {
time.Sleep(1 * time.Second)
o.Log("fake client heartbeat!")
}
})
_, err := ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance})
return err
}))
return backend
}