/* Copyright (c) 1993 Stephen F. White */


/*
 * these symbols must be provided by the application
 */

extern int	 parse(Playerid player, const char *command);
extern int	 receive_message(Serverid server, const char *msg);
extern void	 process_queues(struct timeval cur_time,
					struct timeval *timeout);
extern Playerid	 create_player(const char *name, const char *password);
extern Playerid	 connect_player(const char *name, const char *password);
extern void	 disconnect_player(Playerid who);
extern void	 do_compile(Playerid who, FILE *progfile, GENPTR progwhat);
extern void	 connect_server(Serverid server);
extern void	 disconnect_server(Serverid server);
extern int	 init(const char *dbfilename, int send_boot, int db_must_exist);
extern void	 shutdown_server(void);
extern void	 panic(const char *);
extern GENPTR	 cool_malloc(unsigned size);
extern void	 cool_free(GENPTR);
extern char	*str_dup(const char *);
extern void	 cmdline_compile(const char *dbfile, const char *progfile,
				 int do_init);
extern void	 write_flatfile(const char *dbfile, const char *dumpfile);

/*
 * these symbols are provided by the interface
 */

extern void	parse_done(Playerid player);
extern void	tell(Playerid player, const char *msg);
extern int	yo(Serverid server, const char *msg);
extern void	boot(Playerid who);
extern int	start_programming(Playerid player, GENPTR *progwhat);
extern void	writelog(void);
extern int	read_config(const char *filename);
extern const char	*addr_htoa(unsigned long l);
extern int	server_running;	/* if zero, interface should shut down */
extern int	promiscuous;	/* promiscuous mode for server connects */
extern int	verify_servers;	/* verify hostnames of incoming servers */
extern int	registration;	/* prevent player creation */
extern int	corefile;	/* to save a corefile on panic */
extern int	max_age;	/* maximum nesting of methods */
extern int	max_ticks;	/* maximum number of ticks per task */
extern short	yo_port, player_port;	/* yo and player ports */
extern char	*welcome;	/* msg displayed to users on connect */
					/* must be set by the application */