Fix SimplerObservable build with -Werror=unused-local-typedefs
authorAndrii Grynenko <andrii@fb.com>
Thu, 25 Aug 2016 18:23:20 +0000 (11:23 -0700)
committerFacebook Github Bot 1 <facebook-github-bot-1-bot@fb.com>
Thu, 25 Aug 2016 18:38:27 +0000 (11:38 -0700)
Reviewed By: yfeldblum

Differential Revision: D3765642

fbshipit-source-id: 9b1cc4007c553da5082799fa4ed0af8f7850ec8d

folly/experimental/observer/SimpleObservable-inl.h
folly/experimental/observer/SimpleObservable.h

index 463e85bff8fadccfb64d7b8e78ee8bb09024b50a..69fbf1a7e249bd849ad33931244699ef07878db4 100644 (file)
@@ -49,30 +49,31 @@ void SimpleObservable<T>::setValue(std::shared_ptr<const T> value) {
 }
 
 template <typename T>
-Observer<T> SimpleObservable<T>::getObserver() {
-  struct SimpleObservableWrapper {
-    using element_type = T;
+struct SimpleObservable<T>::Wrapper {
+  using element_type = T;
 
-    std::shared_ptr<Context> context;
+  std::shared_ptr<Context> context;
 
-    std::shared_ptr<const T> get() {
-      return context->value_.copy();
-    }
+  std::shared_ptr<const T> get() {
+    return context->value_.copy();
+  }
 
-    void subscribe(folly::Function<void()> callback) {
-      context->callback_.swap(callback);
-    }
+  void subscribe(folly::Function<void()> callback) {
+    context->callback_.swap(callback);
+  }
 
-    void unsubscribe() {
-      folly::Function<void()> empty;
-      context->callback_.swap(empty);
-    }
-  };
+  void unsubscribe() {
+    folly::Function<void()> empty;
+    context->callback_.swap(empty);
+  }
+};
 
+template <typename T>
+Observer<T> SimpleObservable<T>::getObserver() {
   std::call_once(observerInit_, [&]() {
-    SimpleObservableWrapper wrapper;
+    SimpleObservable<T>::Wrapper wrapper;
     wrapper.context = context_;
-    ObserverCreator<SimpleObservableWrapper> creator(std::move(wrapper));
+    ObserverCreator<SimpleObservable<T>::Wrapper> creator(std::move(wrapper));
     observer_ = std::move(creator).getObserver();
   });
   return *observer_;
index 1feb21d24f3cd8f2fa00cf71baea5cc2f5cf73a7..ca05f9adf4a779dc24e829970f0f5a7ee81cc605 100644 (file)
@@ -38,6 +38,7 @@ class SimpleObservable {
     folly::Synchronized<std::shared_ptr<const T>> value_;
     folly::Synchronized<folly::Function<void()>> callback_;
   };
+  struct Wrapper;
   std::shared_ptr<Context> context_;
 
   std::once_flag observerInit_;