|
|
|
@ -19,6 +19,10 @@ |
|
|
|
|
#ifndef GRPC_CORE_LIB_GPRPP_OPTIONAL_H |
|
|
|
|
#define GRPC_CORE_LIB_GPRPP_OPTIONAL_H |
|
|
|
|
|
|
|
|
|
#include <grpc/support/port_platform.h> |
|
|
|
|
|
|
|
|
|
#include <utility> |
|
|
|
|
|
|
|
|
|
namespace grpc_core { |
|
|
|
|
|
|
|
|
|
/* A make-shift alternative for absl::Optional. This can be removed in favor of
|
|
|
|
@ -27,11 +31,17 @@ template <typename T> |
|
|
|
|
class Optional { |
|
|
|
|
public: |
|
|
|
|
Optional() : value_() {} |
|
|
|
|
|
|
|
|
|
void set(const T& val) { |
|
|
|
|
value_ = val; |
|
|
|
|
set_ = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void set(T&& val) { |
|
|
|
|
value_ = std::move(val); |
|
|
|
|
set_ = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool has_value() const { return set_; } |
|
|
|
|
|
|
|
|
|
void reset() { set_ = false; } |
|
|
|
|