Implemented the start() and stop() methods
This commit is contained in:
parent
67b91a3cb6
commit
0026b2b0ab
|
@ -130,6 +130,8 @@ static int _mbox_destroy(Mbox * mbox);
|
||||||
static AccountConfig * _mbox_get_config(Mbox * mbox);
|
static AccountConfig * _mbox_get_config(Mbox * mbox);
|
||||||
static char * _mbox_get_source(Mbox * mbox, AccountFolder * folder,
|
static char * _mbox_get_source(Mbox * mbox, AccountFolder * folder,
|
||||||
AccountMessage * message);
|
AccountMessage * message);
|
||||||
|
static int _mbox_start(Mbox * mbox);
|
||||||
|
static void _mbox_stop(Mbox * mbox);
|
||||||
static int _mbox_refresh(Mbox * mbox, AccountFolder * folder,
|
static int _mbox_refresh(Mbox * mbox, AccountFolder * folder,
|
||||||
AccountMessage * message);
|
AccountMessage * message);
|
||||||
|
|
||||||
|
@ -144,8 +146,8 @@ AccountPluginDefinition account_plugin =
|
||||||
_mbox_destroy,
|
_mbox_destroy,
|
||||||
_mbox_get_config,
|
_mbox_get_config,
|
||||||
_mbox_get_source,
|
_mbox_get_source,
|
||||||
NULL,
|
_mbox_start,
|
||||||
NULL,
|
_mbox_stop,
|
||||||
_mbox_refresh
|
_mbox_refresh
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -175,8 +177,6 @@ static int _message_set_header(AccountMessage * message, char const * header);
|
||||||
static Mbox * _mbox_init(AccountPluginHelper * helper)
|
static Mbox * _mbox_init(AccountPluginHelper * helper)
|
||||||
{
|
{
|
||||||
Mbox * mbox;
|
Mbox * mbox;
|
||||||
size_t i;
|
|
||||||
AccountFolder * af;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||||
|
@ -191,18 +191,6 @@ static Mbox * _mbox_init(AccountPluginHelper * helper)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
memcpy(mbox->config, &_mbox_config, sizeof(_mbox_config));
|
memcpy(mbox->config, &_mbox_config, sizeof(_mbox_config));
|
||||||
for(i = 0; i < _FOLDER_CNT; i++)
|
|
||||||
{
|
|
||||||
af = &mbox->folders[i];
|
|
||||||
af->config = &_mbox_config[_mbox_folder_defaults[i].config];
|
|
||||||
if(af->config->value == NULL)
|
|
||||||
continue;
|
|
||||||
af->folder = helper->folder_new(helper->account, af, NULL,
|
|
||||||
_mbox_folder_defaults[i].type,
|
|
||||||
_mbox_folder_defaults[i].name);
|
|
||||||
af->mbox = mbox;
|
|
||||||
af->source = g_idle_add(_folder_idle, af);
|
|
||||||
}
|
|
||||||
return mbox;
|
return mbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,6 +207,7 @@ static int _mbox_destroy(Mbox * mbox)
|
||||||
#endif
|
#endif
|
||||||
if(mbox == NULL) /* XXX _mbox_destroy() may be called uninitialized */
|
if(mbox == NULL) /* XXX _mbox_destroy() may be called uninitialized */
|
||||||
return 0;
|
return 0;
|
||||||
|
_mbox_stop(mbox);
|
||||||
for(i = 0; i < _FOLDER_CNT; i++)
|
for(i = 0; i < _FOLDER_CNT; i++)
|
||||||
{
|
{
|
||||||
mf = &mbox->folders[i];
|
mf = &mbox->folders[i];
|
||||||
|
@ -273,6 +262,55 @@ static char * _mbox_get_source(Mbox * mbox, AccountFolder * folder,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* mbox_start */
|
||||||
|
static int _mbox_start(Mbox * mbox)
|
||||||
|
{
|
||||||
|
AccountPluginHelper * helper = mbox->helper;
|
||||||
|
size_t i;
|
||||||
|
AccountFolder * af;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||||
|
#endif
|
||||||
|
_mbox_stop(mbox);
|
||||||
|
for(i = 0; i < _FOLDER_CNT; i++)
|
||||||
|
{
|
||||||
|
af = &mbox->folders[i];
|
||||||
|
af->config = &mbox->config[_mbox_folder_defaults[i].config];
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr, "DEBUG: %s() \"%s\"\n", __func__,
|
||||||
|
(char *)af->config->value);
|
||||||
|
#endif
|
||||||
|
if(af->config->value == NULL)
|
||||||
|
continue;
|
||||||
|
af->folder = helper->folder_new(helper->account, af, NULL,
|
||||||
|
_mbox_folder_defaults[i].type,
|
||||||
|
_mbox_folder_defaults[i].name);
|
||||||
|
af->mbox = mbox;
|
||||||
|
af->source = g_idle_add(_folder_idle, af);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* mbox_stop */
|
||||||
|
static void _mbox_stop(Mbox * mbox)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||||
|
#endif
|
||||||
|
/* FIXME really implement */
|
||||||
|
for(i = 0; i < _FOLDER_CNT; i++)
|
||||||
|
{
|
||||||
|
if(mbox->folders[i].source != 0)
|
||||||
|
g_source_remove(mbox->folders[i].source);
|
||||||
|
mbox->folders[i].source = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* mbox_refresh */
|
/* mbox_refresh */
|
||||||
static int _mbox_refresh(Mbox * mbox, AccountFolder * folder,
|
static int _mbox_refresh(Mbox * mbox, AccountFolder * folder,
|
||||||
AccountMessage * message)
|
AccountMessage * message)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user