1998-06-22 22:39:40 +00:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The contents of this file are subject to the Netscape Public
|
|
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.mozilla.org/NPL/
|
1998-06-22 22:39:40 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* Software distributed under the License is distributed on an "AS
|
|
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
* implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
1998-06-22 22:39:40 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The Original Code is mozilla.org code.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape
|
1998-06-22 22:39:40 +00:00
|
|
|
* Communications Corporation. Portions created by Netscape are
|
1999-11-06 03:43:54 +00:00
|
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
|
|
* Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
1998-06-22 22:39:40 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef MSGDBTYP_H
|
|
|
|
#define MSGDBTYP_H
|
|
|
|
|
|
|
|
typedef void *MSG_DBHandle;
|
|
|
|
typedef void *MSG_HeaderHandle;
|
|
|
|
typedef void *MSG_MailHeaderHandle;
|
|
|
|
typedef void *MSG_NewsHeaderHandle;
|
|
|
|
|
|
|
|
typedef void *MSG_DBFolderInfoHandle;
|
|
|
|
typedef void *MSG_MailDBFolderInfoHandle;
|
|
|
|
typedef void *MSG_NewsDBFolderInfoHandle;
|
|
|
|
|
|
|
|
typedef void *MSG_ThreadHandle;
|
|
|
|
|
|
|
|
typedef void *MSG_OfflineIMAPOperationHandle;
|
|
|
|
typedef void *MSG_OfflineMsgDocumentHandle;
|
|
|
|
typedef void *MSG_IteratorHandle;
|
|
|
|
|
|
|
|
const int kNumUnused = 8;
|
|
|
|
typedef uint32 MsgERR ;
|
|
|
|
|
|
|
|
enum SortOrder
|
|
|
|
{
|
|
|
|
SortTypeNone,
|
|
|
|
SortTypeAscending,
|
|
|
|
SortTypeDescending
|
|
|
|
};
|
|
|
|
enum SortType
|
|
|
|
{
|
|
|
|
SortByDate = 0x12,
|
|
|
|
SortBySubject = 0x13,
|
|
|
|
SortByAuthor = 0x14,
|
|
|
|
SortById = 0x15,
|
|
|
|
SortByThread = 0x16,
|
|
|
|
SortByPriority = 0x17,
|
|
|
|
SortByStatus = 0x18,
|
|
|
|
SortBySize = 0x19,
|
|
|
|
SortByFlagged = 0x1a,
|
|
|
|
SortByUnread = 0x1b,
|
|
|
|
SortByRelevance,
|
|
|
|
SortByRecipient
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ViewType
|
|
|
|
{
|
|
|
|
ViewAny, // this view type matches any other view type,
|
|
|
|
// for the purpose of matching cached views.
|
|
|
|
// Else, it's equivalent to ViewAllThreads
|
|
|
|
ViewAllThreads, // default view, no killed threads
|
|
|
|
ViewOnlyThreadsWithNew,
|
|
|
|
ViewKilledThreads, // obsolete!!! Only remembered because it's in old db's.
|
|
|
|
ViewOnlyNewHeaders,
|
|
|
|
ViewWatchedThreadsWithNew,
|
|
|
|
ViewCustom, // client will insert id's by hand
|
|
|
|
ViewCacheless // probably obsoletes ViewCustom
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* This struct is used to get and set the basic info about a folder */
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
uint16 m_version; /* for upgrading...*/
|
|
|
|
int32 m_sortType; /* the last sort type open on this db. */
|
|
|
|
int16 m_csid; /* default csid for these messages */
|
|
|
|
int16 m_IMAPHierarchySeparator; /* imap path separator */
|
|
|
|
int8 m_sortOrder; /* the last sort order (up or down) */
|
|
|
|
/* mail only (for now) */
|
|
|
|
int32 m_folderSize;
|
|
|
|
time_t m_folderDate;
|
|
|
|
int32 m_parsedThru; /* how much of the folder have we parsed? Not sure needed in new world order */
|
|
|
|
int32 m_expunged_bytes; /* sum of size of deleted messages in folder */
|
|
|
|
|
|
|
|
// IMAP only
|
|
|
|
int32 m_LastMessageUID;
|
|
|
|
int32 m_ImapUidValidity;
|
|
|
|
int32 m_TotalPendingMessages;
|
|
|
|
int32 m_UnreadPendingMessages;
|
|
|
|
|
|
|
|
// news only (for now)
|
|
|
|
MessageKey m_articleNumHighWater; /* largest article number whose header we've seen */
|
|
|
|
MessageKey m_expiredMark; /* Highest invalid article number in group - for expiring */
|
|
|
|
int32 m_viewType; /* for news, the last view type open on this db. */
|
|
|
|
|
|
|
|
int32 m_numVisibleMessages; // doesn't include expunged or ignored messages (but does include collapsed).
|
|
|
|
int32 m_numNewMessages;
|
|
|
|
int32 m_numMessages; // includes expunged and ignored messages
|
|
|
|
int32 m_flags; // folder specific flags. This holds things like re-use thread pane,
|
|
|
|
// configured for off-line use, use default retrieval, purge article/header options
|
|
|
|
MessageKey m_lastMessageLoaded; // set by the FE's to remember the last loaded message
|
|
|
|
int32 m_unused[kNumUnused];
|
|
|
|
} MSG_DBFolderInfoExchange;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
MessageKey m_threadId;
|
|
|
|
MessageKey m_messageKey; //news: article number, mail mbox offset
|
|
|
|
time_t m_date;
|
|
|
|
uint32 m_messageSize; // lines for news articles, bytes for mail messages
|
|
|
|
uint32 m_flags;
|
|
|
|
char m_level;
|
|
|
|
} MSG_DBHeaderExchange;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
uint16 m_numChildren;
|
|
|
|
uint16 m_numNewChildren;
|
|
|
|
uint32 m_flags;
|
|
|
|
MessageKey m_threadKey;
|
|
|
|
} MSG_DBThreadExchange;
|
|
|
|
|
|
|
|
typedef struct MSG_PurgeInfo
|
|
|
|
{
|
|
|
|
MSG_PurgeByPreferences m_purgeBy;
|
|
|
|
XP_Bool m_useDefaults;
|
|
|
|
XP_Bool m_unreadOnly;
|
|
|
|
int32 m_daysToKeep;
|
|
|
|
int32 m_numHeadersToKeep;
|
|
|
|
} MSG_PurgeInfo;
|
|
|
|
|
|
|
|
typedef struct MSG_RetrieveArtInfo
|
|
|
|
{
|
|
|
|
XP_Bool m_useDefaults;
|
|
|
|
XP_Bool m_byReadness;
|
|
|
|
XP_Bool m_unreadOnly;
|
|
|
|
XP_Bool m_byDate;
|
|
|
|
int32 m_daysOld;
|
|
|
|
} MSG_RetrieveArtInfo;
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|