Licensing MenuTunes under the GNU General Public License version 2.
[MenuTunes.git] / NetworkController.h
1 /*
2  *      MenuTunes
3  *      NetworkController.h
4  *
5  *      Rendezvous network controller.
6  *
7  *      Copyright (c) 2003 iThink Software
8  *
9  */
10  
11 #import <Foundation/Foundation.h>
12
13 #define SERVER_PORT 5712
14
15 @class NetworkObject;
16
17 @interface NetworkController : NSObject
18 {
19     NSNetService *service;
20     NSNetServiceBrowser *browser;
21     NSMutableArray *remoteServices;
22     
23     NSConnection *serverConnection, *clientConnection;
24     NSSocketPort *clientPort, *serverPort;
25     NSString *remoteHost;
26     BOOL serverOn, clientConnected, connectedToServer;
27     NSData *serverPass, *clientPass;
28     NetworkObject *rootObject, *clientProxy;
29 }
30 + (NetworkController *)sharedController;
31
32 - (void)startRemoteServerSearch;
33 - (void)stopRemoteServerSearch;
34
35 - (void)setServerStatus:(BOOL)status;
36 - (int)connectToHost:(NSString *)host;
37 - (BOOL)checkForServerAtHost:(NSString *)host;
38 - (BOOL)disconnect;
39 - (void)resetServerName;
40 - (BOOL)isServerOn;
41 - (BOOL)isClientConnected;
42 - (BOOL)isConnectedToServer;
43 - (NSString *)remoteHost;
44
45 - (NetworkObject *)networkObject;
46 - (NSArray *)remoteServices;
47 @end