LmMessage

LmMessage — A message is built up like a tree of message nodes.

Synopsis




                    LmMessage;
enum                LmMessageType;
enum                LmMessageSubType;
LmMessage*          lm_message_new                      (const gchar *to,
                                                         LmMessageType type);
LmMessage*          lm_message_new_with_sub_type        (const gchar *to,
                                                         LmMessageType type,
                                                         LmMessageSubType sub_type);
LmMessageType       lm_message_get_type                 (LmMessage *message);
LmMessageSubType    lm_message_get_sub_type             (LmMessage *message);
LmMessageNode*      lm_message_get_node                 (LmMessage *message);
LmMessage*          lm_message_ref                      (LmMessage *message);
void                lm_message_unref                    (LmMessage *message);

Description

Represents a message that can be sent with lm_connection_send(), lm_connection_send_with_reply() or lm_connection_send_with_reply_and_block(). Either use lm_message_new() or lm_message_new_with_subtype() to create a message. You need to call lm_message_unref() when are finished with it.

Details

LmMessage

typedef struct {
	LmMessageNode *node;

	LmMessagePriv *priv;
} LmMessage;

Struct


enum LmMessageType

typedef enum {
	LM_MESSAGE_TYPE_MESSAGE,
	LM_MESSAGE_TYPE_PRESENCE,
	LM_MESSAGE_TYPE_IQ,
	LM_MESSAGE_TYPE_STREAM,
	LM_MESSAGE_TYPE_STREAM_ERROR,
	LM_MESSAGE_TYPE_STREAM_FEATURES,
	LM_MESSAGE_TYPE_AUTH,
	LM_MESSAGE_TYPE_CHALLENGE,
	LM_MESSAGE_TYPE_RESPONSE,
	LM_MESSAGE_TYPE_SUCCESS,
	LM_MESSAGE_TYPE_FAILURE,
	LM_MESSAGE_TYPE_PROCEED,
	LM_MESSAGE_TYPE_STARTTLS,
	LM_MESSAGE_TYPE_UNKNOWN
} LmMessageType;

Describes what type of message a message is. This maps directly to top level elements in the jabber protocol.

LM_MESSAGE_TYPE_MESSAGE a message, <message></message>
LM_MESSAGE_TYPE_PRESENCE a presence element, <presence></presence>
LM_MESSAGE_TYPE_IQ an info/query element, <iq></iq>
LM_MESSAGE_TYPE_STREAM the stream:stream element, you probably don't need to create a message of this type.
LM_MESSAGE_TYPE_STREAM_ERROR a stream:error element
LM_MESSAGE_TYPE_STREAM_FEATURES
LM_MESSAGE_TYPE_AUTH
LM_MESSAGE_TYPE_CHALLENGE
LM_MESSAGE_TYPE_RESPONSE
LM_MESSAGE_TYPE_SUCCESS
LM_MESSAGE_TYPE_FAILURE
LM_MESSAGE_TYPE_PROCEED
LM_MESSAGE_TYPE_STARTTLS
LM_MESSAGE_TYPE_UNKNOWN incoming message is of some unknown type.

enum LmMessageSubType

typedef enum {
        LM_MESSAGE_SUB_TYPE_NOT_SET = -10,
	LM_MESSAGE_SUB_TYPE_AVAILABLE = -1,
	LM_MESSAGE_SUB_TYPE_NORMAL = 0,
	LM_MESSAGE_SUB_TYPE_CHAT,
        LM_MESSAGE_SUB_TYPE_GROUPCHAT,
        LM_MESSAGE_SUB_TYPE_HEADLINE,
        LM_MESSAGE_SUB_TYPE_UNAVAILABLE,
        LM_MESSAGE_SUB_TYPE_PROBE,
        LM_MESSAGE_SUB_TYPE_SUBSCRIBE,
        LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE,
        LM_MESSAGE_SUB_TYPE_SUBSCRIBED,
        LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED,
	LM_MESSAGE_SUB_TYPE_GET,
	LM_MESSAGE_SUB_TYPE_SET,
	LM_MESSAGE_SUB_TYPE_RESULT,
	LM_MESSAGE_SUB_TYPE_ERROR
} LmMessageSubType;

Describes the sub type of a message. This is equal to the "type" attribute in the jabber protocol. What sub type a message can have is depending on the type of the message.

LM_MESSAGE_SUB_TYPE_NOT_SET the default. No "type" attribute will be sent.
LM_MESSAGE_SUB_TYPE_AVAILABLE presence is available, applies to message type "presence"
LM_MESSAGE_SUB_TYPE_NORMAL
LM_MESSAGE_SUB_TYPE_CHAT message is a chat message, applies to message type "message"
LM_MESSAGE_SUB_TYPE_GROUPCHAT message is a group chat message, applies to message type "message"
LM_MESSAGE_SUB_TYPE_HEADLINE message is a headline message, applies to message type "message"
LM_MESSAGE_SUB_TYPE_UNAVAILABLE presence is unavailable, applies to message type "presence"
LM_MESSAGE_SUB_TYPE_PROBE a probe presence, applies to message type "presence"
LM_MESSAGE_SUB_TYPE_SUBSCRIBE try to subscribe to another jids presence, applies to message type "presence"
LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE unsubscribes from another jids presence, applies to message type "presence"
LM_MESSAGE_SUB_TYPE_SUBSCRIBED reply from a subscribe message, informs that the subscription was successful. Applies to message type "presence"
LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED reply from subscribe or unsubscribe message. If it's a reply from a subscribe message it notifies that the subscription failed. Applies to message type "presence"
LM_MESSAGE_SUB_TYPE_GET used to get information from an IQ query, applies to message type "iq"
LM_MESSAGE_SUB_TYPE_SET used to set information in a IQ call, applised to message type "iq"
LM_MESSAGE_SUB_TYPE_RESULT message is an IQ reply, applies to message type "iq"
LM_MESSAGE_SUB_TYPE_ERROR messages is an error, applies to all message types.

lm_message_new ()

LmMessage*          lm_message_new                      (const gchar *to,
                                                         LmMessageType type);

Creates a new LmMessage which can be sent with lm_connection_send() or lm_connection_send_with_reply(). If to is NULL the message is sent to the server. The returned message should be unreferenced with lm_message_unref() when caller is finished with it.

to : receipient jid
type : message type
Returns : a newly created LmMessage

lm_message_new_with_sub_type ()

LmMessage*          lm_message_new_with_sub_type        (const gchar *to,
                                                         LmMessageType type,
                                                         LmMessageSubType sub_type);

Creates a new LmMessage with sub type set. See lm_message_new() for more information.

to : receipient jid
type : message type
sub_type : message sub type
Returns : a newly created LmMessage

lm_message_get_type ()

LmMessageType       lm_message_get_type                 (LmMessage *message);

Fetches the type of message.

message : an LmMessage
Returns : the message type

lm_message_get_sub_type ()

LmMessageSubType    lm_message_get_sub_type             (LmMessage *message);

Fetches the sub type of message.

message :
Returns : the message sub type

lm_message_get_node ()

LmMessageNode*      lm_message_get_node                 (LmMessage *message);

Retrieves the root node from message.

message : an LmMessage
Returns : an LmMessageNode

lm_message_ref ()

LmMessage*          lm_message_ref                      (LmMessage *message);

Adds a reference to message.

message : an LmMessage
Returns : the message

lm_message_unref ()

void                lm_message_unref                    (LmMessage *message);

Removes a reference from message. When no more references are present the message is freed.

message : an LmMessage