This commit is contained in:
crusader 2017-11-01 12:20:52 +09:00
parent 900bf42638
commit 87d41a5c4f
6 changed files with 29 additions and 105 deletions

View File

@ -2,33 +2,14 @@ package client
import ( import (
"git.loafle.net/commons_go/rpc" "git.loafle.net/commons_go/rpc"
"git.loafle.net/commons_go/server" "git.loafle.net/commons_go/rpc/client"
rpcClient "git.loafle.net/overflow/overflow_discovery/client/rpc"
) )
func New(addr string, registry rpc.Registry) Client { func New(addr string, registry rpc.Registry) client.Client {
ch := NewClientHandler(addr, registry) ch := NewClientHandler(addr, registry)
c := &client{} c := client.New(ch)
c.Client = server.NewClient(ch)
c.ch = ch
return c return c
} }
type Client interface {
server.Client
RPC() rpcClient.Client
}
type client struct {
server.Client
ch *ClientHandlers
}
func (c *client) RPC() rpcClient.Client {
return c.ch.RPCClient
}

View File

@ -1,51 +1,20 @@
package client package client
import ( import (
"io"
"log"
"git.loafle.net/commons_go/rpc" "git.loafle.net/commons_go/rpc"
"git.loafle.net/commons_go/server/ipc" "git.loafle.net/commons_go/rpc/client"
rpcClient "git.loafle.net/overflow/overflow_discovery/client/rpc"
) )
func NewClientHandler(addr string, registry rpc.Registry) *ClientHandlers { func NewClientHandler(addr string, registry rpc.Registry) *ClientHandlers {
ch := &ClientHandlers{} ch := &ClientHandlers{}
ch.Addr = addr ch.addr = addr
ch.RPCClient = rpcClient.New(registry) ch.RPCRegistry = registry
return ch return ch
} }
type ClientHandlers struct { type ClientHandlers struct {
ipc.ClientHandlers client.ClientHandlers
RPCClient rpcClient.Client
}
func (ch *ClientHandlers) OnStart() {
// no op
log.Printf("discovery.ClientHandlers.OnStart")
}
func (ch *ClientHandlers) OnStop() {
// no op
}
func (ch *ClientHandlers) OnHandshake(remoteAddr string, rwc io.ReadWriteCloser) error {
return nil
}
func (ch *ClientHandlers) Handle(rwc io.ReadWriteCloser, stopChan chan struct{}) {
log.Printf("discovery.ClientHandlers.Handle")
ch.RPCClient.Start(rwc)
select {
case <-stopChan:
rwc.Close()
return
default:
}
addr string
} }

View File

@ -0,0 +1,10 @@
package client
import (
"io"
"net"
)
func (ch *ClientHandlers) Connect() (io.ReadWriteCloser, error) {
return net.Dial("unix", ch.addr)
}

View File

@ -0,0 +1,11 @@
package client
import (
"io"
"gopkg.in/natefinch/npipe.v2"
)
func (ch *ClientHandlers) Connect() (io.ReadWriteCloser, error) {
return npipe.Dial(ch.addr)
}

View File

@ -1,19 +0,0 @@
package rpc
import (
"git.loafle.net/commons_go/rpc"
rpcClient "git.loafle.net/commons_go/rpc/client"
)
func New(registry rpc.Registry) Client {
ch := NewClientHandler(registry)
c := rpcClient.New(ch)
return c
}
type Client interface {
rpcClient.Client
}

View File

@ -1,28 +0,0 @@
package rpc
import (
"git.loafle.net/commons_go/rpc"
rpcClient "git.loafle.net/commons_go/rpc/client"
"git.loafle.net/commons_go/rpc/protocol/json"
)
func NewClientHandler(registry rpc.Registry) *ClientHandlers {
ch := &ClientHandlers{}
ch.ContentType = "json"
ch.Codec = json.NewClientCodec()
ch.RPCRegistry = registry
return ch
}
type ClientHandlers struct {
rpcClient.ClientHandlers
}
func (ch *ClientHandlers) OnStart() {
// no op
}
func (ch *ClientHandlers) OnStop() {
// no op
}