#import <ObjFW/ObjFW.h>
/**
* \brief A class describing a XMPP Stanza
*/
@interface XMPPStanza: OFXMLElement
{
/**
* The value of the stanza's from attribute
*/
OFString *from;
/**
* The value of the stanza's to attribute
*/
OFString *to;
/**
* The value of the stanza's type attribute
*/
OFString *type;
/**
* The value of the stanza's id attribute
*/
OFString *ID;
}
@property (copy) OFString *from;
@property (copy) OFString *to;
@property (copy) OFString *type;
@property (copy) OFString *ID;
/**
* Creates a new XMPPStanza with a certain name
*
* \param name The stanza's name (one of iq, message or presence)
* \return A new autoreleased XMPPStanza
*/
+ stanzaWithName: (OFString*)name;
/**
* Creates a new XMPPStanza with a certain name and type
*
* \param name The stanza's name (one of iq, message or presence)
* \param type The value for the stanza's type attribute
* \return A new autoreleased XMPPStanza
*/
+ stanzaWithName: (OFString*)name
type: (OFString*)type;
/**
* Creates a new XMPPStanza with a certain name and id
*
* \param name The stanza's name (one of iq, message or presence)
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPStanza
*/
+ stanzaWithName: (OFString*)name
ID: (OFString*)ID;
/**
* Creates a new XMPPStanza with a certain name, type and id
*
* \param name The stanza's name (one of iq, message or presence)
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPStanza
*/
+ stanzaWithName: (OFString*)name
type: (OFString*)type
ID: (OFString*)ID;
/**
* Creates a new XMPPStanza from a OFXMLElement
*
* \param elem The element to base the XMPPStanza on
* \return A new autoreleased XMPPStanza
*/
+ stanzaWithElement: (OFXMLElement*)elem;
/**
* Initializes an already allocated XMPPStanza with a certain name
*
* \param name The stanza's name (one of iq, message or presence)
* \return A initialized XMPPStanza
*/
- initWithName: (OFString*)name;
/**
* Initializes an already allocated XMPPStanza with a certain name and type
*
* \param name The stanza's name (one of iq, message or presence)
* \param type The value for the stanza's type attribute
* \return A initialized XMPPStanza
*/
- initWithName: (OFString*)name
type: (OFString*)type;
/**
* Initializes an already allocated XMPPStanza with a certain name and id
*
* \param name The stanza's name (one of iq, message or presence)
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPStanza
*/
- initWithName: (OFString*)name
ID: (OFString*)ID;
/**
* Initializes an already allocated XMPPStanza with a certain name, type and id
*
* \param name The stanza's name (one of iq, message or presence)
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPStanza
*/
- initWithName: (OFString*)name
type: (OFString*)type
ID: (OFString*)ID;
/**
* Initializes an already allocated XMPPStanza based on a OFXMLElement
*
* \param elem The element to base the XMPPStanza on
* \return A initialized XMPPStanza
*/
- initWithElement: (OFXMLElement*)elem;
@end
/**
* \brief A class describing a IQ stanza
*/
@interface XMPPIQ: XMPPStanza
{
}
/**
* Creates a new XMPPIQ with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPIQ
*/
+ IQWithType: (OFString*)type
ID: (OFString*)ID;
/**
* Initializes an already allocated XMPPIQ with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPIQ
*/
- initWithType: (OFString*)type
ID: (OFString*)ID;
@end
/**
* \brief A class describing a message stanza
*/
@interface XMPPMessage: XMPPStanza
{
}
/**
* Creates a new XMPPMessage
*
* \return A new autoreleased XMPPMessage
*/
+ message;
/**
* Creates a new XMPPMessage with a certain id
*
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPMessage
*/
+ messageWithID: (OFString*)ID;
/**
* Creates a new XMPPMessage with a certain type
*
* \param type The value for the stanza's type attribute
* \return A new autoreleased XMPPMessage
*/
+ messageWithType: (OFString*)type;
/**
* Creates a new XMPPMessage with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPMessage
*/
+ messageWithType: (OFString*)type
ID: (OFString*)ID;
/**
* Initializes an already allocated XMPPMessage
*
* \return A initialized XMPPMessage
*/
- init;
/**
* Initializes an already allocated XMPPMessage with a certain id
*
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPMessage
*/
- initWithID: (OFString*)ID;
/**
* Initializes an already allocated XMPPMessage with a certain type
*
* \param type The value for the stanza's type attribute
* \return A initialized XMPPMessage
*/
- initWithType: (OFString*)type;
/**
* Initializes an already allocated XMPPMessage with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPMessage
*/
- initWithType: (OFString*)type
ID: (OFString*)ID;
/**
* Adds a body element to the XMPPMessage
*
* \param body The text content of the body element
*/
- (void)addBody: (OFString*)body;
@end
/**
* \brief A class describing a presence stanza
*/
@interface XMPPPresence: XMPPStanza
{
}
/**
* Creates a new XMPPPresence
*
* \return A new autoreleased XMPPPresence
*/
+ presence;
/**
* Creates a new XMPPPresence with a certain id
*
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPPresence
*/
+ presenceWithID: (OFString*)ID;
/**
* Creates a new XMPPPresence with a certain type
*
* \param type The value for the stanza's type attribute
* \return A new autoreleased XMPPPresence
*/
+ presenceWithType: (OFString*)type;
/**
* Creates a new XMPPPresence with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A new autoreleased XMPPPresence
*/
+ presenceWithType: (OFString*)type
ID: (OFString*)ID;
/**
* Initializes an already allocated XMPPPresence
*
* \return A initialized XMPPPresence
*/
- init;
/**
* Initializes an already allocated XMPPPresence with a certain id
*
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPPresence
*/
- initWithID: (OFString*)ID;
/**
* Initializes an already allocated XMPPPresence with a certain type
*
* \param type The value for the stanza's type attribute
* \return A initialized XMPPPresence
*/
- initWithType: (OFString*)type;
/**
* Initializes an already allocated XMPPPresence with a certain type and id
*
* \param type The value for the stanza's type attribute
* \param ID The value for the stanza's id attribute
* \return A initialized XMPPPresence
*/
- initWithType: (OFString*)type
ID: (OFString*)ID;
/**
* Adds a show element to the presence stanza
*
* \param show The text content of the show element
*/
- (void)addShow: (OFString*)show;
/**
* Adds a status element to the presence stanza
*
* \param status The text content of the status element
*/
- (void)addStatus: (OFString*)status;
/**
* Adds a priority element to the presence stanza
*
* \param priority The text content of the priority element
*/
- (void)addPriority: (int8_t)priority;
@end