diff options
Diffstat (limited to 'service/rpc.go')
-rw-r--r-- | service/rpc.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/service/rpc.go b/service/rpc.go new file mode 100644 index 00000000..eb128768 --- /dev/null +++ b/service/rpc.go @@ -0,0 +1,32 @@ +package service + +import ( + "net" + "strings" +) + +type RPCConfig struct { + Listen string +} + +func (cfg *RPCConfig) CreateListener() (net.Listener, error) { + dsn := strings.Split(cfg.Listen, "://") + if len(dsn) != 2 { + return nil, dsnError + } + + return net.Listen(dsn[0], dsn[1]) +} + +func (cfg *RPCConfig) CreateDialer() (net.Conn, error) { + dsn := strings.Split(cfg.Listen, "://") + if len(dsn) != 2 { + return nil, dsnError + } + + return net.Dial(dsn[0], dsn[1]) +} + +func NewBus() *Bus { + return &Bus{services: make([]Service, 0)} +} |