1
#pragma once
2

            
3
#include "envoy/stream_info/bool_accessor.h"
4

            
5
namespace Envoy {
6
namespace StreamInfo {
7

            
8
/*
9
 * A FilterState object that tracks a single boolean value.
10
 */
11
class BoolAccessorImpl : public BoolAccessor {
12
public:
13
198
  BoolAccessorImpl(bool value) : value_(value) {}
14

            
15
  // From FilterState::Object
16
1
  ProtobufTypes::MessagePtr serializeAsProto() const override {
17
1
    auto message = std::make_unique<Protobuf::BoolValue>();
18
1
    message->set_value(value_);
19
1
    return message;
20
1
  }
21

            
22
2
  absl::optional<std::string> serializeAsString() const override {
23
2
    return value_ ? "true" : "false";
24
2
  }
25

            
26
  // From BoolAccessor.
27
167
  bool value() const override { return value_; }
28

            
29
private:
30
  bool value_;
31
};
32

            
33
} // namespace StreamInfo
34
} // namespace Envoy