proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
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>
14
#include <
proxygen/lib/utils/StateMachine.h
>
15
16
namespace
proxygen
{
17
18
class
HTTPTransactionIngressSMData
{
19
public
:
20
21
enum class
State
:
uint8_t
{
22
Start
,
23
HeadersReceived
,
24
RegularBodyReceived
,
25
ChunkHeaderReceived
,
26
ChunkBodyReceived
,
27
ChunkCompleted
,
28
TrailersReceived
,
29
UpgradeComplete
,
30
EOMQueued
,
31
ReceivingDone
,
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
47
static
State
getInitialState
() {
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,
59
HTTPTransactionIngressSMData::State
s
);
60
61
std::ostream&
operator<<
(std::ostream& os,
62
HTTPTransactionIngressSMData::Event
e);
63
64
using
HTTPTransactionIngressSM
=
StateMachine<HTTPTransactionIngressSMData>
;
65
66
}
proxygen::HTTPTransactionIngressSMData::State::ChunkHeaderReceived
proxygen::HTTPTransactionIngressSMData::State::Start
proxygen::HTTPTransactionIngressSMData::State::RegularBodyReceived
proxygen::operator<<
std::ostream & operator<<(std::ostream &os, const HeaderTable &table)
Definition:
HeaderTable.cpp:254
proxygen::HTTPTransactionIngressSMData::State::ChunkBodyReceived
proxygen::HTTPTransactionIngressSMData::State::ReceivingDone
proxygen::HTTPTransactionIngressSMData
Definition:
HTTPTransactionIngressSM.h:18
proxygen::StateMachine
Definition:
StateMachine.h:18
proxygen::HTTPTransactionIngressSMData::State
State
Definition:
HTTPTransactionIngressSM.h:21
StateMachine.h
proxygen::HTTPTransactionIngressSMData::State::TrailersReceived
proxygen::HTTPTransactionIngressSMData::find
static std::pair< State, bool > find(State s, Event e)
Definition:
HTTPTransactionIngressSM.cpp:28
proxygen::HTTPTransactionIngressSMData::State::UpgradeComplete
proxygen::HTTPTransactionIngressSMData::State::HeadersReceived
uint8_t
uint8_t
Definition:
ConstexprMathBenchmark.cpp:178
proxygen::HTTPTransactionIngressSMData::getName
static const std::string getName()
Definition:
HTTPTransactionIngressSM.h:53
string
const char * string
Definition:
Conv.cpp:212
s
static set< string > s
Definition:
StringKeyedBenchmark.cpp:48
proxygen
Definition:
ExMessageHandler.h:14
proxygen::HTTPTransactionIngressSMData::State::ChunkCompleted
proxygen::HTTPTransactionIngressSMData::getInitialState
static State getInitialState()
Definition:
HTTPTransactionIngressSM.h:47
proxygen::HTTPTransactionIngressSMData::State::EOMQueued
proxygen::HTTPTransactionIngressSMData::Event
Event
Definition:
HTTPTransactionIngressSM.h:34
proxygen
lib
http
session
HTTPTransactionIngressSM.h
Generated by
1.8.11