proxygen
SimpleObservable.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #pragma once
17 
18 #include <folly/Function.h>
19 #include <folly/Synchronized.h>
21 
22 namespace folly {
23 namespace observer {
24 
25 template <typename T>
27  public:
28  explicit SimpleObservable(T value);
29  explicit SimpleObservable(std::shared_ptr<const T> value);
30 
31  void setValue(T value);
32  void setValue(std::shared_ptr<const T> value);
33 
35 
36  private:
37  struct Context {
40  };
41  struct Wrapper;
42  std::shared_ptr<Context> context_;
43 
46 };
47 } // namespace observer
48 } // namespace folly
49 
folly::std T
—— Concurrent Priority Queue Implementation ——
Definition: AtomicBitSet.h:29
folly::Optional< Observer< T > > observer_
folly::Synchronized< std::shared_ptr< const T > > value_
folly::Synchronized< folly::Function< void()> > callback_
basic_once_flag< TimedMutex > once_flag
Definition: CallOnce.h:23
std::shared_ptr< Context > context_
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)