home *** CD-ROM | disk | FTP | other *** search
- /*
- $Id: MSMessage.h,v 1.2 1997/10/26 08:41:13 lukeh Exp $
-
- Copyright (c) 1996, 1997 Luke Howard.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by Luke Howard.
- 4. The name of the other may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY LUKE HOWARD ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL LUKE HOWARD BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
-
- #import <Foundation/NSObject.h>
-
- @class NSString, NSMutableString, MSMessage;
-
- #ifdef NeXT
- #import <libc.h>
- #endif
-
- #ifdef WIN32
- #import <stdlib.h>
- #import <winsock.h>
- #endif
-
- @protocol MSMessaging
- /* vend a new message object */
- + (MSMessage *)message;
- + (MSMessage *)messageTo:(NSString *)recipient;
- - init;
- - initWithRecipient:(NSString *)recipient; /* designated initialiser */
-
- /* accessor methods for the recipient (eg. user@host) */
- - (void)setRecipient:(NSString *)aRecipient;
- - (NSString *)host;
- - (NSString *)user;
- - (NSString *)term;
-
- /* set target UDP or TCP port */
- - (void)setPort:(short)port; /* host byte order */
- - (short)port; /* host byte order */
- - (void)setPortToDefault; /* lookup in NetInfo or default to 18 */
-
- /* set protocol */
- - (void)setUseTcp:(BOOL)useTcp;
- - (BOOL)useTcp;
-
- /* set broadcast flag */
- - (void)setBroadcasting:(BOOL)doBroadcast;
- - (BOOL)broadcasting;
-
- /* accessor methods for the message itself */
- - (void)setMessage:(NSString *)message;
- - (void)appendMessage:(NSString *)message;
- - (NSString *)message;
-
- /* got all the info we need? */
- - (BOOL)ready;
-
- /* post the message */
- - (BOOL)post;
-
- /* toggle debugging */
- - (void)setDebugging:(BOOL)flag;
-
- /* retries */
- - (void)setRetries:(int)r;
- - (int)retries;
- @end
-
- @protocol MSLogging <NSObject>
- - (void)log:(NSString *)msg;
- @end
-
- #define INTERFACES 32
-
- @interface MSMessage : NSObject <MSMessaging, MSLogging>
- {
- char *host, *user, *term;
- char *_recipient_ptr;
- NSMutableString *messageBody;
- BOOL use_tcp;
- BOOL broadcasting;
- struct sockaddr_in Sin;
-
- int retries;
- int msg_len;
- char *msg;
-
- int if_n;
- struct sockaddr_in if_a[INTERFACES]; /* max no. interfaces */
-
- BOOL debug;
- }
- + (void)setLogDelegate:(id <MSLogging>)logDelegate;
- @end
-