/soc/2015/igor.gajowiak/chatlog: bb41b42e8b9a: Added an export i...

Igor Gajowiak <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: bb41b42e8b9ad3cd2197301673347a5c02487b10
Author:	 Igor Gajowiak <[email protected]>
Date:	 2015-08-02 23:46 +0200
Branch:	 default
URL: https://hg.pidgin.im/soc/2015/igor.gajowiak/chatlog/rev/bb41b42e8b9a

Description:

Added an export interface to the generic log.

diffstat:

 libpurple/genericlog.c |   3 +++
 libpurple/genericlog.h |  21 ++++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletions(-)

diffs (54 lines):

diff --git a/libpurple/genericlog.c b/libpurple/genericlog.c
--- a/libpurple/genericlog.c
+++ b/libpurple/genericlog.c
@@ -382,6 +382,9 @@ purple_genericlog_class_init(PurpleGener
 	klass->get_all_buddies = NULL;
 	klass->get_all_days = NULL;
 	klass->wipe_log_for_buddy = NULL;
+	klass->init_export = NULL;
+	klass->read_chunk = NULL;
+	klass->finalize_export = NULL;
 
 	klass->reserved1 = NULL;
 	klass->reserved2 = NULL;
diff --git a/libpurple/genericlog.h b/libpurple/genericlog.h
--- a/libpurple/genericlog.h
+++ b/libpurple/genericlog.h
@@ -85,10 +85,22 @@ struct _PurpleGenericLog
  * @wipe_log_for_buddy: Deletes all messages sent to or received from
  *                      a given buddy. Returns %TRUE if operation succeeds,
  *                      %FALSE otherwise.
+ * @init_export:     Initializes an export procedure. Plugins should store their
+ *                   export state in an output parameter. The state will be used
+ *                   for future calls to export_chunk. Returns %TRUE if
+ *                   operation succeeds, %FALSE otherwise.
+ * @export_chunk:    Reads chunk_size messages and stores them and their
+ *                   respective accounts in the given #GArray objects. Plugins
+ *                   can ignore chunk_size parameter but it might affect
+ *                   UI responsiveness. Returning no messages means end of
+ *                   export. Returns %TRUE if operation succeeds,
+ *                   %FALSE otherwise.
+ * @finalize_export: Finalizes an export procedure. Returns %TRUE if operation
+ *                   succeeds, %FALSE otherwise.
  *
  * The abstract base class for all log implementations. A conforming plugin
  * must implement at least activate and deactivate methods. Not supported
- * operations must be set to %NULL.
+ * operations are by default set to %NULL.
  */
 struct _PurpleGenericLogClass
 {
@@ -116,6 +128,13 @@ struct _PurpleGenericLogClass
 
 	gboolean (*wipe_log_for_buddy)(PurpleBuddy *buddy);
 
+	gboolean (*init_export) (void **export_state);
+
+	gboolean (*read_chunk) (void *export_state, guint chunk_size,
+		GArray *accounts, GArray *messages);
+
+	gboolean (*finalize_export) (void *export_state);
+
 	void (*reserved1)(void);
 	void (*reserved2)(void);
 	void (*reserved3)(void);

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.