Mon, 15 Aug 2022 02:39:09 -0500
Port PidginAddBuddyDialog to GTK4
Testing Done:
Compiled
Reviewed at https://reviews.imfreedom.org/r/1586/
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* Purple is the legal property of its developers, whose names are too numerous |
| 13201 | 2 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 3 | * source distribution. | |
| 4 | * | |
| 5 | * This program is free software; you can redistribute it and/or modify | |
| 6 | * it under the terms of the GNU General Public License as published by | |
| 7 | * the Free Software Foundation; either version 2 of the License, or | |
| 8 | * (at your option) any later version. | |
| 9 | * | |
| 10 | * This program is distributed in the hope that it will be useful, | |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 | * GNU General Public License for more details. | |
| 14 | * | |
| 15 | * You should have received a copy of the GNU General Public License | |
| 16 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
15884
diff
changeset
|
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 13201 | 18 | */ |
| 19 | #include "internal.h" | |
| 20 | ||
|
34570
ac513e5901eb
Rename circbuffer files to circularbuffer files to match the object name
Ankit Vani <a@nevitus.org>
parents:
34529
diff
changeset
|
21 | #include "circularbuffer.h" |
| 13201 | 22 | |
| 23 | #define DEFAULT_BUF_SIZE 256 | |
| 24 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
25 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
26 | * Structs |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
27 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
28 | typedef struct { |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
29 | /* A pointer to the starting address of our chunk of memory. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
30 | gchar *buffer; |
|
35056
97a1341f4601
Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents:
35055
diff
changeset
|
31 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
32 | /* The incremental amount to increase this buffer by when the buffer is not |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
33 | * big enough to hold incoming data, in bytes. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
34 | gsize growsize; |
|
35056
97a1341f4601
Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents:
35055
diff
changeset
|
35 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
36 | /* The length of this buffer, in bytes. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
37 | gsize buflen; |
|
35056
97a1341f4601
Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents:
35055
diff
changeset
|
38 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
39 | /* The number of bytes of this buffer that contain unread data. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
40 | gsize bufused; |
|
35056
97a1341f4601
Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents:
35055
diff
changeset
|
41 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
42 | /* A pointer to the next byte where new incoming data is buffered to. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
43 | gchar *input; |
|
35056
97a1341f4601
Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents:
35055
diff
changeset
|
44 | |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
45 | /* A pointer to the next byte of buffered data that should be read by the |
|
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40571
diff
changeset
|
46 | * consumer. */ |
|
35094
47964e26263e
Assorted whitespace fixes.
Mark Doliner <mark@kingant.net>
parents:
35085
diff
changeset
|
47 | gchar *output; |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
48 | } PurpleCircularBufferPrivate; |
|
15359
4317e3cb888e
[gaim-migrate @ 18088]
Evan Schoenberg <evands@pidgin.im>
parents:
15017
diff
changeset
|
49 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
50 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
51 | * Enums |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
52 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
53 | enum { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
54 | PROP_ZERO, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
55 | PROP_GROW_SIZE, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
56 | PROP_BUFFER_USED, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
57 | PROP_INPUT, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
58 | PROP_OUTPUT, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
59 | PROP_LAST, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
60 | }; |
| 13201 | 61 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
62 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
63 | * Globals |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
64 | *****************************************************************************/ |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
65 | static GParamSpec *properties[PROP_LAST]; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24505
diff
changeset
|
66 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
67 | G_DEFINE_TYPE_WITH_PRIVATE(PurpleCircularBuffer, purple_circular_buffer, |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
68 | G_TYPE_OBJECT); |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
69 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
70 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
71 | * Circular Buffer Implementation |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
72 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
73 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
74 | purple_circular_buffer_real_grow(PurpleCircularBuffer *buffer, gsize len) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
75 | PurpleCircularBufferPrivate *priv = NULL; |
|
34305
5804117fb298
Fix the rest of libpurple warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
27361
diff
changeset
|
76 | gsize in_offset = 0, out_offset = 0; |
|
5804117fb298
Fix the rest of libpurple warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
27361
diff
changeset
|
77 | gsize start_buflen; |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
78 | GObject *obj; |
| 13201 | 79 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
80 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
81 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
82 | start_buflen = priv->buflen; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
83 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
84 | while((priv->buflen - priv->bufused) < len) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
85 | priv->buflen += priv->growsize; |
| 13201 | 86 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
87 | if(priv->input != NULL) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
88 | in_offset = priv->input - priv->buffer; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
89 | out_offset = priv->output - priv->buffer; |
| 13201 | 90 | } |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
91 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
92 | priv->buffer = g_realloc(priv->buffer, priv->buflen); |
| 13201 | 93 | |
| 94 | /* adjust the fill and remove pointer locations */ | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
95 | if(priv->input == NULL) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
96 | priv->input = priv->output = priv->buffer; |
| 13201 | 97 | } else { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
98 | priv->input = priv->buffer + in_offset; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
99 | priv->output = priv->buffer + out_offset; |
| 13201 | 100 | } |
| 101 | ||
| 102 | /* If the fill pointer is wrapped to before the remove | |
| 103 | * pointer, we need to shift the data */ | |
|
25731
b9fd4a560a72
Backport 7829ec76bdb008583f8da54e238c2265a1140db2 (#8706 - Corruption in PurpleCircBuffer)
Daniel Atallah <datallah@pidgin.im>
parents:
24505
diff
changeset
|
104 | if (in_offset < out_offset |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
105 | || (in_offset == out_offset && priv->bufused > 0)) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
106 | { |
| 34892 | 107 | gsize shift_n = MIN(priv->buflen - start_buflen, in_offset); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
108 | memcpy(priv->buffer + start_buflen, priv->buffer, shift_n); |
| 13201 | 109 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
110 | /* If we couldn't fit the wrapped read buffer at the end */ |
| 13201 | 111 | if (shift_n < in_offset) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
112 | memmove(priv->buffer, priv->buffer + shift_n, in_offset - shift_n); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
113 | priv->input = priv->buffer + (in_offset - shift_n); |
| 13201 | 114 | } else { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
115 | priv->input = priv->buffer + start_buflen + in_offset; |
| 13201 | 116 | } |
| 117 | } | |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
118 | |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
119 | obj = G_OBJECT(buffer); |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
120 | g_object_freeze_notify(obj); |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
121 | g_object_notify_by_pspec(obj, properties[PROP_INPUT]); |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
122 | g_object_notify_by_pspec(obj, properties[PROP_OUTPUT]); |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
123 | g_object_thaw_notify(obj); |
| 13201 | 124 | } |
| 125 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
126 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
127 | purple_circular_buffer_real_append(PurpleCircularBuffer *buffer, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
128 | gconstpointer src, gsize len) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
129 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
130 | PurpleCircularBufferPrivate *priv = NULL; |
|
34305
5804117fb298
Fix the rest of libpurple warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
27361
diff
changeset
|
131 | gsize len_stored; |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
132 | GObject *obj; |
| 13201 | 133 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
134 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24505
diff
changeset
|
135 | |
| 13201 | 136 | /* Grow the buffer, if necessary */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
137 | if((priv->buflen - priv->bufused) < len) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
138 | purple_circular_buffer_grow(buffer, len); |
| 13201 | 139 | |
|
13213
8dcf2385a862
[gaim-migrate @ 15576]
Mark Doliner <markdoliner@pidgin.im>
parents:
13210
diff
changeset
|
140 | /* If there is not enough room to copy all of src before hitting |
|
8dcf2385a862
[gaim-migrate @ 15576]
Mark Doliner <markdoliner@pidgin.im>
parents:
13210
diff
changeset
|
141 | * the end of the buffer then we will need to do two copies. |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
142 | * One copy from input to the end of the buffer, and the |
|
13213
8dcf2385a862
[gaim-migrate @ 15576]
Mark Doliner <markdoliner@pidgin.im>
parents:
13210
diff
changeset
|
143 | * second copy from the start of the buffer to the end of src. */ |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
144 | if(priv->input >= priv->output) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
145 | len_stored = MIN(len, priv->buflen - (priv->input - priv->buffer)); |
| 13201 | 146 | else |
| 147 | len_stored = len; | |
| 148 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
149 | if(len_stored > 0) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
150 | memcpy(priv->input, src, len_stored); |
| 13201 | 151 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
152 | if(len_stored < len) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
153 | memcpy(priv->buffer, (char*)src + len_stored, len - len_stored); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
154 | priv->input = priv->buffer + (len - len_stored); |
| 13201 | 155 | } else { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
156 | priv->input += len_stored; |
| 13201 | 157 | } |
| 158 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
159 | priv->bufused += len; |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
160 | |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
161 | obj = G_OBJECT(buffer); |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
162 | g_object_freeze_notify(obj); |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
163 | g_object_notify_by_pspec(obj, properties[PROP_BUFFER_USED]); |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
164 | g_object_notify_by_pspec(obj, properties[PROP_INPUT]); |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
165 | g_object_thaw_notify(obj); |
| 13201 | 166 | } |
| 167 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
168 | static gsize |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
169 | purple_circular_buffer_real_max_read_size(PurpleCircularBuffer *buffer) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
170 | PurpleCircularBufferPrivate *priv = NULL; |
|
15609
e432251bd57e
sf patch #1647731, from Markus Elfring
Mark Doliner <markdoliner@pidgin.im>
parents:
15435
diff
changeset
|
171 | gsize max_read; |
| 13201 | 172 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
173 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
15359
4317e3cb888e
[gaim-migrate @ 18088]
Evan Schoenberg <evands@pidgin.im>
parents:
15017
diff
changeset
|
174 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
175 | if(priv->bufused == 0) |
| 13201 | 176 | max_read = 0; |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
177 | else if((priv->output - priv->input) >= 0) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
178 | max_read = priv->buflen - (priv->output - priv->buffer); |
| 13201 | 179 | else |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
180 | max_read = priv->input - priv->output; |
| 13201 | 181 | |
| 182 | return max_read; | |
| 183 | } | |
| 184 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
185 | static gboolean |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
186 | purple_circular_buffer_real_mark_read(PurpleCircularBuffer *buffer, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
187 | gsize len) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
188 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
189 | PurpleCircularBufferPrivate *priv = NULL; |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
190 | GObject *obj; |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
191 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
192 | g_return_val_if_fail(purple_circular_buffer_get_max_read(buffer) >= len, FALSE); |
| 13201 | 193 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
194 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
195 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
196 | priv->output += len; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
197 | priv->bufused -= len; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
198 | |
| 13201 | 199 | /* wrap to the start if we're at the end */ |
| 36257 | 200 | if ((gsize)(priv->output - priv->buffer) == priv->buflen) |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
201 | priv->output = priv->buffer; |
| 13201 | 202 | |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
203 | obj = G_OBJECT(buffer); |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
204 | g_object_freeze_notify(obj); |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
205 | g_object_notify_by_pspec(obj, properties[PROP_BUFFER_USED]); |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
206 | g_object_notify_by_pspec(obj, properties[PROP_OUTPUT]); |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
207 | g_object_thaw_notify(obj); |
|
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
208 | |
| 13201 | 209 | return TRUE; |
| 210 | } | |
| 211 | ||
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
212 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
213 | * Private API |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
214 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
215 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
216 | purple_circular_buffer_set_grow_size(PurpleCircularBuffer *buffer, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
217 | gsize grow_size) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
218 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
219 | PurpleCircularBufferPrivate *priv = |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
220 | purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
221 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
222 | priv->growsize = (grow_size != 0) ? grow_size : DEFAULT_BUF_SIZE; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
223 | |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
224 | g_object_notify_by_pspec(G_OBJECT(buffer), properties[PROP_GROW_SIZE]); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
225 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
226 | |
|
35071
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
227 | static const gchar * |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
228 | purple_circular_buffer_get_input(PurpleCircularBuffer *buffer) { |
|
35071
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
229 | PurpleCircularBufferPrivate *priv = NULL; |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
230 | |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
231 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), NULL); |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
232 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
233 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
35071
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
234 | |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
235 | return priv->input; |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
236 | } |
|
1eedcfcb91ef
Added doc comments for new PurpleCircularBuffer functions. Removed purple_circular_buffer_get_input from public API.
Ankit Vani <a@nevitus.org>
parents:
35066
diff
changeset
|
237 | |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
238 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
239 | * Object Stuff |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
240 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
241 | static void |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
242 | purple_circular_buffer_init(PurpleCircularBuffer *buffer) |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
243 | { |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
244 | } |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
245 | |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
246 | static void |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
247 | purple_circular_buffer_finalize(GObject *obj) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
248 | PurpleCircularBufferPrivate *priv = |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
249 | purple_circular_buffer_get_instance_private( |
|
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
250 | PURPLE_CIRCULAR_BUFFER(obj)); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
251 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
252 | g_free(priv->buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
253 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
254 | G_OBJECT_CLASS(purple_circular_buffer_parent_class)->finalize(obj); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
255 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
256 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
257 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
258 | purple_circular_buffer_get_property(GObject *obj, guint param_id, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
259 | GValue *value, GParamSpec *pspec) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
260 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
261 | PurpleCircularBuffer *buffer = PURPLE_CIRCULAR_BUFFER(obj); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
262 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
263 | switch(param_id) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
264 | case PROP_GROW_SIZE: |
|
39998
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
265 | g_value_set_uint64(value, |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
266 | purple_circular_buffer_get_grow_size(buffer)); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
267 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
268 | case PROP_BUFFER_USED: |
|
39998
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
269 | g_value_set_uint64(value, purple_circular_buffer_get_used(buffer)); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
270 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
271 | case PROP_INPUT: |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
272 | g_value_set_pointer(value, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
273 | (void*) purple_circular_buffer_get_input(buffer)); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
274 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
275 | case PROP_OUTPUT: |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
276 | g_value_set_pointer(value, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
277 | (void*) purple_circular_buffer_get_output(buffer)); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
278 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
279 | default: |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
280 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
281 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
282 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
283 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
284 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
285 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
286 | purple_circular_buffer_set_property(GObject *obj, guint param_id, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
287 | const GValue *value, GParamSpec *pspec) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
288 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
289 | PurpleCircularBuffer *buffer = PURPLE_CIRCULAR_BUFFER(obj); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
290 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
291 | switch(param_id) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
292 | case PROP_GROW_SIZE: |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
293 | purple_circular_buffer_set_grow_size(buffer, |
|
39998
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
294 | g_value_get_uint64(value)); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
295 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
296 | default: |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
297 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
298 | break; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
299 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
300 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
301 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
302 | static void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
303 | purple_circular_buffer_class_init(PurpleCircularBufferClass *klass) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
304 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
305 | PurpleCircularBufferClass *buffer_class = PURPLE_CIRCULAR_BUFFER_CLASS(klass); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
306 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
307 | obj_class->finalize = purple_circular_buffer_finalize; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
308 | obj_class->get_property = purple_circular_buffer_get_property; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
309 | obj_class->set_property = purple_circular_buffer_set_property; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
310 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
311 | buffer_class->grow = purple_circular_buffer_real_grow; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
312 | buffer_class->append = purple_circular_buffer_real_append; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
313 | buffer_class->max_read_size = purple_circular_buffer_real_max_read_size; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
314 | buffer_class->mark_read = purple_circular_buffer_real_mark_read; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
315 | |
|
39998
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
316 | properties[PROP_GROW_SIZE] = g_param_spec_uint64( |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
317 | "grow-size", "grow-size", "The grow size of the buffer", 0, |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
318 | G_MAXSIZE, 0, |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
319 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
320 | |
|
39998
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
321 | properties[PROP_BUFFER_USED] = g_param_spec_uint64( |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
322 | "buffer-used", "buffer-used", "The amount of the buffer used", 0, |
|
15488497cd1a
Fix several type conversion warnings on Windows.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39380
diff
changeset
|
323 | G_MAXSIZE, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
324 | |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
325 | properties[PROP_INPUT] = g_param_spec_pointer("input", "input", |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
326 | "The input pointer of the buffer", |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
327 | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
328 | |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
329 | properties[PROP_OUTPUT] = g_param_spec_pointer("output", "output", |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
330 | "The output pointer of the buffer", |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
331 | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
|
35085
abab0adfa0ec
libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents:
35078
diff
changeset
|
332 | |
|
abab0adfa0ec
libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents:
35078
diff
changeset
|
333 | g_object_class_install_properties(obj_class, PROP_LAST, properties); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
334 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
335 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
336 | /****************************************************************************** |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
337 | * API |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
338 | *****************************************************************************/ |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
339 | PurpleCircularBuffer * |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
340 | purple_circular_buffer_new(gsize growsize) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
341 | return g_object_new(PURPLE_TYPE_CIRCULAR_BUFFER, |
|
40571
72d67a705fae
Fix circular buffer on 32-bit machines.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40195
diff
changeset
|
342 | "grow-size", (guint64)(growsize ? growsize : DEFAULT_BUF_SIZE), |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
343 | NULL); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
344 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
345 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
346 | void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
347 | purple_circular_buffer_grow(PurpleCircularBuffer *buffer, gsize len) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
348 | PurpleCircularBufferClass *klass = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
349 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
350 | g_return_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer)); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
351 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
352 | klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
353 | if(klass && klass->grow) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
354 | klass->grow(buffer, len); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
355 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
356 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
357 | void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
358 | purple_circular_buffer_append(PurpleCircularBuffer *buffer, gconstpointer src, |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
359 | gsize len) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
360 | { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
361 | PurpleCircularBufferClass *klass = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
362 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
363 | g_return_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer)); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
364 | g_return_if_fail(src != NULL); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
365 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
366 | klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
367 | if(klass && klass->append) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
368 | klass->append(buffer, src, len); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
369 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
370 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
371 | gsize |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
372 | purple_circular_buffer_get_max_read(PurpleCircularBuffer *buffer) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
373 | PurpleCircularBufferClass *klass = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
374 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
375 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
376 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
377 | klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
378 | if(klass && klass->max_read_size) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
379 | return klass->max_read_size(buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
380 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
381 | return 0; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
382 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
383 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
384 | gboolean |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
385 | purple_circular_buffer_mark_read(PurpleCircularBuffer *buffer, gsize len) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
386 | PurpleCircularBufferClass *klass = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
387 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
388 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), FALSE); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
389 | |
|
35055
265bd45e6cb3
Fixed a typo in circularbuffer that caused a crash
Ankit Vani <a@nevitus.org>
parents:
34892
diff
changeset
|
390 | klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
391 | if(klass && klass->mark_read) |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
392 | return klass->mark_read(buffer, len); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
393 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
394 | return FALSE; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
395 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
396 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
397 | gsize |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
398 | purple_circular_buffer_get_grow_size(PurpleCircularBuffer *buffer) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
399 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
400 | PurpleCircularBufferPrivate *priv = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
401 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
402 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
403 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
404 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
405 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
406 | return priv->growsize; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
407 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
408 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
409 | gsize |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
410 | purple_circular_buffer_get_used(PurpleCircularBuffer *buffer) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
411 | PurpleCircularBufferPrivate *priv = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
412 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
413 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
414 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
415 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
416 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
417 | return priv->bufused; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
418 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
419 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
420 | const gchar * |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
421 | purple_circular_buffer_get_output(PurpleCircularBuffer *buffer) { |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
422 | PurpleCircularBufferPrivate *priv = NULL; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
423 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
424 | g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), NULL); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
425 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
426 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
427 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
428 | return priv->output; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
429 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
430 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
431 | void |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
432 | purple_circular_buffer_reset(PurpleCircularBuffer *buffer) { |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
433 | PurpleCircularBufferPrivate *priv = NULL; |
|
35066
f997e5384f79
libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
35056
diff
changeset
|
434 | GObject *obj; |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
435 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
436 | g_return_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer)); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
437 | |
|
39380
3088866c22f4
libpurple: Port almost self-contained code from g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
36257
diff
changeset
|
438 | priv = purple_circular_buffer_get_instance_private(buffer); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
439 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
440 | priv->input = priv->buffer; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
441 | priv->output = priv->buffer; |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
442 | |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
443 | obj = G_OBJECT(buffer); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
444 | g_object_freeze_notify(obj); |
|
35078
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
445 | g_object_notify_by_pspec(obj, properties[PROP_INPUT]); |
|
9e2aff0b8476
libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents:
35071
diff
changeset
|
446 | g_object_notify_by_pspec(obj, properties[PROP_OUTPUT]); |
|
34529
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
447 | g_object_thaw_notify(obj); |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
448 | } |
|
68cf25486001
GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents:
27361
diff
changeset
|
449 |