summaryrefslogtreecommitdiff
path: root/apps/JAWS/PROTOTYPE/JAWS/Server.h
blob: 0cac8f17ae07119f250bea71ffe109d0e3ba5d76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* -*- c++ -*- */
// $Id$

#ifndef JAWS_SERVER_H
#define JAWS_SERVER_H

#include "JAWS/Export.h"
#include "JAWS/Data_Block.h"
#include "JAWS/Policy.h"

class JAWS_IO_Handler_Factory;

class JAWS_Export JAWS_Server
{
public:
  JAWS_Server (void);
  JAWS_Server (int argc, char *argv[]);

  void init (int argc, char *argv[]);
  int open (JAWS_Pipeline_Handler *ph, JAWS_Dispatch_Policy *dp = 0);

private:
  void parse_args (int argc, char *argv[]);
  // Parse arguments

private:
  int ratio_;           // ratio of asynch ops to threads
  int port_;            // port to listen on
  int concurrency_;     // 0 => pool, 1 => per request
  int dispatch_;        // 0 => synch, 1 => asynch
  int nthreads_;        // number of threads
  int maxthreads_;      // maximum number of threads
  long flags_;          // thread creation flags

  JAWS_Default_Dispatch_Policy policy_;
};


#endif /* !defined (JAWS_SERVER_H) */