go-xmpp/presence.go

43 lines
942 B
Go
Raw Normal View History

package xmpp
import "encoding/xml"
2018-01-13 20:50:17 +03:00
// ============================================================================
// Presence Packet
type Presence struct {
XMLName xml.Name `xml:"presence"`
2018-01-13 19:54:07 +03:00
PacketAttrs
Show string `xml:"show,omitempty"` // away, chat, dnd, xa
Status string `xml:"status,omitempty"`
Priority string `xml:"priority,omitempty"`
Error Err `xml:"error,omitempty"`
}
2018-01-13 20:50:17 +03:00
func (Presence) Name() string {
return "presence"
}
2018-01-25 13:00:20 +03:00
func NewPresence(from, to, id, lang string) Presence {
return Presence{
XMLName: xml.Name{Local: "presence"},
PacketAttrs: PacketAttrs{
Id: id,
From: from,
To: to,
Lang: lang,
},
}
}
2018-01-13 20:50:17 +03:00
type presenceDecoder struct{}
var presence presenceDecoder
func (presenceDecoder) decode(p *xml.Decoder, se xml.StartElement) (Presence, error) {
var packet Presence
err := p.DecodeElement(&packet, &se)
2018-01-23 11:08:21 +03:00
// TODO Add default presence type (when omitted)
2018-01-13 20:50:17 +03:00
return packet, err
}