diff options
Diffstat (limited to 'src/core/chat-protocols.h')
-rw-r--r-- | src/core/chat-protocols.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/core/chat-protocols.h b/src/core/chat-protocols.h new file mode 100644 index 00000000..42b413cf --- /dev/null +++ b/src/core/chat-protocols.h @@ -0,0 +1,29 @@ +#ifndef __CHAT_PROTOCOLS_H +#define __CHAT_PROTOCOLS_H + +#define PROTO_CHECK_CAST(object, cast, type_field, id) \ + ((cast *) chat_protocol_check_cast(object, \ + offsetof(cast, type_field), id)) +void *chat_protocol_check_cast(void *object, int type_pos, const char *id); + +/* Register new chat protocol. */ +void chat_protocol_register(const char *name, + const char *fullname, + const char *chatnet); + +/* Unregister chat protocol. */ +void chat_protocol_unregister(const char *name); + +/* Return the ID for the specified chat protocol. */ +int chat_protocol_lookup(const char *name); +/* Return the name for the specified chat protocol ID. */ +const char *chat_protocol_get_name(int id); +/* Return the full name for the specified chat protocol ID. */ +const char *chat_protocol_get_fullname(int id); +/* Return the chatnet identifier name for the specified chat protocol ID. */ +const char *chat_protocol_get_chatnet(int id); + +void chat_protocols_init(void); +void chat_protocols_deinit(void); + +#endif |