1 /******************************************************************************
2  * Copyright (c) 2006-2012 Transmission authors and contributors
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  *****************************************************************************/
22 
23 #import <Cocoa/Cocoa.h>
24 
25 typedef enum
26 {
27     PORT_STATUS_CHECKING,
28     PORT_STATUS_OPEN,
29     PORT_STATUS_CLOSED,
30     PORT_STATUS_ERROR
31 } port_status_t;
32 
33 @interface PortChecker : NSObject
34 {
35     id fDelegate;
36     port_status_t fStatus;
37 
38     NSURLConnection * fConnection;
39     NSMutableData * fPortProbeData;
40 
41     NSTimer * fTimer;
42 }
43 
44 - (id) initForPort: (NSInteger) portNumber delay: (BOOL) delay withDelegate: (id) delegate;
45 - (void) cancelProbe;
46 
47 - (port_status_t) status;
48 
49 @end
50