Delta Chat Core C-API
dc_chat.h
1 #ifndef __DC_CHAT_H__
2 #define __DC_CHAT_H__
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 
8 /* values for the chats.blocked database field */
9 #define DC_CHAT_NOT_BLOCKED 0
10 #define DC_CHAT_MANUALLY_BLOCKED 1
11 #define DC_CHAT_DEADDROP_BLOCKED 2
12 
13 
15 struct _dc_chat
16 {
18  uint32_t magic;
19  uint32_t id;
20  int type;
21  char* name;
22  int archived;
23  dc_context_t* context;
24  char* grpid;
25  int blocked;
26  dc_param_t* param;
27 };
28 
29 int dc_chat_load_from_db (dc_chat_t*, uint32_t id);
30 int dc_chat_update_param (dc_chat_t*);
31 
32 #define DC_CHAT_TYPE_IS_MULTI(a) ((a)==DC_CHAT_TYPE_GROUP || (a)==DC_CHAT_TYPE_VERIFIED_GROUP)
33 #define DC_CHAT_TYPE_CAN_SEND(a) ((a)==DC_CHAT_TYPE_SINGLE || (a)==DC_CHAT_TYPE_GROUP || (a)==DC_CHAT_TYPE_VERIFIED_GROUP)
34 
35 #define DC_CHAT_PREFIX "Chat:" /* you MUST NOT modify this or the following strings */
36 
37 
38 // Context functions to work with chats
39 int dc_add_to_chat_contacts_table (dc_context_t*, uint32_t chat_id, uint32_t contact_id);
40 int dc_is_contact_in_chat (dc_context_t*, uint32_t chat_id, uint32_t contact_id);
41 size_t dc_get_chat_cnt (dc_context_t*);
42 uint32_t dc_get_chat_id_by_grpid (dc_context_t*, const char* grpid, int* ret_blocked, int* ret_verified);
43 void dc_create_or_lookup_nchat_by_contact_id (dc_context_t*, uint32_t contact_id, int create_blocked, uint32_t* ret_chat_id, int* ret_chat_blocked);
44 void dc_lookup_real_nchat_by_contact_id (dc_context_t*, uint32_t contact_id, uint32_t* ret_chat_id, int* ret_chat_blocked);
45 void dc_unarchive_chat (dc_context_t*, uint32_t chat_id);
46 void dc_block_chat (dc_context_t*, uint32_t chat_id, int new_blocking);
47 void dc_unblock_chat (dc_context_t*, uint32_t chat_id);
48 void dc_add_device_msg (dc_context_t*, uint32_t chat_id, const char* text);
49 int dc_get_chat_contact_cnt (dc_context_t*, uint32_t chat_id);
50 int dc_is_group_explicitly_left (dc_context_t*, const char* grpid);
51 void dc_set_group_explicitly_left (dc_context_t*, const char* grpid);
52 
53 #define DC_FROM_HANDSHAKE 0x01
54 int dc_add_contact_to_chat_ex (dc_context_t*, uint32_t chat_id, uint32_t contact_id, int flags);
55 
56 
57 #ifdef __cplusplus
58 } /* /extern "C" */
59 #endif
60 #endif /* __DC_CHAT_H__ */
An object representing a single account.
An object representing a single chat in memory.