ftp.nice.ch/pub/next/connectivity/mail/bundles/EnhanceMail.2.2p1.s.gnutar.gz#/EnhanceMail-2.2p1/Source/MailboxSummary.h

This is MailboxSummary.h in view mode; [Download] [Up]

/* -*-ObjC-*-
*******************************************************************************
*
* File:         MailboxSummary.h
* RCS:          MailboxSummary.h,v 1.13 1998/05/30 01:30:14 tom Exp
* Description:  Interface definition of EnhanceMailboxSummary class.
* Author:       Tom Hageman <tom@basil.icce.rug.nl>
* Created:      October 1996
* Modified:     April 1998 [extracted from TransferPanel.h]
* Language:     Objective-C
* Package:      EnhanceMail
* Status:       Experimental
*
* Copyright (C) 1996-1998 Tom Hageman, but otherwise this file is perfect freeware.
*
*******************************************************************************
*/
#import <sys/stat.h>
#import <objc/Object.h>

enum { EMS_STAT_TOC, EMS_NUMSTATS };

// Tag values for matrix fields.
enum { EMS_TAG_TOTAL, EMS_TAG_DELETED, EMS_TAG_READ,
       EMS_TAG_FLAGGED, EMS_TAG_UNREAD, EMS_TAG_NEW,
       EMS_NUMTAGS };

enum EMSLoadStatus { EMS_UNLOADED=-1, EMS_LOADED=0,
		     EMS_LOADSUPPRESSED=-2, EMS_LOADFAILED=-3 };

// XXX TODO: define protocol to share interface with MailboxSummaryList.


@interface EnhanceMailboxSummary : Object
{
   char *fullname;
   enum EMSLoadStatus loadStatus;
   BOOL accurate;
   BOOL collectAll;
   BOOL hasPendingAppnmail;
   BOOL hasNewMail;
   long counts[EMS_NUMTAGS];
   unsigned long sizes[EMS_NUMTAGS];
   long attachCounts[EMS_NUMTAGS];
   unsigned long attachSizes[EMS_NUMTAGS];
   struct stat stats[EMS_NUMSTATS];	// for lazy inspection.
   BOOL needsReload;
}

- initWithName:(const char *)name;
- (const char *)name;
- (void)setName:(const char *)name;
- (const char *)shortName;

// Lazy loading.
- (enum EMSLoadStatus)loadStatus;
- (BOOL)isLoaded;
- (BOOL)shouldLoad;
- (BOOL)suppressLoad;
- (enum EMSLoadStatus)load;

- (BOOL)needsReload;
- (void)setNeedsReload:(BOOL)value;

// Configuration.
- (void)setCollectAll:(BOOL)value;
- (BOOL)collectAll;
   /* if unset, just count messages.  If set, count attachments and sizes. */

// Support.
- (const char *)getPath:(char *)buf forFile:(const char *)file;

// General results.
- (long)count:(int)tag;
- (unsigned long)size:(int)tag;
- (long)attachCount:(int)tag;
- (unsigned long)attachSize:(int)tag;

// Specialized results.
// (Index is checked immediately; others are only accurate after -load)
- (long)numUnreadMessages;
- (void)setUnreadMessages:(long)value;
- (long)numNewMessages;
- (void)setNewMessages:(long)value;
- (long)numFlaggedMessages;
- (void)setFlaggedMessages:(long)value;

- (long)numNewOrUnreadMessages;

- (BOOL)hasNewMail;
- (void)setHasNewMail:(BOOL)value;

- (BOOL)hasIndex;
- (unsigned long)indexSize;
- (unsigned long)tableOfContentsSize;

// Appnmail extensions.
- (BOOL)hasPendingAppnmail;
- (BOOL)incorporatePendingAppnmail:(BOOL)wait;

+ (BOOL)doPendingAppnmailCheck;
+ (void)setDoPendingAppnmailCheck:(BOOL)value;
   /* Global flag, determines if pending appnmail check is done in -load. */
- (BOOL)checkPendingAppnmail;
   /* unconditional (immediate) check. */

+ (BOOL)doInSyncCheck;
+ (void)setDoInSyncCheck:(BOOL)value;
   /* Global flag, determines if "toc in sync with contents" check is done
      in -load. */

@end // EnhanceMailboxSummary


@interface EnhanceMailboxSummary (PathUtils)

+ (int)mailboxDir:(char *)buf;
   /* fills buffer with pathname of default Mailbox directory. */

+ (const char *)shortNameFor:(const char *)fullname;

@end // EnhanceMailboxSummary (PathUtils)


@interface EnhanceMailboxSummary (SummaryHash)
+ (void)setSummary:(EnhanceMailboxSummary *)sum forName:(const char *)name;
+ summaryForName:(const char *)name create:(BOOL)create;
+ summaryForName:(const char *)name;
@end // EnhanceMailboxSummary (SummaryHash)

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.