File: NGPop3Client.h

package info (click to toggle)
sope 2.0.5-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 16,276 kB
  • sloc: objc: 167,238; sh: 3,588; ansic: 3,399; python: 318; makefile: 180
file content (109 lines) | stat: -rw-r--r-- 2,896 bytes parent folder | download | duplicates (10)
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
/*
  Copyright (C) 2000-2005 SKYRIX Software AG

  This file is part of SOPE.

  SOPE is free software; you can redistribute it and/or modify it under
  the terms of the GNU Lesser General Public License as published by the
  Free Software Foundation; either version 2, or (at your option) any
  later version.

  SOPE 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 SOPE; see the file COPYING.  If not, write to the
  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  02111-1307, USA.
*/

#ifndef __NGMail_NGPop3Client_H__
#define __NGMail_NGPop3Client_H__

#import <Foundation/NSObject.h>
#include <NGStreams/NGStreams.h>
#include <NGStreams/NGSocketProtocols.h>

@class NSString, NSData;
@class NGBufferedStream;
@class NGMimeMessage;

typedef enum {
  NGPop3State_unconnected = 1,
  NGPop3State_AUTHORIZATION,
  NGPop3State_TRANSACTION,
  NGPop3State_UPDATE
} NGPop3State;

@class NGPop3Response, NGPop3MessageInfo;

@interface NGPop3Client : NSObject
{
@protected
  id<NGActiveSocket>       socket;
  NGBufferedStream         *connection;
  id<NGExtendedTextStream> text;

  NGPop3State    state;
  NGPop3Response *lastResponse;
  BOOL isDebuggingEnabled;
}

+ (id)pop3Client;
- (id)initWithSocket:(id<NGActiveSocket>)_socket; // designated initializer

/* accessors */

- (id<NGActiveSocket>)socket;
- (NGPop3State)state;
- (NGPop3Response *)lastResponse;

- (void)setDebuggingEnabled:(BOOL)_flag;
- (BOOL)isDebuggingEnabled;

/* connection */

- (BOOL)connectToHost:(id)_host;
- (BOOL)connectToAddress:(id<NGSocketAddress>)_address;
- (void)disconnect;

/* state */

- (void)requireState:(NGPop3State)_state;
- (void)gotoState:(NGPop3State)_state;

/* commands */

- (NGPop3Response *)sendCommand:(NSString *)_command;
- (NGPop3Response *)sendCommand:(NSString *)_command argument:(NSString *)arg;
- (NGPop3Response *)sendCommand:(NSString *)_command intArgument:(int)_arg;

/* service commands */

- (BOOL)login:(NSString *)_user password:(NSString *)_passwd;
- (BOOL)quit;

- (BOOL)statMailDropCount:(int *)_count size:(int *)_size;
- (NGPop3MessageInfo *)listMessage:(int)_messageNumber;
- (NSEnumerator *)listMessages;
- (NSData *)retrieveMessage:(int)_msgNumber;
- (BOOL)deleteMessage:(int)_msgNumber;
- (BOOL)noop;
- (BOOL)reset;

/* optional service commands */

- (NSData *)retrieveMessage:(int)_msgNumber bodyLineCount:(int)_numberOfLines;
- (NSDictionary *)uniqueIdMappings;
- (NSString *)uniqueIdOfMessage:(int)_msgNumber;

/* MIME support */

- (NSEnumerator *)messageEnumerator;
- (NGMimeMessage *)messageWithNumber:(int)_messageNumber;

@end

#endif /* __NGMail_NGPop3Client_H__ */