/* GNU Mailutils -- a suite of utilities for electronic mail
Copyright (C) 2009-2021 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with this library. If not, see
. */
#include
using namespace mailutils;
//
// Attribute
//
Attribute :: Attribute ()
{
}
Attribute :: Attribute (const mu_attribute_t attr)
{
if (attr == 0)
throw Exception ("Attribute::Attribute", EINVAL);
this->attr = attr;
}
inline bool
Attribute :: is_modified ()
{
return (bool) mu_attribute_is_modified (attr);
}
inline void
Attribute :: clear_modified ()
{
mu_attribute_clear_modified (attr);
}
inline void
Attribute :: set_modified ()
{
mu_attribute_set_modified (attr);
}
//
// is_*
//
inline bool
Attribute :: is_userflag (int flag)
{
return (bool) mu_attribute_is_userflag (attr, flag);
}
inline bool
Attribute :: is_seen ()
{
return (bool) mu_attribute_is_seen (attr);
}
inline bool
Attribute :: is_answered () {
return (bool) mu_attribute_is_answered (attr);
}
inline bool
Attribute :: is_flagged ()
{
return (bool) mu_attribute_is_flagged (attr);
}
inline bool
Attribute :: is_deleted ()
{
return (bool) mu_attribute_is_deleted (attr);
}
inline bool
Attribute :: is_draft ()
{
return (bool) mu_attribute_is_draft (attr);
}
inline bool
Attribute :: is_recent ()
{
return (bool) mu_attribute_is_recent (attr);
}
inline bool
Attribute :: is_read ()
{
return (bool) mu_attribute_is_read (attr);
}
//
// set_*
//
inline void
Attribute :: set_userflag (int flag)
{
mu_attribute_set_userflag (attr, flag);
}
inline void
Attribute :: set_seen ()
{
mu_attribute_set_seen (attr);
}
inline void
Attribute :: set_answered ()
{
mu_attribute_set_answered (attr);
}
inline void
Attribute :: set_flagged ()
{
mu_attribute_set_flagged (attr);
}
inline void
Attribute :: set_deleted ()
{
mu_attribute_set_deleted (attr);
}
inline void
Attribute :: set_draft ()
{
mu_attribute_set_draft (attr);
}
inline void
Attribute :: set_recent ()
{
mu_attribute_set_recent (attr);
}
inline void
Attribute :: set_read ()
{
mu_attribute_set_read (attr);
}
//
// unset_*
//
inline void
Attribute :: unset_userflag (int flag)
{
mu_attribute_unset_userflag (attr, flag);
}
inline void
Attribute :: unset_seen ()
{
mu_attribute_unset_seen (attr);
}
inline void
Attribute :: unset_answered ()
{
mu_attribute_unset_answered (attr);
}
inline void
Attribute :: unset_flagged ()
{
mu_attribute_unset_flagged (attr);
}
inline void
Attribute :: unset_deleted ()
{
mu_attribute_unset_deleted (attr);
}
inline void
Attribute :: unset_draft ()
{
mu_attribute_unset_draft (attr);
}
inline void
Attribute :: unset_recent ()
{
mu_attribute_unset_recent (attr);
}
inline void
Attribute :: unset_read ()
{
mu_attribute_unset_read (attr);
}
std::string
Attribute :: to_string ()
{
char buf[MU_STATUS_BUF_SIZE];
size_t na = 0;
mu_attribute_to_string (attr, buf, sizeof (buf), &na);
return std::string (buf);
}
namespace mailutils
{
std::ostream& operator << (std::ostream& os, Attribute& attr) {
return os << attr.to_string ();
};
}