[balsa/wip/gtk4: 266/351] mime-stream-shared: Use G_DEFINE_TYPE
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gtk4: 266/351] mime-stream-shared: Use G_DEFINE_TYPE
- Date: Wed, 23 May 2018 21:39:20 +0000 (UTC)
commit f0abe135574c5691af8fb50d787805e18220b58b
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Mar 31 15:48:34 2018 -0400
mime-stream-shared: Use G_DEFINE_TYPE
…and uncrustify, and generally tidy up.
libbalsa/mime-stream-shared.c | 154 +++++++++++++++++++++-------------------
libbalsa/mime-stream-shared.h | 20 +++---
2 files changed, 91 insertions(+), 83 deletions(-)
---
diff --git a/libbalsa/mime-stream-shared.c b/libbalsa/mime-stream-shared.c
index f173082..9926c34 100644
--- a/libbalsa/mime-stream-shared.c
+++ b/libbalsa/mime-stream-shared.c
@@ -6,14 +6,14 @@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
+ * the Free Software Foundation; either version 2, or (at your option)
* any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
@@ -30,7 +30,7 @@
*/
#if defined(HAVE_CONFIG_H) && HAVE_CONFIG_H
-# include "config.h"
+# include "config.h"
#endif /* HAVE_CONFIG_H */
#include "mime-stream-shared.h"
@@ -52,59 +52,47 @@ struct _LibBalsaMimeStreamSharedClass {
GMimeStreamClass parent_class;
};
-static void lbmss_stream_class_init(LibBalsaMimeStreamSharedClass * klass);
-
-static void lbmss_finalize(GObject *object);
+static void lbmss_finalize(GObject *object);
+
+static ssize_t lbmss_stream_read(GMimeStream *stream,
+ char *buf,
+ size_t len);
+static ssize_t lbmss_stream_write(GMimeStream *stream,
+ const char *buf,
+ size_t len);
+static int lbmss_stream_reset(GMimeStream *stream);
+static gint64 lbmss_stream_seek(GMimeStream *stream,
+ gint64 offset,
+ GMimeSeekWhence whence);
+static GMimeStream *lbmss_stream_substream(GMimeStream *stream,
+ gint64 start,
+ gint64 end);
-static ssize_t lbmss_stream_read(GMimeStream * stream, char *buf,
- size_t len);
-static ssize_t lbmss_stream_write(GMimeStream * stream, const char *buf,
- size_t len);
-static int lbmss_stream_reset(GMimeStream * stream);
-static gint64 lbmss_stream_seek(GMimeStream * stream, gint64 offset,
- GMimeSeekWhence whence);
-static GMimeStream *lbmss_stream_substream(GMimeStream * stream,
- gint64 start, gint64 end);
-
-static GMimeStreamFsClass *parent_class = NULL;
static GMutex lbmss_mutex;
static GCond lbmss_cond;
-GType
-libbalsa_mime_stream_shared_get_type(void)
-{
- static GType type = 0;
-
- if (!type) {
- static const GTypeInfo info = {
- sizeof(LibBalsaMimeStreamSharedClass),
- NULL, /* base_class_init */
- NULL, /* base_class_finalize */
- (GClassInitFunc) lbmss_stream_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(LibBalsaMimeStreamShared),
- 16, /* n_preallocs */
- NULL /* instance init */
- };
-
- type =
- g_type_register_static(GMIME_TYPE_STREAM_FS,
- "LibBalsaMimeStreamShared", &info, 0);
- }
+G_DEFINE_TYPE(LibBalsaMimeStreamShared,
+ libbalsa_mime_stream_shared,
+ GMIME_TYPE_STREAM_FS)
- return type;
+static void
+libbalsa_mime_stream_shared_init(LibBalsaMimeStreamShared *self)
+{
}
+
+static GMimeStreamClass *gmime_parent_class;
+
static void
-lbmss_stream_class_init(LibBalsaMimeStreamSharedClass * klass)
+libbalsa_mime_stream_shared_class_init(LibBalsaMimeStreamSharedClass *klass)
{
GMimeStreamClass *stream_class = GMIME_STREAM_CLASS(klass);
- GObjectClass *object_class = G_OBJECT_CLASS(klass);
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
- parent_class = g_type_class_ref(GMIME_TYPE_STREAM_FS);
+ gmime_parent_class =
+ GMIME_STREAM_CLASS(libbalsa_mime_stream_shared_parent_class);
- object_class->finalize = lbmss_finalize;
+ object_class->finalize = lbmss_finalize;
stream_class->read = lbmss_stream_read;
stream_class->write = lbmss_stream_write;
@@ -113,6 +101,7 @@ lbmss_stream_class_init(LibBalsaMimeStreamSharedClass * klass)
stream_class->substream = lbmss_stream_substream;
}
+
/* The shared lock. */
struct _LibBalsaMimeStreamSharedLock {
@@ -126,24 +115,26 @@ lbmss_lock_new(void)
{
LibBalsaMimeStreamSharedLock *lock;
- lock = g_new(LibBalsaMimeStreamSharedLock, 1);
- lock->thread = 0;
- lock->count = 0;
+ lock = g_new(LibBalsaMimeStreamSharedLock, 1);
+ lock->thread = 0;
+ lock->count = 0;
lock->ref_count = 1;
return lock;
}
+
static LibBalsaMimeStreamSharedLock *
-lbmss_lock_ref(LibBalsaMimeStreamSharedLock * lock)
+lbmss_lock_ref(LibBalsaMimeStreamSharedLock *lock)
{
++lock->ref_count;
return lock;
}
+
static void
-lbmss_lock_unref(LibBalsaMimeStreamSharedLock * lock)
+lbmss_lock_unref(LibBalsaMimeStreamSharedLock *lock)
{
g_assert(lock->ref_count > 0);
@@ -151,6 +142,7 @@ lbmss_lock_unref(LibBalsaMimeStreamSharedLock * lock)
g_free(lock);
}
+
/* Object class method. */
static void
@@ -161,9 +153,10 @@ lbmss_finalize(GObject *object)
lbmss_lock_unref(stream_shared->lock);
- G_OBJECT_CLASS(parent_class)->finalize(object);
+ G_OBJECT_CLASS(libbalsa_mime_stream_shared_parent_class)->finalize(object);
}
+
/* Stream class methods. */
#define lbmss_thread_has_lock(stream) \
@@ -171,36 +164,47 @@ lbmss_finalize(GObject *object)
&& LIBBALSA_MIME_STREAM_SHARED(stream)->lock->thread == g_thread_self())
static ssize_t
-lbmss_stream_read(GMimeStream * stream, char *buf, size_t len)
+lbmss_stream_read(GMimeStream *stream,
+ char *buf,
+ size_t len)
{
g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
- return GMIME_STREAM_CLASS(parent_class)->read(stream, buf, len);
+ return gmime_parent_class->read(stream, buf, len);
}
+
static ssize_t
-lbmss_stream_write(GMimeStream * stream, const char *buf, size_t len)
+lbmss_stream_write(GMimeStream *stream,
+ const char *buf,
+ size_t len)
{
g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
- return GMIME_STREAM_CLASS(parent_class)->write(stream, buf, len);
+ return gmime_parent_class->write(stream, buf, len);
}
+
static int
-lbmss_stream_reset(GMimeStream * stream)
+lbmss_stream_reset(GMimeStream *stream)
{
g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
- return GMIME_STREAM_CLASS(parent_class)->reset(stream);
+ return gmime_parent_class->reset(stream);
}
+
static gint64
-lbmss_stream_seek(GMimeStream * stream, gint64 offset,
+lbmss_stream_seek(GMimeStream *stream,
+ gint64 offset,
GMimeSeekWhence whence)
{
g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
- return GMIME_STREAM_CLASS(parent_class)->seek(stream, offset, whence);
+ return gmime_parent_class->seek(stream, offset, whence);
}
+
static GMimeStream *
-lbmss_stream_substream(GMimeStream * stream, gint64 start, gint64 end)
+lbmss_stream_substream(GMimeStream *stream,
+ gint64 start,
+ gint64 end)
{
LibBalsaMimeStreamShared *stream_shared;
GMimeStreamFs *fstream;
@@ -210,14 +214,15 @@ lbmss_stream_substream(GMimeStream * stream, gint64 start, gint64 end)
stream_shared->lock =
lbmss_lock_ref(LIBBALSA_MIME_STREAM_SHARED(stream)->lock);
- fstream = GMIME_STREAM_FS(stream_shared);
+ fstream = GMIME_STREAM_FS(stream_shared);
fstream->owner = FALSE;
- fstream->fd = GMIME_STREAM_FS(stream)->fd;
+ fstream->fd = GMIME_STREAM_FS(stream)->fd;
g_mime_stream_construct(GMIME_STREAM(fstream), start, end);
return GMIME_STREAM(fstream);
}
+
/* Public methods. */
/**
@@ -240,10 +245,10 @@ libbalsa_mime_stream_shared_new(int fd)
g_object_new(LIBBALSA_TYPE_MIME_STREAM_SHARED, NULL, NULL);
stream_shared->lock = lbmss_lock_new();
- fstream = GMIME_STREAM_FS(stream_shared);
+ fstream = GMIME_STREAM_FS(stream_shared);
fstream->owner = TRUE;
- fstream->eos = FALSE;
- fstream->fd = fd;
+ fstream->eos = FALSE;
+ fstream->fd = fd;
start = lseek(fd, 0, SEEK_CUR);
g_mime_stream_construct(GMIME_STREAM(fstream), start, -1);
@@ -251,6 +256,7 @@ libbalsa_mime_stream_shared_new(int fd)
return GMIME_STREAM(fstream);
}
+
/**
* libbalsa_mime_stream_shared_lock:
* @stream: shared stream
@@ -258,7 +264,7 @@ libbalsa_mime_stream_shared_new(int fd)
* Lock the shared stream
**/
void
-libbalsa_mime_stream_shared_lock(GMimeStream * stream)
+libbalsa_mime_stream_shared_lock(GMimeStream *stream)
{
LibBalsaMimeStreamShared *stream_shared;
LibBalsaMimeStreamSharedLock *lock;
@@ -273,17 +279,19 @@ libbalsa_mime_stream_shared_lock(GMimeStream * stream)
return;
stream_shared = (LibBalsaMimeStreamShared *) stream;
- lock = stream_shared->lock;
- thread_self = g_thread_self();
+ lock = stream_shared->lock;
+ thread_self = g_thread_self();
g_mutex_lock(&lbmss_mutex);
- while (lock->count > 0 && lock->thread != thread_self)
+ while (lock->count > 0 && lock->thread != thread_self) {
g_cond_wait(&lbmss_cond, &lbmss_mutex);
+ }
++lock->count;
lock->thread = thread_self;
g_mutex_unlock(&lbmss_mutex);
}
+
/**
* libbalsa_mime_stream_shared_unlock:
* @stream: shared stream
@@ -291,7 +299,7 @@ libbalsa_mime_stream_shared_lock(GMimeStream * stream)
* Unlock the shared stream
**/
void
-libbalsa_mime_stream_shared_unlock(GMimeStream * stream)
+libbalsa_mime_stream_shared_unlock(GMimeStream *stream)
{
LibBalsaMimeStreamShared *stream_shared;
LibBalsaMimeStreamSharedLock *lock;
@@ -305,7 +313,7 @@ libbalsa_mime_stream_shared_unlock(GMimeStream * stream)
return;
stream_shared = (LibBalsaMimeStreamShared *) stream;
- lock = stream_shared->lock;
+ lock = stream_shared->lock;
g_return_if_fail(lock->count > 0);
g_mutex_lock(&lbmss_mutex);
diff --git a/libbalsa/mime-stream-shared.h b/libbalsa/mime-stream-shared.h
index 0db62a2..b1468fb 100644
--- a/libbalsa/mime-stream-shared.h
+++ b/libbalsa/mime-stream-shared.h
@@ -6,14 +6,14 @@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
+ * the Free Software Foundation; either version 2, or (at your option)
* any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
@@ -22,7 +22,7 @@
#define __LIBBALSA_MIME_STREAM_SHARED_H__
#ifndef BALSA_VERSION
-# error "Include config.h before this file."
+# error "Include config.h before this file."
#endif
#include <gmime/gmime-stream-fs.h>
@@ -48,14 +48,14 @@
LIBBALSA_TYPE_MIME_STREAM_SHARED, \
LibBalsaMimeStreamSharedClass))
-typedef struct _LibBalsaMimeStreamShared LibBalsaMimeStreamShared;
+typedef struct _LibBalsaMimeStreamShared LibBalsaMimeStreamShared;
typedef struct _LibBalsaMimeStreamSharedClass LibBalsaMimeStreamSharedClass;
-GType libbalsa_mime_stream_shared_get_type(void);
+GType libbalsa_mime_stream_shared_get_type(void);
GMimeStream *libbalsa_mime_stream_shared_new(int fd);
-void libbalsa_mime_stream_shared_lock (GMimeStream * stream);
-void libbalsa_mime_stream_shared_unlock(GMimeStream * stream);
+void libbalsa_mime_stream_shared_lock(GMimeStream *stream);
+void libbalsa_mime_stream_shared_unlock(GMimeStream *stream);
#endif /* __LIBBALSA_MIME_STREAM_SHARED_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]