本文整理汇总了Golang中github.com/gocircuit/circuit/use/errors.Unpack函数的典型用法代码示例。如果您正苦于以下问题:Golang Unpack函数的具体用法?Golang Unpack怎么用?Golang Unpack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Unpack函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Recv
func (y YValve) Recv() (_ io.ReadCloser, err error) {
r := y.X.Call("Recv")
if err = errors.Unpack(r[1]); err != nil {
return nil, err
}
return xio.NewYReadCloser(r[0]), nil
}
示例2: Send
func (y YValve) Send() (_ io.WriteCloser, err error) {
r := y.X.Call("Send")
if err = errors.Unpack(r[1]); err != nil {
return nil, err
}
return xio.NewYWriteCloser(r[0]), nil
}
示例3: Profile
func (y YServer) Profile(name string) (rc io.ReadCloser, err error) {
r := y.X.Call("Profile", name)
if err := errors.Unpack(r[1]); err != nil {
return nil, err
}
return xio.NewYReadCloser(r[0]), nil
}
示例4: Start
func (y YCmd) Start() (stdin io.WriteCloser, stdout, stderr io.ReadCloser, err error) {
r := y.Call("Start")
err = errors.Unpack(r[3])
if err != nil {
return nil, nil, nil, err
}
return xyio.NewYWriteCloser(r[0]), xyio.NewYReadCloser(r[1]), xyio.NewYReadCloser(r[2]), nil
}
示例5: Read
func (y YReader) Read(p []byte) (n int, err error) {
r := y.Call("Read", len(p))
q, err := unpackBytes(r[0]), errors.Unpack(r[1])
if len(q) > len(p) {
panic("corrupt i/o server")
}
copy(p, q)
return len(q), err
}
示例6: Tail
func (y YShell) Tail(name string, arg ...string) (stdin io.WriteCloser, stdout, stderr io.ReadCloser, err error) {
ig := make([]interface{}, 0, len(arg))
for _, a := range arg {
ig = append(ig, a)
}
r := y.Call("Tail", ig...)
err = errors.Unpack(r[3])
if err != nil {
return nil, nil, nil, err
}
return xyio.NewYWriteCloser(r[0]), xyio.NewYReadCloser(r[1]), xyio.NewYReadCloser(r[2]), nil
}
示例7: Read
func (y YReader) Read(p []byte) (n int, err error) {
r := y.Call("Read", len(p))
q, err := unpackBytes(r[0]), errors.Unpack(r[1])
if len(q) > len(p) {
panic("corrupt i/o server")
}
copy(p, q)
if err != nil && err.Error() == "EOF" {
err = io.EOF
}
return len(q), err
}
示例8: Make
func (y YTerminal) Make(kind string, arg interface{}) (yelm interface{}, err error) {
r := y.X.Call("Make", kind, arg)
if err = xerrors.Unpack(r[1]); err != nil {
return nil, err
}
switch kind {
case Chan:
return valve.YValve{r[0].(circuit.X)}, nil
case Proc:
return proc.YProc{r[0].(circuit.X)}, nil
}
return nil, errors.New("element kind not supported")
}
示例9: Read
func (y YReader) Read(p []byte) (n int, err error) {
defer func() {
// println(fmt.Sprintf("yread n=%d err=%v r=%v", n, err, recover()))
if r := recover(); r != nil {
println(fmt.Sprintf("r=%v", r))
os.Exit(1)
}
}()
r := y.Call("Read", len(p))
q, err := unpackBytes(r[0]), errors.Unpack(r[1])
if len(q) > len(p) {
panic("corrupt i/o server")
}
copy(p, q)
if err != nil && err.Error() == "EOF" {
err = io.EOF
}
return len(q), err
}
示例10: Make
func (y YTerminal) Make(kind string, arg interface{}) (yelm interface{}, err error) {
r := y.X.Call("Make", kind, arg)
if err = xerrors.Unpack(r[1]); err != nil {
return nil, err
}
switch kind {
case Chan:
return valve.YValve{r[0].(circuit.X)}, nil
case Proc:
return proc.YProc{r[0].(circuit.X)}, nil
case Docker:
return docker.YContainer{r[0].(circuit.X)}, nil
case OnJoin:
return pubsub.YSubscription{r[0].(circuit.X)}, nil
case OnLeave:
return pubsub.YSubscription{r[0].(circuit.X)}, nil
}
return nil, errors.New("element kind not supported")
}
示例11: auth
func (d *Dialer) auth(addr n.Addr, conn *blend.Conn) error {
defer conn.Close()
if err := conn.Write(&HelloMsg{
SourceAddr: d.dialback,
TargetAddr: addr,
}); err != nil {
return err
}
msg, err := conn.Read()
if err != nil {
return err
}
switch q := msg.(type) {
case *WelcomeMsg:
return nil
case *RejectMsg:
return errors.NewError("dial rejected by remote (%s)", errors.Unpack(q.Err))
}
return errors.NewError("unknown welcome response")
}
示例12: Set
func (y YNameserver) Set(rr string) error {
r := y.X.Call("Set", rr)
return errors.Unpack(r[0])
}
示例13: Run
func (y YCmd) Run() error {
return errors.Unpack(y.Call("Run"))
}
示例14: Wait
func (y YCmd) Wait() error {
return errors.Unpack(y.Call("Wait"))
}
示例15: Rejoin
func (y YServer) Rejoin(addr string) error {
return errors.Unpack(y.X.Call("Rejoin", addr)[0])
}