libpurple/circularbuffer.c

Fri, 31 Jan 2014 19:42:12 +0530

author
Ankit Vani <a@nevitus.org>
date
Fri, 31 Jan 2014 19:42:12 +0530
branch
soc.2013.gobjectification.plugins
changeset 37039
7d964cdccbb5
parent 35094
47964e26263e
child 35454
cf2a24d01503
permissions
-rw-r--r--

Merged gtkdoc-conversion branch

13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
1 /*
14013
86dac5633bd9 [gaim-migrate @ 16496]
Mark Doliner <markdoliner@pidgin.im>
parents: 13830
diff changeset
2 * @file circbuffer.h Buffer Utility Functions
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
3 * @ingroup core
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
4 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
5
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
6 /* Purple is the legal property of its developers, whose names are too numerous
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
8 * source distribution.
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
9 *
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
13 * (at your option) any later version.
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
14 *
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
18 * GNU General Public License for more details.
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
19 *
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
21 * 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
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
23 */
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
24 #include "internal.h"
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
25 #include "glibcompat.h"
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
26
34570
ac513e5901eb Rename circbuffer files to circularbuffer files to match the object name
Ankit Vani <a@nevitus.org>
parents: 34529
diff changeset
27 #include "circularbuffer.h"
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
28
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
29 #define DEFAULT_BUF_SIZE 256
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
30
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
31 #define PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(obj) \
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
32 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CIRCULAR_BUFFER, PurpleCircularBufferPrivate))
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
33
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
34 /******************************************************************************
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
35 * Structs
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
36 *****************************************************************************/
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
37 typedef struct {
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
38 /** 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
39 gchar *buffer;
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
40
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
41 /** The incremental amount to increase this buffer by when
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
42 * the buffer is not 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
43 gsize growsize;
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
44
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
45 /** 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
46 gsize buflen;
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
47
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
48 /** 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
49 gsize bufused;
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
50
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
51 /** A pointer to the next byte where new incoming data is
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
52 * buffered to. */
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
53 gchar *input;
35056
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
54
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
55 /** A pointer to the next byte of buffered data that should be
97a1341f4601 Added doc comments for PurpleCirclularBufferPrivate members
Ankit Vani <a@nevitus.org>
parents: 35055
diff changeset
56 * read by the consumer. */
35094
47964e26263e Assorted whitespace fixes.
Mark Doliner <mark@kingant.net>
parents: 35085
diff changeset
57 gchar *output;
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
58 } PurpleCircularBufferPrivate;
15359
4317e3cb888e [gaim-migrate @ 18088]
Evan Schoenberg <evands@pidgin.im>
parents: 15017
diff changeset
59
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
60 /******************************************************************************
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
61 * Enums
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 enum {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
64 PROP_ZERO,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
65 PROP_GROW_SIZE,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
66 PROP_BUFFER_USED,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
67 PROP_INPUT,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
68 PROP_OUTPUT,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
69 PROP_LAST,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
70 };
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
71
34529
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 * Globals
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
74 *****************************************************************************/
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
75 static GObjectClass *parent_class = NULL;
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
76 static GParamSpec *properties[PROP_LAST];
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 24505
diff changeset
77
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
78 /******************************************************************************
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
79 * Circular Buffer Implementation
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
80 *****************************************************************************/
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
81 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
82 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
83 PurpleCircularBufferPrivate *priv = NULL;
34305
5804117fb298 Fix the rest of libpurple warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 27361
diff changeset
84 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
85 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
86 GObject *obj;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
87
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
88 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
89
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
90 start_buflen = priv->buflen;
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 while((priv->buflen - priv->bufused) < len)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
93 priv->buflen += priv->growsize;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
94
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 in_offset = priv->input - priv->buffer;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
97 out_offset = priv->output - priv->buffer;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
98 }
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
99
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
100 priv->buffer = g_realloc(priv->buffer, priv->buflen);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
101
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
102 /* 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
103 if(priv->input == NULL) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
104 priv->input = priv->output = priv->buffer;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
105 } else {
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
106 priv->input = priv->buffer + in_offset;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
107 priv->output = priv->buffer + out_offset;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
108 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
109
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
110 /* If the fill pointer is wrapped to before the remove
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
111 * pointer, we need to shift the data */
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
112 if(in_offset < out_offset
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
113 || (in_offset == out_offset && priv->bufused > 0))
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
114 {
34892
65e25c679ca5 Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34305 34757
diff changeset
115 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
116 memcpy(priv->buffer + start_buflen, priv->buffer, shift_n);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
117
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
118 /* If we couldn't fit the wrapped read buffer at the end */
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
119 if (shift_n < in_offset) {
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
120 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
121 priv->input = priv->buffer + (in_offset - shift_n);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
122 } else {
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
123 priv->input = priv->buffer + start_buflen + in_offset;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
124 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
125 }
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
126
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35056
diff changeset
127 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
128 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
129 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
130 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
131 g_object_thaw_notify(obj);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
132 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
133
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
134 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
135 purple_circular_buffer_real_append(PurpleCircularBuffer *buffer,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
136 gconstpointer src, gsize len)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
137 {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
138 PurpleCircularBufferPrivate *priv = NULL;
34305
5804117fb298 Fix the rest of libpurple warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 27361
diff changeset
139 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
140 GObject *obj;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
141
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
142 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 24505
diff changeset
143
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
144 /* Grow the buffer, if necessary */
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
145 if((priv->buflen - priv->bufused) < len)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
146 purple_circular_buffer_grow(buffer, len);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
147
13213
8dcf2385a862 [gaim-migrate @ 15576]
Mark Doliner <markdoliner@pidgin.im>
parents: 13210
diff changeset
148 /* 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
149 * 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
150 * 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
151 * 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
152 if(priv->input >= priv->output)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
153 len_stored = MIN(len, priv->buflen - (priv->input - priv->buffer));
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
154 else
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
155 len_stored = len;
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
156
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
157 if(len_stored > 0)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
158 memcpy(priv->input, src, len_stored);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
159
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
160 if(len_stored < len) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
161 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
162 priv->input = priv->buffer + (len - len_stored);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
163 } else {
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
164 priv->input += len_stored;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
165 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
166
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
167 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
168
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35056
diff changeset
169 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
170 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
171 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
172 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
173 g_object_thaw_notify(obj);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
174 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
175
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
176 static gsize
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
177 purple_circular_buffer_real_max_read_size(const PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
178 PurpleCircularBufferPrivate *priv = NULL;
15609
e432251bd57e sf patch #1647731, from Markus Elfring
Mark Doliner <markdoliner@pidgin.im>
parents: 15435
diff changeset
179 gsize max_read;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
180
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
181 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
15359
4317e3cb888e [gaim-migrate @ 18088]
Evan Schoenberg <evands@pidgin.im>
parents: 15017
diff changeset
182
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
183 if(priv->bufused == 0)
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
184 max_read = 0;
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
185 else if((priv->output - priv->input) >= 0)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
186 max_read = priv->buflen - (priv->output - priv->buffer);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
187 else
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
188 max_read = priv->input - priv->output;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
189
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
190 return max_read;
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
191 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
192
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
193 static gboolean
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
194 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
195 gsize len)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
196 {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
197 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
198 GObject *obj;
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
199
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
200 g_return_val_if_fail(purple_circular_buffer_get_max_read(buffer) >= len, FALSE);
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
201
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
202 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
203
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
204 priv->output += len;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
205 priv->bufused -= len;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
206
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
207 /* wrap to the start if we're at the end */
34892
65e25c679ca5 Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34305 34757
diff changeset
208 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
209 priv->output = priv->buffer;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
210
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
211 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
212 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
213 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
214 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
215 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
216
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
217 return TRUE;
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
218 }
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
219
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
220 /******************************************************************************
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
221 * Private API
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
222 *****************************************************************************/
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
223 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
224 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
225 gsize grow_size)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
226 {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
227 PurpleCircularBufferPrivate *priv =
35094
47964e26263e Assorted whitespace fixes.
Mark Doliner <mark@kingant.net>
parents: 35085
diff changeset
228 PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
229
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
230 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
231
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
232 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
233 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
234
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
235 static const gchar *
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 purple_circular_buffer_get_input(const PurpleCircularBuffer *buffer) {
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 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
238
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
239 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
240
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
241 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
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
242
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
243 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
244 }
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
245
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
246 /******************************************************************************
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
247 * Object Stuff
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
248 *****************************************************************************/
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
249 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
250 purple_circular_buffer_finalize(GObject *obj) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
251 PurpleCircularBufferPrivate *priv =
35094
47964e26263e Assorted whitespace fixes.
Mark Doliner <mark@kingant.net>
parents: 35085
diff changeset
252 PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(obj);
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
253
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
254 g_free(priv->buffer);
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 G_OBJECT_CLASS(parent_class)->finalize(obj);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
257 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
258
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
259 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
260 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
261 GValue *value, GParamSpec *pspec)
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 PurpleCircularBuffer *buffer = PURPLE_CIRCULAR_BUFFER(obj);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
264
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
265 switch(param_id) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
266 case PROP_GROW_SIZE:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
267 g_value_set_ulong(value,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
268 purple_circular_buffer_get_grow_size(buffer));
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
269 break;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
270 case PROP_BUFFER_USED:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
271 g_value_set_ulong(value,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
272 purple_circular_buffer_get_used(buffer));
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
273 break;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
274 case PROP_INPUT:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
275 g_value_set_pointer(value,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
276 (void*) purple_circular_buffer_get_input(buffer));
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
277 break;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
278 case PROP_OUTPUT:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
279 g_value_set_pointer(value,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
280 (void*) purple_circular_buffer_get_output(buffer));
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 default:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
283 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
284 break;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
285 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
286 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
287
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
288 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
289 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
290 const GValue *value, GParamSpec *pspec)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
291 {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
292 PurpleCircularBuffer *buffer = PURPLE_CIRCULAR_BUFFER(obj);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
293
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
294 switch(param_id) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
295 case PROP_GROW_SIZE:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
296 purple_circular_buffer_set_grow_size(buffer,
34757
90dd117bc505 Fixed GValue type to get in PurpleCircularBuffer
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
297 g_value_get_ulong(value));
34529
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 default:
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
300 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
301 break;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
302 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
303 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
304
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
305 static void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
306 purple_circular_buffer_class_init(PurpleCircularBufferClass *klass) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
307 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
308 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
309
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
310 parent_class = g_type_class_peek_parent(klass);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
311
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
312 g_type_class_add_private(klass, sizeof(PurpleCircularBufferPrivate));
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
313
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
314 obj_class->finalize = purple_circular_buffer_finalize;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
315 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
316 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
317
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
318 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
319 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
320 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
321 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
322
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
323 /* using a ulong for the gsize properties since there is no
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
324 * g_param_spec_size, and the ulong should always work. --gk 3/21/11
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
325 */
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
326 properties[PROP_GROW_SIZE] = g_param_spec_ulong("grow-size", "grow-size",
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
327 "The grow size of the buffer",
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
328 0, G_MAXSIZE, 0,
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
329 G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
330 G_PARAM_STATIC_STRINGS);
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
331
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
332 properties[PROP_BUFFER_USED] = g_param_spec_ulong("buffer-used",
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
333 "buffer-used",
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
334 "The amount of the buffer used",
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
335 0, G_MAXSIZE, 0,
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
336 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
337
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
338 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
339 "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
340 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
341
35078
9e2aff0b8476 libpurple: started changing g_object_notify to g_object_notify_by_pspec
Ankit Vani <a@nevitus.org>
parents: 35071
diff changeset
342 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
343 "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
344 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
345
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
346 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
347 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
348
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 * API
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 GType
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
353 purple_circular_buffer_get_type(void) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
354 static GType type = 0;
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 if(G_UNLIKELY(type == 0)) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
357 static const GTypeInfo info = {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
358 .class_size = sizeof(PurpleCircularBufferClass),
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
359 .class_init = (GClassInitFunc)purple_circular_buffer_class_init,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
360 .instance_size = sizeof(PurpleCircularBuffer),
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
361 };
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 type = g_type_register_static(G_TYPE_OBJECT,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
364 "PurpleCircularBuffer",
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
365 &info, 0);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
366 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
367
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
368 return type;
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 PurpleCircularBuffer *
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
372 purple_circular_buffer_new(gsize growsize) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
373 return g_object_new(PURPLE_TYPE_CIRCULAR_BUFFER,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
374 "grow-size", growsize ? growsize : DEFAULT_BUF_SIZE,
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
375 NULL);
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
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
378 void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
379 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
380 PurpleCircularBufferClass *klass = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
381
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
382 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
383
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
384 klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
385 if(klass && klass->grow)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
386 klass->grow(buffer, len);
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
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
389 void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
390 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
391 gsize len)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
392 {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
393 PurpleCircularBufferClass *klass = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
394
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
395 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
396 g_return_if_fail(src != NULL);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
397
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
398 klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
399 if(klass && klass->append)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
400 klass->append(buffer, src, len);
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
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
403 gsize
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
404 purple_circular_buffer_get_max_read(const PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
405 PurpleCircularBufferClass *klass = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
406
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
407 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
408
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
409 klass = PURPLE_CIRCULAR_BUFFER_GET_CLASS(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
410 if(klass && klass->max_read_size)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
411 return klass->max_read_size(buffer);
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 return 0;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
414 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
415
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
416 gboolean
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
417 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
418 PurpleCircularBufferClass *klass = NULL;
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 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
421
35055
265bd45e6cb3 Fixed a typo in circularbuffer that caused a crash
Ankit Vani <a@nevitus.org>
parents: 34892
diff changeset
422 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
423 if(klass && klass->mark_read)
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
424 return klass->mark_read(buffer, len);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
425
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
426 return FALSE;
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
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
429 gsize
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
430 purple_circular_buffer_get_grow_size(const PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
431
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
432 PurpleCircularBufferPrivate *priv = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
433
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
434 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
435
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
436 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
437
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
438 return priv->growsize;
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
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
441 gsize
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
442 purple_circular_buffer_get_used(const PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
443 PurpleCircularBufferPrivate *priv = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
444
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
445 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
446
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
447 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
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 return priv->bufused;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
450 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
451
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
452 const gchar *
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
453 purple_circular_buffer_get_output(const PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
454 PurpleCircularBufferPrivate *priv = NULL;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
455
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
456 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
457
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
458 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
459
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
460 return priv->output;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
461 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
462
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
463 void
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
464 purple_circular_buffer_reset(PurpleCircularBuffer *buffer) {
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
465 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
466 GObject *obj;
34529
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
467
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
468 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
469
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
470 priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
471
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
472 priv->input = priv->buffer;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
473 priv->output = priv->buffer;
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
474
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
475 obj = G_OBJECT(buffer);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
476 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
477 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
478 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
479 g_object_thaw_notify(obj);
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
480 }
68cf25486001 GObjectify PurpleCircBuffer as PurpleCircularBuffer (from gobjectification branch)
Ankit Vani <a@nevitus.org>
parents: 27361
diff changeset
481

mercurial