Style changes. No functional changes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36095 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2010-04-08 20:38:53 +00:00
parent 599a58a6ef
commit 9917e1a6b2
+158 -81
View File
@@ -15,32 +15,48 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
class _EXPORT BMailChain; class BMailChain;
namespace MailInternal { namespace MailInternal {
status_t WriteMessageFile(const BMessage& archive, const BPath& path, const char* name); status_t WriteMessageFile(const BMessage& archive,
const BPath& path, const char* name);
} }
#include <MailSettings.h> #include <MailSettings.h>
#include <ChainRunner.h> #include <ChainRunner.h>
#include <status.h> #include <status.h>
BMailChain::BMailChain(uint32 i) BMailChain::BMailChain(uint32 i)
: id(i), meta_data(NULL), _err(B_OK), direction(inbound), settings_ct(0), addons_ct(0) :
id(i),
meta_data(NULL),
_err(B_OK),
direction(inbound),
settings_ct(0),
addons_ct(0)
{ {
name[0] = 0; name[0] = 0;
Reload(); Reload();
} }
BMailChain::BMailChain(BMessage* settings) BMailChain::BMailChain(BMessage* settings)
: id(settings->FindInt32("id")), meta_data(NULL), _err(B_OK), direction(inbound), settings_ct(0), addons_ct(0) :
id(settings->FindInt32("id")),
meta_data(NULL),
_err(B_OK),
direction(inbound),
settings_ct(0),
addons_ct(0)
{ {
name[0] = 0; name[0] = 0;
Load(settings); Load(settings);
} }
BMailChain::~BMailChain() { BMailChain::~BMailChain()
{
delete meta_data; delete meta_data;
for (int32 i = 0; filter_settings.ItemAt(i); i++) for (int32 i = 0; filter_settings.ItemAt(i); i++)
@@ -50,7 +66,9 @@ BMailChain::~BMailChain() {
delete (entry_ref*)filter_addons.ItemAt(i); delete (entry_ref*)filter_addons.ItemAt(i);
} }
status_t BMailChain::Load(BMessage* settings)
status_t
BMailChain::Load(BMessage* settings)
{ {
delete meta_data; delete meta_data;
@@ -60,16 +78,18 @@ status_t BMailChain::Load(BMessage* settings)
const char* n; const char* n;
status_t ret = settings->FindString("name", &n); status_t ret = settings->FindString("name", &n);
if (ret == B_OK) strncpy(name,n,sizeof(name)); if (ret == B_OK)
else name[0]='\0'; strncpy(name, n, sizeof(name));
else
name[0] = '\0';
type_code t; type_code t;
settings->GetInfo("filter_settings", &t, (int32*)(&settings_ct)); settings->GetInfo("filter_settings", &t, (int32*)(&settings_ct));
settings->GetInfo("filter_addons", &t, (int32*)(&addons_ct)); settings->GetInfo("filter_addons", &t, (int32*)(&addons_ct));
if (settings_ct!=addons_ct) return B_MISMATCHED_VALUES; if (settings_ct != addons_ct)
return B_MISMATCHED_VALUES;
for (int i = 0;;i++) for (int i = 0;;i++) {
{
BMessage* filter = new BMessage(); BMessage* filter = new BMessage();
entry_ref* ref = new entry_ref(); entry_ref* ref = new entry_ref();
char* addon_path; char* addon_path;
@@ -77,8 +97,7 @@ status_t BMailChain::Load(BMessage* settings)
if (settings->FindMessage("filter_settings", i, filter) < B_OK if (settings->FindMessage("filter_settings", i, filter) < B_OK
|| (settings->FindString("filter_addons", i, (const char**)&addon_path) < B_OK || (settings->FindString("filter_addons", i, (const char**)&addon_path) < B_OK
|| get_ref_for_path(addon_path, ref) < B_OK) || get_ref_for_path(addon_path, ref) < B_OK)
&& settings->FindRef("filter_addons",i,ref) < B_OK) && settings->FindRef("filter_addons", i, ref) < B_OK) {
{
delete filter; delete filter;
delete ref; delete ref;
break; break;
@@ -91,11 +110,13 @@ status_t BMailChain::Load(BMessage* settings)
if (filter_settings.CountItems() != settings_ct if (filter_settings.CountItems() != settings_ct
|| filter_addons.CountItems() != addons_ct) || filter_addons.CountItems() != addons_ct)
return B_NO_MEMORY; return B_NO_MEMORY;
else
return B_OK; return B_OK;
} }
status_t BMailChain::InitCheck() const
status_t
BMailChain::InitCheck() const
{ {
if (settings_ct != addons_ct) if (settings_ct != addons_ct)
return B_MISMATCHED_VALUES; return B_MISMATCHED_VALUES;
@@ -109,39 +130,42 @@ status_t BMailChain::InitCheck() const
} }
status_t BMailChain::Archive(BMessage* archive, bool deep) const status_t
BMailChain::Archive(BMessage* archive, bool deep) const
{ {
status_t ret = B_OK; status_t ret = InitCheck();
ret = InitCheck(); if (ret != B_OK && ret != B_FILE_ERROR)
if ((ret!=B_OK) && (ret != B_FILE_ERROR)) return ret; return ret;
ret = BArchivable::Archive(archive, deep); ret = BArchivable::Archive(archive, deep);
if (ret!=B_OK) return ret; if (ret != B_OK)
return ret;
ret = archive->AddString("class", "BMailChain"); ret = archive->AddString("class", "BMailChain");
if (ret!=B_OK) return ret; if (ret != B_OK)
return ret;
ret = archive->AddInt32("id", id); ret = archive->AddInt32("id", id);
if (ret!=B_OK) return ret; if (ret != B_OK)
return ret;
ret = archive->AddString("name", name); ret = archive->AddString("name", name);
if (ret!=B_OK) return ret; if (ret != B_OK)
return ret;
ret = archive->AddMessage("meta_data", meta_data); ret = archive->AddMessage("meta_data", meta_data);
if (ret!=B_OK) return ret; if (ret != B_OK)
return ret;
if (ret==B_OK && deep) if (ret == B_OK && deep) {
{
BMessage* settings; BMessage* settings;
entry_ref* ref; entry_ref* ref;
int32 i; int32 i;
for (i = 0;((settings = (BMessage*)filter_settings.ItemAt(i)) != NULL) for (i = 0;((settings = (BMessage*)filter_settings.ItemAt(i)) != NULL)
&& ((ref = (entry_ref*)filter_addons.ItemAt(i)) != NULL); && ((ref = (entry_ref*)filter_addons.ItemAt(i)) != NULL);
++i) ++i) {
{
ret = archive->AddMessage("filter_settings", settings); ret = archive->AddMessage("filter_settings", settings);
if (ret < B_OK) if (ret < B_OK)
return ret; return ret;
@@ -160,17 +184,20 @@ status_t BMailChain::Archive(BMessage* archive, bool deep) const
return B_OK; return B_OK;
} }
BArchivable* BMailChain::Instantiate(BMessage* archive)
BArchivable*
BMailChain::Instantiate(BMessage* archive)
{ {
return validate_instantiation(archive, "BMailChain") ? return validate_instantiation(archive, "BMailChain") ?
new BMailChain(archive) : NULL; new BMailChain(archive) : NULL;
} }
status_t BMailChain::Path(BPath *path) const
status_t
BMailChain::Path(BPath* path) const
{ {
status_t status = find_directory(B_USER_SETTINGS_DIRECTORY,path); status_t status = find_directory(B_USER_SETTINGS_DIRECTORY,path);
if (status < B_OK) if (status < B_OK) {
{
fprintf(stderr, "Couldn't find user settings directory: %s\n", fprintf(stderr, "Couldn't find user settings directory: %s\n",
strerror(status)); strerror(status));
return status; return status;
@@ -190,14 +217,15 @@ status_t BMailChain::Path(BPath *path) const
return B_OK; return B_OK;
} }
status_t BMailChain::Save(bigtime_t /*timeout*/)
status_t
BMailChain::Save(bigtime_t /*timeout*/)
{ {
status_t ret; status_t ret;
BMessage archive; BMessage archive;
ret = Archive(&archive,true); ret = Archive(&archive,true);
if (ret != B_OK) if (ret != B_OK) {
{
fprintf(stderr, "Couldn't archive chain %ld: %s\n", fprintf(stderr, "Couldn't archive chain %ld: %s\n",
id, strerror(ret)); id, strerror(ret));
return ret; return ret;
@@ -214,7 +242,9 @@ status_t BMailChain::Save(bigtime_t /*timeout*/)
return MailInternal::WriteMessageFile(archive,directory,path.Leaf()/*,timeout*/); return MailInternal::WriteMessageFile(archive,directory,path.Leaf()/*,timeout*/);
} }
status_t BMailChain::Delete() const
status_t
BMailChain::Delete() const
{ {
status_t status; status_t status;
BPath path; BPath path;
@@ -228,22 +258,27 @@ status_t BMailChain::Delete() const
return entry.Remove(); return entry.Remove();
} }
b_mail_chain_direction BMailChain::ChainDirection() const {
b_mail_chain_direction
BMailChain::ChainDirection() const
{
return direction; return direction;
} }
void BMailChain::SetChainDirection(b_mail_chain_direction dir) {
void
BMailChain::SetChainDirection(b_mail_chain_direction dir)
{
direction = dir; direction = dir;
} }
status_t BMailChain::Reload()
{
status_t ret;
BPath path; status_t
ret = find_directory(B_USER_SETTINGS_DIRECTORY, &path); BMailChain::Reload()
if (ret != B_OK)
{ {
BPath path;
status_t ret = find_directory(B_USER_SETTINGS_DIRECTORY, &path);
if (ret != B_OK) {
fprintf(stderr, "Couldn't find user settings directory: %s\n", fprintf(stderr, "Couldn't find user settings directory: %s\n",
strerror(ret)); strerror(ret));
_err = ret; _err = ret;
@@ -284,8 +319,7 @@ status_t BMailChain::Reload()
BFile settings(path.Path(),B_READ_ONLY); BFile settings(path.Path(),B_READ_ONLY);
ret = settings.InitCheck(); ret = settings.InitCheck();
if (ret != B_OK) if (ret != B_OK) {
{
BMessage empty; BMessage empty;
fprintf(stderr, "Couldn't open chain settings file '%s': %s\n", fprintf(stderr, "Couldn't open chain settings file '%s': %s\n",
path.Path(), strerror(ret)); path.Path(), strerror(ret));
@@ -297,8 +331,7 @@ status_t BMailChain::Reload()
// read settings // read settings
BMessage tmp; BMessage tmp;
ret = tmp.Unflatten(&settings); ret = tmp.Unflatten(&settings);
if (ret != B_OK) if (ret != B_OK) {
{
fprintf(stderr, "Couldn't read settings from '%s': %s\n", fprintf(stderr, "Couldn't read settings from '%s': %s\n",
path.Path(), strerror(ret)); path.Path(), strerror(ret));
Load(&tmp); Load(&tmp);
@@ -311,70 +344,104 @@ status_t BMailChain::Reload()
return ret; return ret;
} }
uint32 BMailChain::ID() const { return id; }
const char *BMailChain::Name() const { return name; } uint32
status_t BMailChain::SetName(const char* n) BMailChain::ID() const
{ {
if (n) strncpy(name,n,sizeof(name)); return id;
else name[0]='\0'; }
const char*
BMailChain::Name() const
{
return name;
}
status_t
BMailChain::SetName(const char* n)
{
if (n)
strncpy(name, n, sizeof(name));
else
name[0] = '\0';
return B_OK; return B_OK;
} }
BMessage *BMailChain::MetaData() const {
BMessage*
BMailChain::MetaData() const
{
return meta_data; return meta_data;
} }
int32 BMailChain::CountFilters() const
int32
BMailChain::CountFilters() const
{ {
return filter_settings.CountItems(); return filter_settings.CountItems();
} }
status_t BMailChain::GetFilter(int32 index, BMessage* out_settings, entry_ref *addon) const
status_t
BMailChain::GetFilter(int32 index, BMessage* out_settings,
entry_ref* addon) const
{ {
if (index >= filter_settings.CountItems()) if (index >= filter_settings.CountItems())
return B_BAD_INDEX; return B_BAD_INDEX;
BMessage* settings = (BMessage*)filter_settings.ItemAt(index); BMessage* settings = (BMessage*)filter_settings.ItemAt(index);
if (settings) *out_settings = *settings; if (settings)
else return B_BAD_INDEX; *out_settings = *settings;
else
return B_BAD_INDEX;
if (addon) if (addon) {
{
entry_ref* ref = (entry_ref*)filter_addons.ItemAt(index); entry_ref* ref = (entry_ref*)filter_addons.ItemAt(index);
if (ref) *addon = *ref; if (ref)
else return B_BAD_INDEX; *addon = *ref;
else
return B_BAD_INDEX;
} }
return B_OK; return B_OK;
} }
status_t BMailChain::SetFilter(int32 index, const BMessage& s, const entry_ref& addon)
status_t
BMailChain::SetFilter(int32 index, const BMessage& s,
const entry_ref& addon)
{ {
BMessage* settings = (BMessage*)filter_settings.ItemAt(index); BMessage* settings = (BMessage*)filter_settings.ItemAt(index);
if (settings) *settings = s; if (settings)
else return B_BAD_INDEX; *settings = s;
else
return B_BAD_INDEX;
entry_ref* ref = (entry_ref*)filter_addons.ItemAt(index); entry_ref* ref = (entry_ref*)filter_addons.ItemAt(index);
if (ref) *ref = addon; if (ref)
else return B_BAD_INDEX; *ref = addon;
else
return B_BAD_INDEX;
return B_OK; return B_OK;
} }
status_t BMailChain::AddFilter(const BMessage& settings, const entry_ref& addon)
status_t
BMailChain::AddFilter(const BMessage& settings, const entry_ref& addon)
{ {
BMessage* s = new BMessage(settings); BMessage* s = new BMessage(settings);
entry_ref* a = new entry_ref(addon); entry_ref* a = new entry_ref(addon);
if (!filter_settings.AddItem(s)) if (!filter_settings.AddItem(s)) {
{
delete s; delete s;
delete a; delete a;
return B_BAD_INDEX; return B_BAD_INDEX;
} }
else if (!filter_addons.AddItem(a))
{ if (!filter_addons.AddItem(a)) {
filter_settings.RemoveItem(settings_ct); filter_settings.RemoveItem(settings_ct);
delete s; delete s;
delete a; delete a;
@@ -387,19 +454,22 @@ status_t BMailChain::AddFilter(const BMessage& settings, const entry_ref& addon)
return B_OK; return B_OK;
} }
status_t BMailChain::AddFilter(int32 index, const BMessage& settings, const entry_ref& addon)
status_t
BMailChain::AddFilter(int32 index, const BMessage& settings,
const entry_ref& addon)
{ {
BMessage*s = new BMessage(settings); BMessage*s = new BMessage(settings);
entry_ref* a = new entry_ref(addon); entry_ref* a = new entry_ref(addon);
if (!filter_settings.AddItem(s,index)) if (!filter_settings.AddItem(s, index)) {
{
delete s; delete s;
delete a; delete a;
return B_BAD_INDEX; return B_BAD_INDEX;
} }
else if (!filter_addons.AddItem(a,index))
{ if (!filter_addons.AddItem(a, index)) {
filter_settings.RemoveItem(index); filter_settings.RemoveItem(index);
delete s; delete s;
delete a; delete a;
@@ -411,7 +481,9 @@ status_t BMailChain::AddFilter(int32 index, const BMessage& settings, const entr
return B_OK; return B_OK;
} }
status_t BMailChain::RemoveFilter(int32 index)
status_t
BMailChain::RemoveFilter(int32 index)
{ {
BMessage* s = (BMessage*)filter_settings.RemoveItem(index); BMessage* s = (BMessage*)filter_settings.RemoveItem(index);
delete s; delete s;
@@ -425,6 +497,11 @@ status_t BMailChain::RemoveFilter(int32 index)
return s || a ? B_OK : B_BAD_INDEX; return s || a ? B_OK : B_BAD_INDEX;
} }
void BMailChain::RunChain(BMailStatusWindow *window, bool async, bool save_when_done, bool delete_when_done) {
(new BMailChainRunner(this,window,true,save_when_done,delete_when_done))->RunChain(async); void
BMailChain::RunChain(BMailStatusWindow *window, bool async,
bool save_when_done, bool delete_when_done)
{
(new BMailChainRunner(this, window, true, save_when_done,
delete_when_done))->RunChain(async);
} }