aboutsummaryrefslogtreecommitdiff
path: root/src/event.h
blob: d89e45367da2f5b8c86965cb2dbba3484559c2c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
   This file is part of GNUnet.
   Copyright (C) 2021--2022 GNUnet e.V.

   GNUnet is free software: you can redistribute it and/or modify it
   under the terms of the GNU Affero General Public License as published
   by the Free Software Foundation, either version 3 of the License,
   or (at your option) any later version.

   GNUnet is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Affero General Public License for more details.

   You should have received a copy of the GNU Affero General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.

   SPDX-License-Identifier: AGPL3.0-or-later
 */
/*
 * @author Tobias Frisch
 * @file event.h
 */

#ifndef EVENT_H_
#define EVENT_H_

#include "application.h"

/**
 * Event for the UI to be called whenever the application
 * causes any issue in back-end throwing a warning. This
 * might be specific to a given context or none if its
 * a general warning.
 *
 * @param app Messenger application
 * @param context Chat context or NULL
 * @param msg Warning message
 */
void
event_handle_warning(MESSENGER_Application *app,
		     struct GNUNET_CHAT_Context *context,
		     const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever the accounts
 * might add or remove an account from their list.
 *
 * @param app Messenger application
 */
void
event_refresh_accounts(MESSENGER_Application *app);

/**
 * Event for the UI to be called whenever the user
 * updates their information.
 *
 * @param app Messenger application
 */
void
event_update_profile(MESSENGER_Application *app);

/**
 * Event for the UI to be called whenever a the user
 * joins or leaves a chat (context) via message.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Join/Leave message
 */
void
event_update_chats(MESSENGER_Application *app,
		   struct GNUNET_CHAT_Context *context,
		   const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever a contact
 * joins or leaves a given context via message.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Join/Leave message
 */
void
event_presence_contact(MESSENGER_Application *app,
		       struct GNUNET_CHAT_Context *context,
		       const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever a contact
 * updates their information with a message in a
 * given context.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Update message
 */
void
event_update_contacts(MESSENGER_Application *app,
		      struct GNUNET_CHAT_Context *context,
		      const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever an invitation
 * message gets received in a given context.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Invitation message
 */
void
event_invitation(MESSENGER_Application *app,
		 struct GNUNET_CHAT_Context *context,
		 const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever a content
 * message (text or file) gets received in a given
 * context.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Message
 */
void
event_receive_message(MESSENGER_Application *app,
		      struct GNUNET_CHAT_Context *context,
		      const struct GNUNET_CHAT_Message *msg);

/**
 * Event for the UI to be called whenever a message
 * gets deleted in a given context.
 *
 * @param app Messenger application
 * @param context Chat context
 * @param msg Delete message
 */
void
event_delete_message(MESSENGER_Application *app,
		     struct GNUNET_CHAT_Context *context,
		     const struct GNUNET_CHAT_Message *msg);

#endif /* EVENT_H_ */