first commit
This commit is contained in:
33
CS4210/cs4210/proj2/src/common/dispatcher.h
Normal file
33
CS4210/cs4210/proj2/src/common/dispatcher.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/** \file dispatcher.h
|
||||
* Contains the declarations for the dispatcher functionality. It is
|
||||
* basically a separate thread that spins infinitely listening for
|
||||
* connections on a specified port, and dispatching incoming
|
||||
* connections to the specified worker threads.
|
||||
*/
|
||||
|
||||
#ifndef _DISPATCHER_H_
|
||||
#define _DISPATCHER_H_
|
||||
|
||||
#include "networking.h"
|
||||
|
||||
/* Worker function that the worker threads will be started with. */
|
||||
typedef void*(*workerfunc)(void*);
|
||||
|
||||
/*
|
||||
* Initializes the dispatcher. pnum is the port number on which we
|
||||
* would like to start listening to connections. The worker_count
|
||||
* parameter is the number of worker threads to spawn for handling
|
||||
* requests. f is the run function for worker threads. Returns zero
|
||||
* upon success and various numbers on failures.
|
||||
*/
|
||||
int dispatcher_initialize(port_t port, int worker_count, workerfunc f);
|
||||
|
||||
/* Starts up the dispatcher and worker threads. Returns zero on
|
||||
* success, and error numbers on errors. */
|
||||
int dispatcher_start();
|
||||
|
||||
/* Stops the dispatcher and worker threads and performs
|
||||
* clean-up. Returns zero on success, and error numbers on errors. */
|
||||
int dispatcher_stop();
|
||||
|
||||
#endif/*_DISPATCHER_H_*/
|
||||
Reference in New Issue
Block a user