* mu-msg-iter.{cc,h}: some cleanups, documentation updates

This commit is contained in:
Dirk-Jan C. Binnema
2010-09-05 12:37:12 +03:00
parent 572da91216
commit b8f5451b06
2 changed files with 31 additions and 17 deletions

View File

@ -21,7 +21,7 @@
#include <iostream> #include <iostream>
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
#include "xapian.h" #include <xapian.h>
#include "mu-util.h" #include "mu-util.h"
#include "mu-msg-iter.h" #include "mu-msg-iter.h"
@ -88,6 +88,7 @@ mu_msg_iter_get_msg (MuMsgIter *iter)
MuMsg *msg; MuMsg *msg;
g_return_val_if_fail (iter, NULL); g_return_val_if_fail (iter, NULL);
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
path = mu_msg_iter_get_path (iter); path = mu_msg_iter_get_path (iter);
if (!path) { if (!path) {
@ -140,6 +141,7 @@ gboolean
mu_msg_iter_next (MuMsgIter *iter) mu_msg_iter_next (MuMsgIter *iter)
{ {
g_return_val_if_fail (iter, FALSE); g_return_val_if_fail (iter, FALSE);
g_return_val_if_fail (!mu_msg_iter_is_null(iter), FALSE);
try { try {
++iter->_offset; ++iter->_offset;
@ -172,18 +174,15 @@ mu_msg_iter_next (MuMsgIter *iter)
gboolean gboolean
mu_msg_iter_is_null (MuMsgIter *iter) mu_msg_iter_is_null (MuMsgIter *iter)
{ {
g_return_val_if_fail (iter, TRUE); return iter ? iter->_is_null : TRUE;
return iter->_is_null;
} }
const gchar* const gchar*
mu_msg_iter_get_field (MuMsgIter *iter, const MuMsgField *field) mu_msg_iter_get_field (MuMsgIter *iter, const MuMsgField *field)
{ {
g_return_val_if_fail (iter, NULL);
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
g_return_val_if_fail (field, NULL); g_return_val_if_fail (field, NULL);
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
try { try {
MuMsgFieldId id; MuMsgFieldId id;
@ -202,8 +201,10 @@ mu_msg_iter_get_field (MuMsgIter *iter, const MuMsgField *field)
gint64 gint64
mu_msg_iter_get_field_numeric (MuMsgIter *iter, mu_msg_iter_get_field_numeric (MuMsgIter *iter,
const MuMsgField *field) const MuMsgField *field)
{ {
g_return_val_if_fail (field, -1);
g_return_val_if_fail (!mu_msg_iter_is_null(iter), -1);
g_return_val_if_fail (mu_msg_field_is_numeric(field), -1); g_return_val_if_fail (mu_msg_field_is_numeric(field), -1);
try { try {
@ -235,8 +236,7 @@ get_field_number (MuMsgIter *iter, MuMsgFieldId id)
unsigned int unsigned int
mu_msg_iter_get_docid (MuMsgIter *iter) mu_msg_iter_get_docid (MuMsgIter *iter)
{ {
g_return_val_if_fail (iter, 0); g_return_val_if_fail (!mu_msg_iter_is_null(iter), -1);
try { try {
return iter->_cursor.get_document().get_docid(); return iter->_cursor.get_document().get_docid();
@ -247,6 +247,7 @@ mu_msg_iter_get_docid (MuMsgIter *iter)
const char* const char*
mu_msg_iter_get_path (MuMsgIter *iter) mu_msg_iter_get_path (MuMsgIter *iter)
{ {
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_PATH); return get_field (iter, MU_MSG_FIELD_ID_PATH);
} }
@ -254,12 +255,14 @@ mu_msg_iter_get_path (MuMsgIter *iter)
const char* const char*
mu_msg_iter_get_from (MuMsgIter *iter) mu_msg_iter_get_from (MuMsgIter *iter)
{ {
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_FROM); return get_field (iter, MU_MSG_FIELD_ID_FROM);
} }
const char* const char*
mu_msg_iter_get_to (MuMsgIter *iter) mu_msg_iter_get_to (MuMsgIter *iter)
{ {
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_TO); return get_field (iter, MU_MSG_FIELD_ID_TO);
} }
@ -267,6 +270,7 @@ mu_msg_iter_get_to (MuMsgIter *iter)
const char* const char*
mu_msg_iter_get_cc (MuMsgIter *iter) mu_msg_iter_get_cc (MuMsgIter *iter)
{ {
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_CC); return get_field (iter, MU_MSG_FIELD_ID_CC);
} }
@ -274,6 +278,7 @@ mu_msg_iter_get_cc (MuMsgIter *iter)
const char* const char*
mu_msg_iter_get_subject (MuMsgIter *iter) mu_msg_iter_get_subject (MuMsgIter *iter)
{ {
g_return_val_if_fail (!mu_msg_iter_is_null(iter), NULL);
return get_field (iter, MU_MSG_FIELD_ID_SUBJECT); return get_field (iter, MU_MSG_FIELD_ID_SUBJECT);
} }
@ -281,25 +286,30 @@ mu_msg_iter_get_subject (MuMsgIter *iter)
size_t size_t
mu_msg_iter_get_size (MuMsgIter *iter) mu_msg_iter_get_size (MuMsgIter *iter)
{ {
return (size_t) get_field_number (iter, MU_MSG_FIELD_ID_SIZE); g_return_val_if_fail (!mu_msg_iter_is_null(iter), 0);
return static_cast<size_t>(get_field_number (iter, MU_MSG_FIELD_ID_SIZE));
} }
time_t time_t
mu_msg_iter_get_date (MuMsgIter *iter) mu_msg_iter_get_date (MuMsgIter *iter)
{ {
return (size_t) get_field_number (iter, MU_MSG_FIELD_ID_DATE); g_return_val_if_fail (!mu_msg_iter_is_null(iter), 0);
return static_cast<size_t> (get_field_number (iter, MU_MSG_FIELD_ID_DATE));
} }
MuMsgFlags MuMsgFlags
mu_msg_iter_get_flags (MuMsgIter *iter) mu_msg_iter_get_flags (MuMsgIter *iter)
{ {
return (MuMsgFlags) get_field_number (iter, MU_MSG_FIELD_ID_FLAGS); g_return_val_if_fail (!mu_msg_iter_is_null(iter), MU_MSG_FLAG_NONE);
return static_cast<MuMsgFlags>
(get_field_number (iter, MU_MSG_FIELD_ID_FLAGS));
} }
MuMsgPrio MuMsgPrio
mu_msg_iter_get_prio (MuMsgIter *iter) mu_msg_iter_get_prio (MuMsgIter *iter)
{ {
return (MuMsgPrio) get_field_number (iter, MU_MSG_FIELD_ID_PRIO); g_return_val_if_fail (!mu_msg_iter_is_null(iter), MU_MSG_PRIO_NONE);
return static_cast<MuMsgPrio>(get_field_number (iter, MU_MSG_FIELD_ID_PRIO));
} }

View File

@ -58,8 +58,12 @@ void mu_msg_iter_destroy (MuMsgIter *iter);
/** /**
* get the corresponding MuMsg for this iter; this requires * get the corresponding MuMsg for this iter; this requires the
* the corresponding message file to be present at the expected place * corresponding message file to be present at the expected place in
* the maildir in the file system. Note, it's faster to use the
* database fields (the various mu_msg_iter_get_... functions), so
* MuMsg should use only when information is needed that is not
* provided from the iter).
* *
* @param iter a valid MuMsgIter instance * @param iter a valid MuMsgIter instance
* *