1
#pragma once
2

            
3
#include "envoy/common/pure.h"
4
#include "envoy/stream_info/filter_state.h"
5

            
6
namespace Envoy {
7
namespace StreamInfo {
8

            
9
/**
10
 * A FilterState object that tracks a single uint32_t value.
11
 */
12
class UInt32Accessor : public FilterState::Object {
13
public:
14
  /**
15
   * Increments the tracked value by 1.
16
   */
17
  virtual void increment() PURE;
18

            
19
  /**
20
   * @return the tracked value.
21
   */
22
  virtual uint32_t value() const PURE;
23
};
24

            
25
} // namespace StreamInfo
26
} // namespace Envoy