* <many>: update for mu-msg-field change

This commit is contained in:
Dirk-Jan C. Binnema
2010-11-20 14:43:04 +02:00
parent 7f617e32f0
commit b69cf8f589
12 changed files with 306 additions and 224 deletions

View File

@ -181,54 +181,50 @@ mu_msg_iter_is_done (MuMsgIter *iter)
const gchar*
mu_msg_iter_get_field (MuMsgIter *iter, const MuMsgField *field)
mu_msg_iter_get_field (MuMsgIter *iter, MuMsgFieldId mfid)
{
g_return_val_if_fail (field, NULL);
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
g_return_val_if_fail (mu_msg_field_id_is_valid(mfid), NULL);
try {
MuMsgFieldId id;
id = mu_msg_field_id (field);
if (!iter->_str[id]) { /* cache the value */
if (!iter->_str[mfid]) { /* cache the value */
Xapian::Document doc (iter->_cursor.get_document());
iter->_str[id] = g_strdup (doc.get_value(id).c_str());
iter->_str[mfid] =
g_strdup (doc.get_value(mfid).c_str());
}
return iter->_str[id];
return iter->_str[mfid];
} MU_XAPIAN_CATCH_BLOCK_RETURN(NULL);
}
gint64
mu_msg_iter_get_field_numeric (MuMsgIter *iter,
const MuMsgField *field)
mu_msg_iter_get_field_numeric (MuMsgIter *iter, MuMsgFieldId mfid)
{
g_return_val_if_fail (field, -1);
g_return_val_if_fail (!mu_msg_iter_is_done(iter), -1);
g_return_val_if_fail (mu_msg_field_is_numeric(field), -1);
g_return_val_if_fail (mu_msg_field_is_numeric(mfid), -1);
try {
return static_cast<gint64>(
Xapian::sortable_unserialise(
mu_msg_iter_get_field(iter, field)));
mu_msg_iter_get_field(iter, mfid)));
} MU_XAPIAN_CATCH_BLOCK_RETURN(static_cast<gint64>(-1));
}
static const gchar*
get_field (MuMsgIter *iter, MuMsgFieldId id)
{
return mu_msg_iter_get_field(iter, mu_msg_field_from_id (id));
}
// static const gchar*
// get_field (MuMsgIter *iter, MuMsgFieldId mfid)
// {
// return mu_msg_iter_get_field(iter, mfid);
// }
static long
get_field_number (MuMsgIter *iter, MuMsgFieldId id)
get_field_number (MuMsgIter *iter, MuMsgFieldId mfid)
{
const char* str = get_field (iter, id);
const char* str = mu_msg_iter_get_field(iter, mfid);
return str ? atol (str) : 0;
}
@ -250,14 +246,14 @@ const char*
mu_msg_iter_get_path (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_PATH);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_PATH);
}
const char*
mu_msg_iter_get_maildir (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_MAILDIR);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_MAILDIR);
}
@ -266,14 +262,14 @@ const char*
mu_msg_iter_get_from (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_FROM);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_FROM);
}
const char*
mu_msg_iter_get_to (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_TO);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_TO);
}
@ -281,7 +277,7 @@ const char*
mu_msg_iter_get_cc (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_CC);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_CC);
}
@ -289,7 +285,7 @@ const char*
mu_msg_iter_get_subject (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_SUBJECT);
return mu_msg_iter_get_field (iter, MU_MSG_FIELD_ID_SUBJECT);
}
@ -297,45 +293,39 @@ size_t
mu_msg_iter_get_size (MuMsgIter *iter)
{
g_return_val_if_fail (!mu_msg_iter_is_done(iter), 0);
return static_cast<size_t>(get_field_number (iter, MU_MSG_FIELD_ID_SIZE));
return static_cast<size_t>(get_field_number
(iter, MU_MSG_FIELD_ID_SIZE));
}
time_t
mu_msg_iter_get_date (MuMsgIter *iter)
{
static const MuMsgField *date_field =
mu_msg_field_from_id (MU_MSG_FIELD_ID_DATE);
g_return_val_if_fail (!mu_msg_iter_is_done(iter), 0);
try {
return static_cast<time_t>(
Xapian::sortable_unserialise(
mu_msg_iter_get_field(iter, date_field)));
mu_msg_iter_get_field
(iter,MU_MSG_FIELD_ID_DATE)));
} MU_XAPIAN_CATCH_BLOCK_RETURN(0);
}
MuMsgFlags
mu_msg_iter_get_flags (MuMsgIter *iter)
{
static const MuMsgField *flags_field =
mu_msg_field_from_id (MU_MSG_FIELD_ID_FLAGS);
g_return_val_if_fail (!mu_msg_iter_is_done(iter), MU_MSG_FLAG_NONE);
return static_cast<MuMsgFlags>(mu_msg_iter_get_field_numeric
(iter, flags_field));
(iter, MU_MSG_FIELD_ID_FLAGS));
}
MuMsgPrio
mu_msg_iter_get_prio (MuMsgIter *iter)
{
static const MuMsgField *prio_field =
mu_msg_field_from_id (MU_MSG_FIELD_ID_PRIO);
g_return_val_if_fail (!mu_msg_iter_is_done(iter), MU_MSG_PRIO_NONE);
return static_cast<MuMsgPrio>(mu_msg_iter_get_field_numeric
(iter, prio_field));
(iter, MU_MSG_FIELD_ID_PRIO));
}