proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
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
>
20
#include <
folly/experimental/observer/Observer.h
>
21
22
namespace
folly
{
23
namespace
observer {
24
25
template
<
typename
T>
26
class
SimpleObservable
{
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
34
Observer<T>
getObserver
();
35
36
private
:
37
struct
Context
{
38
folly::Synchronized<std::shared_ptr<const T>
>
value_
;
39
folly::Synchronized<folly::Function<void()>
>
callback_
;
40
};
41
struct
Wrapper
;
42
std::shared_ptr<Context>
context_
;
43
44
std::once_flag
observerInit_
;
45
folly::Optional<Observer<T>
>
observer_
;
46
};
47
}
// namespace observer
48
}
// namespace folly
49
50
#include <
folly/experimental/observer/SimpleObservable-inl.h
>
folly::observer::SimpleObservable::setValue
void setValue(T value)
Definition:
SimpleObservable-inl.h:36
SimpleObservable-inl.h
folly::observer::SimpleObservable::Wrapper
Definition:
SimpleObservable-inl.h:52
folly::observer::SimpleObservable::observerInit_
std::once_flag observerInit_
Definition:
SimpleObservable.h:44
Observer.h
Synchronized.h
folly::observer::SimpleObservable::getObserver
Observer< T > getObserver()
Definition:
SimpleObservable-inl.h:72
folly::T
folly::std T
folly
—— Concurrent Priority Queue Implementation ——
Definition:
AtomicBitSet.h:29
folly::observer::SimpleObservable::observer_
folly::Optional< Observer< T > > observer_
Definition:
SimpleObservable.h:45
folly::observer::SimpleObservable::Context::value_
folly::Synchronized< std::shared_ptr< const T > > value_
Definition:
SimpleObservable.h:38
folly::Synchronized
Definition:
Synchronized.h:438
folly::Optional
Definition:
Optional.h:71
folly::observer::SimpleObservable::Context::callback_
folly::Synchronized< folly::Function< void()> > callback_
Definition:
SimpleObservable.h:39
folly::fibers::once_flag
basic_once_flag< TimedMutex > once_flag
Definition:
CallOnce.h:23
folly::observer::Observer
Definition:
Observer.h:77
folly::observer::SimpleObservable::SimpleObservable
SimpleObservable(T value)
Definition:
SimpleObservable-inl.h:24
folly::observer::SimpleObservable::context_
std::shared_ptr< Context > context_
Definition:
SimpleObservable.h:41
Function.h
folly::observer::SimpleObservable
Definition:
SimpleObservable.h:26
folly::value
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
Definition:
LockFreeRingBufferTest.cpp:96
folly::observer::SimpleObservable::Context
Definition:
SimpleObservable.h:37
proxygen
folly
folly
experimental
observer
SimpleObservable.h
Generated by
1.8.11