Statistics
| Revision:

root / src / inc.h @ 3118

History | View | Annotate | Download (2.4 kB)

1
/*
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3
 * Copyright (C) 1999-2012 Hiroyuki Yamamoto
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 */
19
20
#ifndef __INC_H__
21
#define __INC_H__
22
23
#ifdef HAVE_CONFIG_H
24
#  include "config.h"
25
#endif
26
27
#include <glib.h>
28
29
#include "mainwindow.h"
30
#include "progressdialog.h"
31
#include "prefs_account.h"
32
#include "session.h"
33
#include "pop.h"
34
35
typedef struct _IncProgressDialog        IncProgressDialog;
36
typedef struct _IncSession                IncSession;
37
38
typedef enum
39
{
40
        INC_SUCCESS,
41
        INC_CONNECT_ERROR,
42
        INC_AUTH_FAILED,
43
        INC_LOCKED,
44
        INC_ERROR,
45
        INC_NO_SPACE,
46
        INC_IO_ERROR,
47
        INC_SOCKET_ERROR,
48
        INC_EOF,
49
        INC_TIMEOUT,
50
        INC_CANCEL,
51
        INC_LOOKUP_ERROR
52
} IncState;
53
54
struct _IncProgressDialog
55
{
56
        ProgressDialog *dialog;
57
58
        MainWindow *mainwin;
59
60
        gboolean show_dialog;
61
62
        GTimeVal progress_tv;
63
        GTimeVal folder_tv;
64
65
        GList *queue_list;        /* list of IncSession */
66
        gint cur_row;
67
};
68
69
struct _IncSession
70
{
71
        Session *session;
72
        IncState inc_state;
73
74
        GHashTable *folder_table;        /* table of destination folders */
75
        GHashTable *tmp_folder_table;        /* for progressive update */
76
77
        GSList *junk_fltlist;
78
79
        gint64 cur_total_bytes;
80
        gint new_msgs;
81
82
        gint start_num;
83
        gint64 start_recv_bytes;
84
85
        gint retr_count;
86
87
        gpointer data;
88
};
89
90
#define TIMEOUT_ITV        200
91
92
void inc_mail                        (MainWindow        *mainwin);
93
gint inc_account_mail                (MainWindow        *mainwin,
94
                                 PrefsAccount        *account);
95
void inc_all_account_mail        (MainWindow        *mainwin,
96
                                 gboolean         autocheck);
97
98
gint inc_pop_before_smtp        (PrefsAccount        *account);
99
100
gboolean inc_is_active                (void);
101
void inc_block_notify                (gboolean         notify);
102
103
void inc_cancel_all                (void);
104
105
void inc_lock                        (void);
106
void inc_unlock                        (void);
107
108
void inc_autocheck_timer_init        (MainWindow        *mainwin);
109
void inc_autocheck_timer_set        (void);
110
void inc_autocheck_timer_remove        (void);
111
112
#endif /* __INC_H__ */