42 virtual void AddTimeout(uint64_t timeout_ns, uint64_t io_timeout_ns) = 0;
43 virtual void AddRetry(
bool jitter,
float factor, uint64_t min_delay_ns,
44 uint64_t max_delay_ns, uint64_t max_times) = 0;
54 void AddTimeout(uint64_t timeout_ns, uint64_t io_timeout_ns)
override;
55 void AddRetry(
bool jitter,
float factor, uint64_t min_delay_ns,
56 uint64_t max_delay_ns, uint64_t max_times)
override;
59 ffi::LayerBuilder &builder_;
68 std::chrono::nanoseconds
min_delay{std::chrono::seconds(1)};
69 std::chrono::nanoseconds
max_delay{std::chrono::minutes(1)};
94 std::chrono::nanoseconds timeout, std::chrono::nanoseconds io_timeout);
Applies layers through the cxx bridge.
Definition layer.hpp:50
void AddTimeout(uint64_t timeout_ns, uint64_t io_timeout_ns) override
FfiLayerBuilderMutator(ffi::LayerBuilder &builder)
void AddRetry(bool jitter, float factor, uint64_t min_delay_ns, uint64_t max_delay_ns, uint64_t max_times) override
Abstraction for applying layers during operator construction.
Definition layer.hpp:38
virtual ~LayerBuilderMutator()=default
virtual void AddTimeout(uint64_t timeout_ns, uint64_t io_timeout_ns)=0
virtual void AddRetry(bool jitter, float factor, uint64_t min_delay_ns, uint64_t max_delay_ns, uint64_t max_times)=0
Configures operator layers applied during construction.
Definition layer.hpp:76
void ApplyTo(LayerBuilderMutator &builder) const
Definition layer.hpp:80
virtual void Apply(LayerBuilderMutator &builder) const =0
virtual ~OperatorOption()=default
Operator is the entry for all public APIs.
Definition opendal.hpp:51
Definition data_structure.hpp:29
std::unique_ptr< OperatorOption > WithRetry(RetryConfig config={})
Adds a retry layer to the operator.
std::unique_ptr< OperatorOption > WithTimeout(std::chrono::nanoseconds timeout, std::chrono::nanoseconds io_timeout)
Adds a timeout layer to the operator.
std::vector< std::unique_ptr< OperatorOption > > DefaultBehaviorLayerOptions()
Default layer options used by behavior tests.
Configuration for the retry layer.
Definition layer.hpp:65
uint64_t max_times
Definition layer.hpp:70
bool jitter
Definition layer.hpp:66
std::chrono::nanoseconds min_delay
Definition layer.hpp:68
std::chrono::nanoseconds max_delay
Definition layer.hpp:69
float factor
Definition layer.hpp:67