22 #ifndef TENSORFLOW_SERVING_UTIL_UNIQUE_PTR_WITH_DEPS_H_
23 #define TENSORFLOW_SERVING_UTIL_UNIQUE_PTR_WITH_DEPS_H_
29 #include "tensorflow/core/platform/macros.h"
30 #include "tensorflow/core/platform/types.h"
31 #include "tensorflow_serving/util/any_ptr.h"
33 namespace tensorflow {
44 SetOwned(std::move(
object));
53 while (!deleters_.empty()) {
59 X* AddDependency(std::unique_ptr<X> dependency) {
60 X* raw = dependency.get();
61 deleters_.emplace_back(std::move(dependency));
65 void SetOwned(std::unique_ptr<T>
object) {
66 object_ = AddDependency<T>(std::move(
object));
68 void SetOwnedPtr(T* owned_object) {
69 SetOwned(std::unique_ptr<T>(owned_object));
72 T* get()
const {
return object_; }
73 const T& operator*()
const {
return *object_; }
74 T* operator->()
const {
return get(); }
77 std::vector<UniqueAnyPtr> deleters_;