1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.fcgi.parser;
20
21 import java.util.EnumMap;
22
23 import org.eclipse.jetty.fcgi.FCGI;
24
25 public class ServerParser extends Parser
26 {
27 private final EnumMap<FCGI.FrameType, ContentParser> contentParsers = new EnumMap<>(FCGI.FrameType.class);
28
29 public ServerParser(Listener listener)
30 {
31 contentParsers.put(FCGI.FrameType.BEGIN_REQUEST, new BeginRequestContentParser(headerParser, listener));
32 contentParsers.put(FCGI.FrameType.PARAMS, new ParamsContentParser(headerParser, listener));
33 contentParsers.put(FCGI.FrameType.STDIN, new StreamContentParser(headerParser, FCGI.StreamType.STD_IN, listener));
34 }
35
36 @Override
37 protected ContentParser findContentParser(FCGI.FrameType frameType)
38 {
39 return contentParsers.get(frameType);
40 }
41
42 public interface Listener extends Parser.Listener
43 {
44 public void onStart(int request, FCGI.Role role, int flags);
45
46 public static class Adapter extends Parser.Listener.Adapter implements Listener
47 {
48 @Override
49 public void onStart(int request, FCGI.Role role, int flags)
50 {
51 }
52 }
53 }
54 }