mirror of https://github.com/djcb/mu.git
* mu-msg-data, mu-msg-data: removed
This commit is contained in:
parent
7498bc3841
commit
d7a1c7699b
|
@ -1,93 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (C) 2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
|
||||||
**
|
|
||||||
** 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 3, 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
|
|
||||||
** 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, write to the Free Software Foundation,
|
|
||||||
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mu-msg-data-cache.h"
|
|
||||||
|
|
||||||
/* we cannot use GPtrArray, because we require the index to be stable... */
|
|
||||||
struct _MuMsgDataCache {
|
|
||||||
MuMsgData **_data;
|
|
||||||
guint _index, _size;
|
|
||||||
};
|
|
||||||
|
|
||||||
MuMsgDataCache *
|
|
||||||
mu_msg_data_cache_new (guint32 max_size)
|
|
||||||
{
|
|
||||||
MuMsgDataCache *cache;
|
|
||||||
MuMsgData **data;
|
|
||||||
|
|
||||||
data = g_try_new0 (MuMsgData*, max_size);
|
|
||||||
if (!data) {
|
|
||||||
g_warning ("cannot allocate %u bytes", (unsigned)max_size);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
cache = g_new (MuMsgDataCache, 1);
|
|
||||||
cache->_data = (MuMsgData**)data;
|
|
||||||
cache->_index = 0;
|
|
||||||
cache->_size = max_size;
|
|
||||||
|
|
||||||
return cache;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
mu_msg_data_cache_destroy (MuMsgDataCache *self)
|
|
||||||
{
|
|
||||||
if (!self)
|
|
||||||
return;
|
|
||||||
|
|
||||||
mu_msg_data_cache_clear (self);
|
|
||||||
|
|
||||||
g_free (self);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
mu_msg_data_cache_clear (MuMsgDataCache *self)
|
|
||||||
{
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
g_return_if_fail (self);
|
|
||||||
|
|
||||||
for (i = 0; i != self->_index; ++i) {
|
|
||||||
mu_msg_data_destroy (self->_data[i]);
|
|
||||||
self->_data[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
self->_index = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
mu_msg_data_cache_append (MuMsgDataCache *self, MuMsgData *data, gboolean copy)
|
|
||||||
{
|
|
||||||
g_return_if_fail (self);
|
|
||||||
g_return_if_fail (self->_index < G_MAXUINT32);
|
|
||||||
g_return_if_fail (data);
|
|
||||||
|
|
||||||
self->_data[self->_index++] = copy ? mu_msg_data_copy (data) : data;
|
|
||||||
}
|
|
||||||
|
|
||||||
const MuMsgData *
|
|
||||||
mu_msg_data_cache_get (MuMsgDataCache *self, guint index)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (self, NULL);
|
|
||||||
g_return_val_if_fail (index < self->_size, NULL);
|
|
||||||
|
|
||||||
return self->_data[index];
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (C) 2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
|
||||||
**
|
|
||||||
** 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 3, 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
|
|
||||||
** 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, write to the Free Software Foundation,
|
|
||||||
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MU_MSG_DATA_CACHE_H__
|
|
||||||
#define __MU_MSG_DATA_CACHE_H__
|
|
||||||
|
|
||||||
/* MuMsgDataCache stores MuMsgData objects which are basically
|
|
||||||
* serialized MuMsgIters; putting them in a datastructure allows us to
|
|
||||||
* work on them, e.g., for message threading */
|
|
||||||
|
|
||||||
#include <mu-msg-data.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
struct _MuMsgDataCache;
|
|
||||||
typedef struct _MuMsgDataCache MuMsgDataCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* create a new MuMsgDataCache instance
|
|
||||||
*
|
|
||||||
* @param max_size maximum size of the cache
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
MuMsgDataCache *mu_msg_data_cache_new (guint32 max_size)
|
|
||||||
G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
|
|
||||||
void mu_msg_data_cache_destroy (MuMsgDataCache *self);
|
|
||||||
void mu_msg_data_cache_clear (MuMsgDataCache *self);
|
|
||||||
void mu_msg_data_cache_append (MuMsgDataCache *self, MuMsgData *data, gboolean own);
|
|
||||||
const MuMsgData *mu_msg_data_cache_get (MuMsgDataCache *self, guint index);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /*__MU_MSG_DATA_CACHE_H__*/
|
|
|
@ -1,72 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (C) 2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
|
||||||
**
|
|
||||||
** 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 3, 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
|
|
||||||
** 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, write to the Free Software Foundation,
|
|
||||||
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h> /* for memcpy */
|
|
||||||
#include "mu-msg-data.h"
|
|
||||||
|
|
||||||
|
|
||||||
MuMsgData*
|
|
||||||
mu_msg_data_new (void)
|
|
||||||
{
|
|
||||||
return g_slice_new0 (MuMsgData);
|
|
||||||
}
|
|
||||||
|
|
||||||
MuMsgData*
|
|
||||||
mu_msg_data_copy (MuMsgData *mdata)
|
|
||||||
{
|
|
||||||
MuMsgData *copy;
|
|
||||||
|
|
||||||
if (!mdata)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
copy = mu_msg_data_new ();
|
|
||||||
|
|
||||||
/* shallow copy */
|
|
||||||
memcpy (copy, mdata, sizeof(MuMsgData));
|
|
||||||
|
|
||||||
/* now, deep-copy ptr data */
|
|
||||||
copy->cc = g_strdup (mdata->cc);
|
|
||||||
copy->from = g_strdup (mdata->from);
|
|
||||||
copy->maildir = g_strdup (mdata->maildir);
|
|
||||||
copy->msgid = g_strdup (mdata->msgid);
|
|
||||||
copy->path = g_strdup (mdata->path);
|
|
||||||
copy->refs = g_strdup (mdata->refs);
|
|
||||||
copy->subject = g_strdup (mdata->subject);
|
|
||||||
copy->to = g_strdup (mdata->to);
|
|
||||||
|
|
||||||
return copy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
mu_msg_data_destroy (MuMsgData *mdata)
|
|
||||||
{
|
|
||||||
if (!mdata)
|
|
||||||
return;
|
|
||||||
|
|
||||||
g_free (mdata->cc);
|
|
||||||
g_free (mdata->from);
|
|
||||||
g_free (mdata->maildir);
|
|
||||||
g_free (mdata->msgid);
|
|
||||||
g_free (mdata->path);
|
|
||||||
g_free (mdata->refs);
|
|
||||||
g_free (mdata->subject);
|
|
||||||
g_free (mdata->to);
|
|
||||||
|
|
||||||
g_slice_free (MuMsgData, mdata);
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (C) 2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
|
||||||
**
|
|
||||||
** 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 3, 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
|
|
||||||
** 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, write to the Free Software Foundation,
|
|
||||||
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MU_MSG_DATA_H__
|
|
||||||
#define __MU_MSG_DATA_H__
|
|
||||||
|
|
||||||
#include <time.h>
|
|
||||||
#include <glib.h>
|
|
||||||
#include <mu-msg-flags.h>
|
|
||||||
#include <mu-msg-prio.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
/* data structure for saving the data in a MuMsgIter */
|
|
||||||
struct _MuMsgData {
|
|
||||||
char *cc;
|
|
||||||
char *from;
|
|
||||||
char *maildir;
|
|
||||||
char *msgid;
|
|
||||||
char *path;
|
|
||||||
char *refs;
|
|
||||||
char *subject;
|
|
||||||
char *to;
|
|
||||||
|
|
||||||
size_t size;
|
|
||||||
time_t date;
|
|
||||||
MuMsgFlags flags;
|
|
||||||
MuMsgPrio prio;
|
|
||||||
};
|
|
||||||
typedef struct _MuMsgData MuMsgData;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* create an _unitialized_ MuMsgData structure, ie. you still need to
|
|
||||||
* initialize the struct members. Free with mu_msg_data_destroy
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return a newly allocated MuMsgData struct
|
|
||||||
*/
|
|
||||||
MuMsgData* mu_msg_data_new (void) G_GNUC_WARN_UNUSED_RESULT;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* free the MuMsgData structure
|
|
||||||
*
|
|
||||||
* @param mdata a mu msg data structure, or NULL
|
|
||||||
*/
|
|
||||||
void mu_msg_data_destroy (MuMsgData *mdata);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* (deep)copy a MuMsgData structure
|
|
||||||
*
|
|
||||||
* @param mdata a mu msg data structure or NULL
|
|
||||||
*
|
|
||||||
* @return a copy, or NULL (free with mu_msg_data_destroy)
|
|
||||||
*/
|
|
||||||
MuMsgData* mu_msg_data_copy (MuMsgData *mdata);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /*__MU_MSG_DATA_H__*/
|
|
Loading…
Reference in New Issue