38 lines
596 B
Go
38 lines
596 B
Go
package queue
|
|
|
|
import "errors"
|
|
|
|
type RPCReq struct {
|
|
method string
|
|
replyChan chan interface{}
|
|
}
|
|
|
|
type RPCResponse string
|
|
|
|
type Status struct {
|
|
queueChan chan RPCReq
|
|
}
|
|
|
|
type RPCArgs struct{}
|
|
|
|
func (s *Status) Downloads(_ RPCArgs, reply *RPCResponse) error {
|
|
replyChan := make(chan interface{})
|
|
req := RPCReq{
|
|
method: "download_status",
|
|
replyChan: replyChan,
|
|
}
|
|
|
|
s.queueChan <- req
|
|
qReply := <-replyChan
|
|
|
|
switch qReply.(type) {
|
|
case string:
|
|
*reply = RPCResponse(qReply.(string))
|
|
break
|
|
default:
|
|
return errors.New("error: unexpected return value")
|
|
break
|
|
}
|
|
|
|
return nil
|
|
}
|