Delta Chat Core C-API
src
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
time_t gossiped_timestamp;
28
int
is_sending_locations;
29
};
30
31
int
dc_chat_load_from_db (
dc_chat_t
*, uint32_t
id
);
32
int
dc_chat_update_param (
dc_chat_t
*);
33
34
#define DC_CHAT_TYPE_IS_MULTI(a) ((a)==DC_CHAT_TYPE_GROUP || (a)==DC_CHAT_TYPE_VERIFIED_GROUP)
35
#define DC_CHAT_TYPE_CAN_SEND(a) ((a)==DC_CHAT_TYPE_SINGLE || (a)==DC_CHAT_TYPE_GROUP || (a)==DC_CHAT_TYPE_VERIFIED_GROUP)
36
37
#define DC_CHAT_PREFIX "Chat:"
/* you MUST NOT modify this or the following strings */
38
39
40
// Context functions to work with chats
41
int
dc_add_to_chat_contacts_table (
dc_context_t
*, uint32_t chat_id, uint32_t contact_id);
42
int
dc_is_contact_in_chat
(
dc_context_t
*, uint32_t chat_id, uint32_t contact_id);
43
size_t
dc_get_chat_cnt (
dc_context_t
*);
44
uint32_t dc_get_chat_id_by_grpid (
dc_context_t
*,
const
char
* grpid,
int
* ret_blocked,
int
* ret_verified);
45
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);
46
void
dc_lookup_real_nchat_by_contact_id (
dc_context_t
*, uint32_t contact_id, uint32_t* ret_chat_id,
int
* ret_chat_blocked);
47
void
dc_unarchive_chat (
dc_context_t
*, uint32_t chat_id);
48
void
dc_block_chat (
dc_context_t
*, uint32_t chat_id,
int
new_blocking);
49
void
dc_unblock_chat (
dc_context_t
*, uint32_t chat_id);
50
void
dc_add_device_msg (
dc_context_t
*, uint32_t chat_id,
const
char
* text);
51
int
dc_get_chat_contact_cnt (
dc_context_t
*, uint32_t chat_id);
52
int
dc_is_group_explicitly_left (
dc_context_t
*,
const
char
* grpid);
53
void
dc_set_group_explicitly_left (
dc_context_t
*,
const
char
* grpid);
54
55
#define DC_FROM_HANDSHAKE 0x01
56
int
dc_add_contact_to_chat_ex (
dc_context_t
*, uint32_t chat_id, uint32_t contact_id,
int
flags);
57
58
void
dc_reset_gossiped_timestamp (
dc_context_t
*, uint32_t chat_id);
59
void
dc_set_gossiped_timestamp (
dc_context_t
*, uint32_t chat_id, time_t);
60
61
62
#ifdef __cplusplus
63
}
/* /extern "C" */
64
#endif
65
#endif
/* __DC_CHAT_H__ */
dc_chat_t
dc_context_t
dc_context_t::dc_is_contact_in_chat
int dc_is_contact_in_chat(dc_context_t *context, uint32_t chat_id, uint32_t contact_id)
Check if a given contact ID is a member of a group chat.
Definition:
dc_chat.c:1960
Generated by
1.8.17