proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
HTTPTransactionEgressSM.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 <iosfwd>
13
#include <
proxygen/lib/utils/StateMachine.h
>
14
15
namespace
proxygen
{
16
17
class
HTTPTransactionEgressSMData
{
18
public
:
19
20
enum class
State
:
uint8_t
{
21
Start
,
22
HeadersSent
,
23
RegularBodySent
,
24
ChunkHeaderSent
,
25
ChunkBodySent
,
26
ChunkTerminatorSent
,
27
TrailersSent
,
28
EOMQueued
,
29
SendingDone
30
};
31
32
enum class
Event
:
uint8_t
{
33
// API accessible transitions
34
sendHeaders,
35
sendBody,
36
sendChunkHeader,
37
sendChunkTerminator,
38
sendTrailers,
39
sendEOM,
40
// Internal state transitions
41
eomFlushed,
42
};
43
44
static
State
getInitialState
() {
45
return
State::Start
;
46
}
47
48
static
std::pair<State, bool>
find
(
State
s
,
Event
e);
49
50
static
const
std::string
getName
() {
51
return
"HTTPTransactionEgress"
;
52
}
53
};
54
55
std::ostream&
operator<<
(std::ostream& os,
56
HTTPTransactionEgressSMData::State
s
);
57
58
std::ostream&
operator<<
(std::ostream& os,
59
HTTPTransactionEgressSMData::Event
e);
60
61
using
HTTPTransactionEgressSM
=
StateMachine<HTTPTransactionEgressSMData>
;
62
63
}
proxygen::HTTPTransactionEgressSMData::Event
Event
Definition:
HTTPTransactionEgressSM.h:32
proxygen::HTTPTransactionEgressSMData::State::TrailersSent
proxygen::operator<<
std::ostream & operator<<(std::ostream &os, const HeaderTable &table)
Definition:
HeaderTable.cpp:254
proxygen::HTTPTransactionEgressSMData::State::SendingDone
proxygen::HTTPTransactionEgressSMData::State::RegularBodySent
proxygen::HTTPTransactionEgressSMData::State::EOMQueued
proxygen::StateMachine
Definition:
StateMachine.h:18
proxygen::HTTPTransactionEgressSMData::getName
static const std::string getName()
Definition:
HTTPTransactionEgressSM.h:50
proxygen::HTTPTransactionEgressSMData::State::ChunkTerminatorSent
proxygen::HTTPTransactionEgressSMData::State::Start
proxygen::HTTPTransactionEgressSMData::getInitialState
static State getInitialState()
Definition:
HTTPTransactionEgressSM.h:44
StateMachine.h
proxygen::HTTPTransactionEgressSMData::State::ChunkBodySent
uint8_t
uint8_t
Definition:
ConstexprMathBenchmark.cpp:178
proxygen::HTTPTransactionEgressSMData::find
static std::pair< State, bool > find(State s, Event e)
Definition:
HTTPTransactionEgressSM.cpp:20
proxygen::HTTPTransactionEgressSMData
Definition:
HTTPTransactionEgressSM.h:17
string
const char * string
Definition:
Conv.cpp:212
s
static set< string > s
Definition:
StringKeyedBenchmark.cpp:48
proxygen
Definition:
ExMessageHandler.h:14
proxygen::HTTPTransactionEgressSMData::State::ChunkHeaderSent
proxygen::HTTPTransactionEgressSMData::State
State
Definition:
HTTPTransactionEgressSM.h:20
proxygen::HTTPTransactionEgressSMData::State::HeadersSent
proxygen
lib
http
session
HTTPTransactionEgressSM.h
Generated by
1.8.11