1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* camel-disco-folder.h: Abstract class for a disconnectable folder
*
* Authors: Dan Winship <danw@ximian.com>
*
* Copyright 2001 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU Lesser General Public
* License as published by the Free Software Foundation.
*
* This program 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 program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
#ifndef CAMEL_DISCO_FOLDER_H
#define CAMEL_DISCO_FOLDER_H 1
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus }*/
#include "camel-folder.h"
#define CAMEL_DISCO_FOLDER_TYPE (camel_disco_folder_get_type ())
#define CAMEL_DISCO_FOLDER(obj) (CAMEL_CHECK_CAST((obj), CAMEL_DISCO_FOLDER_TYPE, CamelDiscoFolder))
#define CAMEL_DISCO_FOLDER_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_DISCO_FOLDER_TYPE, CamelDiscoFolderClass))
#define CAMEL_IS_DISCO_FOLDER(o) (CAMEL_CHECK_TYPE((o), CAMEL_DISCO_FOLDER_TYPE))
enum {
CAMEL_DISCO_FOLDER_ARG_OFFLINE_SYNC = CAMEL_FOLDER_ARG_LAST,
CAMEL_DISCO_FOLDER_ARG_LAST = CAMEL_FOLDER_ARG_LAST + 0x100
};
enum {
CAMEL_DISCO_FOLDER_OFFLINE_SYNC = CAMEL_DISCO_FOLDER_ARG_OFFLINE_SYNC | CAMEL_ARG_BOO,
};
struct _CamelDiscoFolder {
CamelFolder parent_object;
unsigned int offline_sync:1;
};
typedef struct {
CamelFolderClass parent_class;
void (*refresh_info_online) (CamelFolder *folder, CamelException *ex);
void (*sync_online) (CamelFolder *folder, CamelException *ex);
void (*sync_offline) (CamelFolder *folder, CamelException *ex);
void (*sync_resyncing) (CamelFolder *folder, CamelException *ex);
void (*expunge_uids_online) (CamelFolder *folder, GPtrArray *uids,
CamelException *ex);
void (*expunge_uids_offline) (CamelFolder *folder, GPtrArray *uids,
CamelException *ex);
void (*expunge_uids_resyncing) (CamelFolder *folder, GPtrArray *uids,
CamelException *ex);
void (*append_online) (CamelFolder *folder,
CamelMimeMessage *message,
const CamelMessageInfo *info,
char **appended_uid,
CamelException *ex);
void (*append_offline) (CamelFolder *folder,
CamelMimeMessage *message,
const CamelMessageInfo *info,
char **appended_uid,
CamelException *ex);
void (*append_resyncing) (CamelFolder *folder,
CamelMimeMessage *message,
const CamelMessageInfo *info,
char **appended_uid,
CamelException *ex);
void (*transfer_online) (CamelFolder *source, GPtrArray *uids,
CamelFolder *destination,
GPtrArray **transferred_uids,
gboolean delete_originals,
CamelException *ex);
void (*transfer_offline) (CamelFolder *source, GPtrArray *uids,
CamelFolder *destination,
GPtrArray **transferred_uids,
gboolean delete_originals,
CamelException *ex);
void (*transfer_resyncing) (CamelFolder *source, GPtrArray *uids,
CamelFolder *destination,
GPtrArray **transferred_uids,
gboolean delete_originals,
CamelException *ex);
void (*cache_message) (CamelDiscoFolder *disco_folder,
const char *uid, CamelException *ex);
void (*prepare_for_offline) (CamelDiscoFolder *disco_folder,
const char *expression,
CamelException *ex);
void (*update_uid) (CamelFolder *folder, const char *old_uid,
const char *new_uid);
} CamelDiscoFolderClass;
/* public methods */
void camel_disco_folder_expunge_uids (CamelFolder *folder, GPtrArray *uids,
CamelException *ex);
void camel_disco_folder_cache_message (CamelDiscoFolder *disco_folder,
const char *uid,
CamelException *ex);
void camel_disco_folder_prepare_for_offline (CamelDiscoFolder *disco_folder,
const char *expression,
CamelException *ex);
/* Standard Camel function */
CamelType camel_disco_folder_get_type (void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* CAMEL_DISCO_FOLDER_H */
|