// Copyright 2015 Sam Whited.
// Use of this source code is governed by the BSD 2-clause license that can be
// found in the LICENSE file.
type messageType int
// A NormalMessage is a standalone message that is sent outside the context of
// a one-to-one conversation or groupchat, and to which it is expected that
// the recipient will reply. Typically a receiving client will present a
// message of type "normal" in an interface that enables the recipient to
// reply, but without a conversation history.
NormalMessage messageType = iota
// ChatMessage represents a message sent in the context of a one-to-one chat
// session. Typically an interactive client will present a message of type
// "chat" in an interface that enables one-to-one chat between the two
// parties, including an appropriate conversation history.
// An ErrorMessage is generated by an entity that experiences an error when
// processing a message received from another entity.
// A GroupChatMessage is sent in the context of a multi-user chat environment.
// Typically a receiving client will present a message of type "groupchat" in
// an interface that enables many-to-many chat between the parties, including
// a roster of parties in the chatroom and an appropriate conversation
// A HeadlineMessage provides an alert, a notification, or other transient
// information to which no reply is expected (e.g., news headlines, sports
// updates, near-real-time market data, or syndicated content). Because no
// reply to the message is expected, typically a receiving client will present
// a message of type "headline" in an interface that appropriately
// differentiates the message from standalone messages, chat messages, and
// groupchat messages (e.g., by not providing the recipient with the ability
// to reply).
type presenceType int
// NoTypePresence is a special type that indicates that a stanza is a presence
// stanza without a defined type (indicating availability on the network).
NoTypePresence presenceType = iota
// An ErrorPresence indicates that an error has occurred regarding processing
// of a previously sent presence stanza; if the presence stanza is of type
// "error", it MUST include an <error/> child element
ErrorPresence presenceType = iota
// A ProbePresence is a request for an entity's current presence. It should
// generally only be generated and sent by servers on behalf of a user.
// A SubscribePresence is sent when the sender wishes to subscribe to the
// recipient's presence.
// A SubscribedPresence indicates that the sender has allowed the recipient to
// receive future presence broadcasts.
// An UnavailablePresence indicates that the sender is no longer available for
// An UnsubscribePresence indicates that the sender is unsubscribing from the
// receiver's presence.
// An UnsubscribedPresence indicates that the subscription request has been
// denied, or a previously granted subscription has been revoked.
type iqType int
// A GetIQ is used to query another entity for information.
GetIQ iqType = iota
// A SetIQ is used to provide data to another entity, set new values, replace
// existing values, and other such operations.
// A ResultIQ is sent in response to a successful GetIQ or SetIQ stanza.
// An ErrorIQ is sent to report that an error occured during the delivery or
// processing of a GetIQ or SetIQ.