本文整理汇总了Golang中github.com/koding/kite/dnode.Partial类的典型用法代码示例。如果您正苦于以下问题:Golang Partial类的具体用法?Golang Partial怎么用?Golang Partial使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Partial类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Callback
// Callback is the callback, used to update the progress bar as remote.cache
// downloads
func (cb *CacheCallback) Callback(par *dnode.Partial) {
type Progress struct {
Progress int `json:progress`
Error kite.Error `json:error`
}
// TODO: Why is this an array from Klient? How can this be written cleaner?
ps := []Progress{{}}
par.MustUnmarshal(&ps)
p := ps[0]
cb.Log.Debug("CacheCallback Progress: %#v", p)
if p.Error.Message != "" {
cb.doneErr <- p.Error
}
cb.Bar.Set(p.Progress)
// TODO: Disable the callback here, so that it's impossible to double call
// the progress after competion - to avoid weird/bad UX and errors.
if p.Progress == 100 {
cb.doneErr <- nil
}
}
示例2: SetSize
func (s *Server) SetSize(d *dnode.Partial) {
args := d.MustSliceOfLength(2)
x := args[0].MustFloat64()
y := args[1].MustFloat64()
err := s.client.ResizeExecTTY(s.Session, int(y), int(x))
if err != nil {
fmt.Println("error resizing", err)
}
}
示例3: Input
// Input is called when some text is written to the terminal.
func (s *Server) Input(d *dnode.Partial) {
data := d.MustSliceOfLength(1)[0].MustString()
if s.inputHook != nil {
s.inputHook()
}
// There is no need to protect the Write() with a mutex because
// Kite Library guarantees that only one message is processed at a time.
s.in.Write([]byte(data))
}
示例4: newRequest
// newRequest returns a new *Request from the method and arguments passed.
func (c *Client) newRequest(method string, args *dnode.Partial) (*Request, func(interface{}, *Error)) {
// Parse dnode method arguments: [options]
var options callOptions
args.One().MustUnmarshal(&options)
// Notify the handlers registered with Kite.OnFirstRequest().
if _, ok := c.session.(*sockjsclient.WebsocketSession); !ok {
c.firstRequestHandlersNotified.Do(func() {
c.m.Lock()
c.Kite = options.Kite
c.m.Unlock()
c.LocalKite.callOnFirstRequestHandlers(c)
})
}
request := &Request{
ID: utils.RandomString(16),
Method: method,
Args: options.WithArgs,
LocalKite: c.LocalKite,
Client: c,
Auth: options.Auth,
Context: cache.NewMemory(),
}
// Call response callback function, send back our response
callFunc := func(result interface{}, err *Error) {
if options.ResponseCallback.Caller == nil {
return
}
// Only argument to the callback.
response := Response{
Result: result,
Error: err,
}
if err := options.ResponseCallback.Call(response); err != nil {
c.LocalKite.Log.Error(err.Error())
}
}
return request, callFunc
}
示例5: Output
func (r *termHandler) Output(d *dnode.Partial) {
data := d.MustSliceOfLength(1)[0].MustString()
r.output <- data
}
示例6: ControlSequence
// ControlSequence is called when a non-printable key is pressed on the terminal.
func (s *Server) ControlSequence(d *dnode.Partial) {
data := d.MustSliceOfLength(1)[0].MustString()
s.controlSequence.Write([]byte(data))
}
示例7: SetSize
func (s *Server) SetSize(d *dnode.Partial) {
args := d.MustSliceOfLength(2)
x := args[0].MustFloat64()
y := args[1].MustFloat64()
s.setSize(x, y)
}