proxygen
HTTPTransactionIngressSM.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-present, Facebook, Inc.
3  * All rights reserved.
4  *
5  * This source code is licensed under the BSD-style license found in the
6  * LICENSE file in the root directory of this source tree. An additional grant
7  * of patent rights can be found in the PATENTS file in the same directory.
8  *
9  */
10 #pragma once
11 
12 #include <map>
13 #include <iosfwd>
15 
16 namespace proxygen {
17 
19  public:
20 
21  enum class State: uint8_t {
22  Start,
30  EOMQueued,
32  };
33 
34  enum class Event: uint8_t {
35  // API accessible transitions
36  onHeaders,
37  onBody,
38  onChunkHeader,
39  onChunkComplete,
40  onTrailers,
41  onUpgrade,
42  onEOM,
43  // Internal state transitions
44  eomFlushed,
45  };
46 
48  return State::Start;
49  }
50 
51  static std::pair<State, bool> find(State s, Event e);
52 
53  static const std::string getName() {
54  return "HTTPTransactionIngress";
55  }
56 };
57 
58 std::ostream& operator<<(std::ostream& os,
60 
61 std::ostream& operator<<(std::ostream& os,
63 
65 
66 }
std::ostream & operator<<(std::ostream &os, const HeaderTable &table)
static std::pair< State, bool > find(State s, Event e)
const char * string
Definition: Conv.cpp:212
static set< string > s