-
Notifications
You must be signed in to change notification settings - Fork 1
/
chat.go
39 lines (31 loc) · 908 Bytes
/
chat.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package google
import "code.google.com/p/rsc/xmpp"
type ChatID struct {
ID string
Email string
Status xmpp.Status
StatusMsg string
}
type ChatSend struct {
ID *ChatID
Msg xmpp.Chat
}
func (g *Client) ChatRecv(cid *ChatID) (*xmpp.Chat, error) {
var msg xmpp.Chat
if err := g.client.Call("goog.ChatRecv", cid, &msg); err != nil {
return nil, err
}
return &msg, nil
}
func (g *Client) ChatStatus(cid *ChatID) error {
return g.client.Call("goog.ChatRecv", cid, &Empty{})
}
func (g *Client) ChatSend(cid *ChatID, msg *xmpp.Chat) error {
return g.client.Call("goog.ChatSend", &ChatSend{cid, *msg}, &Empty{})
}
func (g *Client) ChatRoster(cid *ChatID) error {
return g.client.Call("goog.ChatRoster", cid, &Empty{})
}