Coverage Report

Created: 2024-01-26 01:52

/work/toxcore/events/conference_peer_list_changed.c
Line
Count
Source (jump to first uncovered line)
1
/* SPDX-License-Identifier: GPL-3.0-or-later
2
 * Copyright © 2023-2024 The TokTok team.
3
 */
4
5
#include "events_alloc.h"
6
7
#include <assert.h>
8
9
#include "../bin_pack.h"
10
#include "../bin_unpack.h"
11
#include "../ccompat.h"
12
#include "../mem.h"
13
#include "../tox.h"
14
#include "../tox_events.h"
15
16
17
/*****************************************************
18
 *
19
 * :: struct and accessors
20
 *
21
 *****************************************************/
22
23
24
struct Tox_Event_Conference_Peer_List_Changed {
25
    uint32_t conference_number;
26
};
27
28
non_null()
29
static void tox_event_conference_peer_list_changed_set_conference_number(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed,
30
        uint32_t conference_number)
31
642
{
32
642
    assert(conference_peer_list_changed != nullptr);
33
642
    conference_peer_list_changed->conference_number = conference_number;
34
642
}
35
uint32_t tox_event_conference_peer_list_changed_get_conference_number(const Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed)
36
12
{
37
12
    assert(conference_peer_list_changed != nullptr);
38
12
    return conference_peer_list_changed->conference_number;
39
12
}
40
41
non_null()
42
static void tox_event_conference_peer_list_changed_construct(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed)
43
763
{
44
763
    *conference_peer_list_changed = (Tox_Event_Conference_Peer_List_Changed) {
45
763
        0
46
763
    };
47
763
}
48
non_null()
49
static void tox_event_conference_peer_list_changed_destruct(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed, const Memory *mem)
50
761
{
51
761
    return;
52
761
}
53
54
bool tox_event_conference_peer_list_changed_pack(
55
    const Tox_Event_Conference_Peer_List_Changed *event, Bin_Pack *bp)
56
120
{
57
120
    return bin_pack_u32(bp, event->conference_number);
58
120
}
59
60
non_null()
61
static bool tox_event_conference_peer_list_changed_unpack_into(
62
    Tox_Event_Conference_Peer_List_Changed *event, Bin_Unpack *bu)
63
121
{
64
121
    assert(event != nullptr);
65
121
    return bin_unpack_u32(bu, &event->conference_number);
66
121
}
67
68
69
/*****************************************************
70
 *
71
 * :: new/free/add/get/size/unpack
72
 *
73
 *****************************************************/
74
75
const Tox_Event_Conference_Peer_List_Changed *tox_event_get_conference_peer_list_changed(const Tox_Event *event)
76
0
{
77
0
    return event->type == TOX_EVENT_CONFERENCE_PEER_LIST_CHANGED ? event->data.conference_peer_list_changed : nullptr;
78
0
}
79
80
Tox_Event_Conference_Peer_List_Changed *tox_event_conference_peer_list_changed_new(const Memory *mem)
81
766
{
82
766
    Tox_Event_Conference_Peer_List_Changed *const conference_peer_list_changed =
83
766
        (Tox_Event_Conference_Peer_List_Changed *)mem_alloc(mem, sizeof(Tox_Event_Conference_Peer_List_Changed));
84
85
766
    if (conference_peer_list_changed == nullptr) {
86
3
        return nullptr;
87
3
    }
88
89
763
    tox_event_conference_peer_list_changed_construct(conference_peer_list_changed);
90
763
    return conference_peer_list_changed;
91
766
}
92
93
void tox_event_conference_peer_list_changed_free(Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed, const Memory *mem)
94
762
{
95
762
    if (conference_peer_list_changed != nullptr) {
96
761
        tox_event_conference_peer_list_changed_destruct(conference_peer_list_changed, mem);
97
761
    }
98
762
    mem_delete(mem, conference_peer_list_changed);
99
762
}
100
101
non_null()
102
static Tox_Event_Conference_Peer_List_Changed *tox_events_add_conference_peer_list_changed(Tox_Events *events, const Memory *mem)
103
644
{
104
644
    Tox_Event_Conference_Peer_List_Changed *const conference_peer_list_changed = tox_event_conference_peer_list_changed_new(mem);
105
106
644
    if (conference_peer_list_changed == nullptr) {
107
2
        return nullptr;
108
2
    }
109
110
642
    Tox_Event event;
111
642
    event.type = TOX_EVENT_CONFERENCE_PEER_LIST_CHANGED;
112
642
    event.data.conference_peer_list_changed = conference_peer_list_changed;
113
114
642
    tox_events_add(events, &event);
115
642
    return conference_peer_list_changed;
116
644
}
117
118
bool tox_event_conference_peer_list_changed_unpack(
119
    Tox_Event_Conference_Peer_List_Changed **event, Bin_Unpack *bu, const Memory *mem)
120
122
{
121
122
    assert(event != nullptr);
122
122
    assert(*event == nullptr);
123
122
    *event = tox_event_conference_peer_list_changed_new(mem);
124
125
122
    if (*event == nullptr) {
126
1
        return false;
127
1
    }
128
129
121
    return tox_event_conference_peer_list_changed_unpack_into(*event, bu);
130
122
}
131
132
non_null()
133
static Tox_Event_Conference_Peer_List_Changed *tox_event_conference_peer_list_changed_alloc(void *user_data)
134
644
{
135
644
    Tox_Events_State *state = tox_events_alloc(user_data);
136
644
    assert(state != nullptr);
137
138
644
    if (state->events == nullptr) {
139
0
        return nullptr;
140
0
    }
141
142
644
    Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed = tox_events_add_conference_peer_list_changed(state->events, state->mem);
143
144
644
    if (conference_peer_list_changed == nullptr) {
145
2
        state->error = TOX_ERR_EVENTS_ITERATE_MALLOC;
146
2
        return nullptr;
147
2
    }
148
149
642
    return conference_peer_list_changed;
150
644
}
151
152
153
/*****************************************************
154
 *
155
 * :: event handler
156
 *
157
 *****************************************************/
158
159
160
void tox_events_handle_conference_peer_list_changed(Tox *tox, uint32_t conference_number,
161
        void *user_data)
162
644
{
163
644
    Tox_Event_Conference_Peer_List_Changed *conference_peer_list_changed = tox_event_conference_peer_list_changed_alloc(user_data);
164
165
644
    if (conference_peer_list_changed == nullptr) {
166
2
        return;
167
2
    }
168
169
642
    tox_event_conference_peer_list_changed_set_conference_number(conference_peer_list_changed, conference_number);
170
642
}