#ifndef BAREV_XML_H #define BAREV_XML_H /* String-based XML helpers with zero external dependencies. */ #include int barev_xml_escape(const char *in, char *out, size_t out_size); int barev_build_stream_header(const char *from_jid, const char *to_jid, char *out, size_t out_size); int barev_build_stream_end(char *out, size_t out_size); int barev_build_presence(const char *to_jid, int status, const char *status_msg, char *out, size_t out_size); int barev_build_message(const char *from_jid, const char *to_jid, const char *body, char *out, size_t out_size); int barev_build_ping(const char *from_jid, const char *to_jid, const char *ping_id, char *out, size_t out_size); int barev_build_pong(const char *to_jid, const char *ping_id, char *out, size_t out_size); int barev_build_chatstate(const char *to_jid, const char *state_name, char *out, size_t out_size); int barev_build_vcard_get(const char *to_jid, const char *id, char *out, size_t out_size); int barev_build_vcard_result(const char *to_jid, const char *id, const char *vcard_inner, char *out, size_t out_size); int barev_extract_attribute(const char *xml, const char *attr_name, char *out, size_t out_size); int barev_extract_element_content(const char *xml, const char *element, char *out, size_t out_size); #endif