/*
* Copyright 2001-2004 Brandon Long
* All Rights Reserved.
*
* ClearSilver Templating System
*
* This code is made available under the terms of the ClearSilver License.
* http://www.clearsilver.net/license.hdf
*
*/
#ifndef __NEO_SERVER_H_
#define __NEO_SERVER_H_ 1
__BEGIN_DECLS
/* hmm, this callback might need a mechanism for telling the child to
* end... */
typedef NEOERR *(*NSERVER_REQ_CB)(void *rock, int num, NSOCK *sock);
typedef NEOERR *(*NSERVER_CB)(void *rock, int num);
typedef struct _nserver {
/* callbacks */
NSERVER_CB init_cb;
NSERVER_REQ_CB req_cb;
NSERVER_CB clean_cb;
void *data;
int num_children;
int num_requests;
int port;
int conn_timeout;
int data_timeout;
char lockfile[_POSIX_PATH_MAX];
/* Internal data */
int accept_lock;
int server_fd;
} NSERVER;
NEOERR *nserver_proc_start(NSERVER *server, BOOL debug);
__END_DECLS
#endif /* __NEO_SERVER_H_ */