Skip to content

Commit f616980

Browse files
committed
Namespace refactoring.
1 parent e4fa40d commit f616980

31 files changed

Lines changed: 271 additions & 184 deletions

include/react/Defs.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#pragma once
2+
3+
////////////////////////////////////////////////////////////////////////////////////////
4+
#define REACT_BEGIN_ namespace react {
5+
#define REACT_END_ }
6+
#define REACT_ ::react
7+
8+
#define REACT_IMPL_BEGIN_ REACT_BEGIN_ namespace impl {
9+
#define REACT_IMPL_END_ REACT_END_ }
10+
#define REACT_IMPL_ REACT_ ::impl
11+
12+
////////////////////////////////////////////////////////////////////////////////////////
13+
REACT_BEGIN_
14+
15+
typedef unsigned int uint;
16+
typedef unsigned char uchar;
17+
18+
REACT_END_

include/react/EventStream.h

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include "react/Defs.h"
4+
35
#include <thread>
46
#include <type_traits>
57
#include <vector>
@@ -10,7 +12,7 @@
1012
#include "react/graph/EventStreamNodes.h"
1113

1214
////////////////////////////////////////////////////////////////////////////////////////
13-
namespace react {
15+
REACT_BEGIN_
1416

1517
template <typename T>
1618
class Reactive;
@@ -28,10 +30,10 @@ template
2830
typename D,
2931
typename E = EventToken
3032
>
31-
class REvents : public Reactive<EventStreamNode<D,E>>
33+
class REvents : public Reactive<REACT_IMPL_::EventStreamNode<D,E>>
3234
{
3335
protected:
34-
using NodeT = EventStreamNode<D, E>;
36+
using NodeT = REACT_IMPL_::EventStreamNode<D, E>;
3537

3638
public:
3739
using ValueT = E;
@@ -65,17 +67,19 @@ class REvents : public Reactive<EventStreamNode<D,E>>
6567
}
6668
};
6769

68-
////////////////////////////////////////////////////////////////////////////////////////
69-
namespace impl
70-
{
70+
REACT_END_
71+
72+
REACT_IMPL_BEGIN_
7173

7274
template <typename D, typename L, typename R>
7375
bool Equals(const REvents<D,L>& lhs, const REvents<D,R>& rhs)
7476
{
7577
return lhs.Equals(rhs);
7678
}
7779

78-
} // ~namespace react::impl
80+
REACT_IMPL_END_
81+
82+
REACT_BEGIN_
7983

8084
////////////////////////////////////////////////////////////////////////////////////////
8185
/// REventSource
@@ -88,7 +92,7 @@ template
8892
class REventSource : public REvents<D,E>
8993
{
9094
private:
91-
typedef EventSourceNode<D, E> NodeT;
95+
using NodeT = REACT_IMPL_::EventSourceNode<D, E>;
9296

9397
public:
9498
REventSource() :
@@ -140,15 +144,15 @@ inline auto MakeEventSource()
140144
-> REventSource<D,E>
141145
{
142146
return REventSource<D,E>(
143-
std::make_shared<EventSourceNode<D,E>>(false));
147+
std::make_shared<REACT_IMPL_::EventSourceNode<D,E>>(false));
144148
}
145149

146150
template <typename D>
147151
inline auto MakeEventSource()
148152
-> REventSource<D,EventToken>
149153
{
150154
return REventSource<D,EventToken>(
151-
std::make_shared<EventSourceNode<D,EventToken>>(false));
155+
std::make_shared<REACT_IMPL_::EventSourceNode<D,EventToken>>(false));
152156
}
153157

154158
////////////////////////////////////////////////////////////////////////////////////////
@@ -169,7 +173,7 @@ inline auto Merge(const REvents<D,TArg1>& arg1,
169173

170174
typedef TArg1 E;
171175
return REvents<D,E>(
172-
std::make_shared<EventMergeNode<D, E, TArg1, TArgs ...>>(
176+
std::make_shared<REACT_IMPL_::EventMergeNode<D, E, TArg1, TArgs ...>>(
173177
arg1.GetPtr(), args.GetPtr() ..., false));
174178
}
175179

@@ -199,7 +203,7 @@ inline auto Filter(const REvents<D,E>& src, F&& filter)
199203
-> REvents<D,E>
200204
{
201205
return REvents<D,E>(
202-
std::make_shared<EventFilterNode<D, E>>(
206+
std::make_shared<REACT_IMPL_::EventFilterNode<D, E>>(
203207
src.GetPtr(), std::forward<F>(filter), false));
204208
}
205209

@@ -244,8 +248,8 @@ inline auto Transform(const REvents<D,TIn>& src, F&& func)
244248
typedef decltype(func(src.GetPtr()->Front())) TOut;
245249

246250
return REvents<D,TOut>(
247-
std::make_shared<EventTransformNode<D, TIn, TOut>>(
251+
std::make_shared<REACT_IMPL_::EventTransformNode<D, TIn, TOut>>(
248252
src.GetPtr(), std::forward<F>(func), false));
249253
}
250254

251-
} // ~namespace react
255+
REACT_END_

include/react/Observer.h

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
#pragma once
22

3+
#include "react/Defs.h"
4+
35
#include <memory>
46
#include <unordered_map>
57

68
#include "react/graph/ObserverNodes.h"
79

810
////////////////////////////////////////////////////////////////////////////////////////
9-
namespace react {
11+
REACT_BEGIN_
1012

1113
template <typename T>
1214
class Reactive;
@@ -26,21 +28,22 @@ template <typename D>
2628
class RObserver
2729
{
2830
public:
29-
typedef NodeBase<D> SubjectT;
31+
using SubjectT = REACT_IMPL_::NodeBase<D>;
32+
using ObserverNodeT = REACT_IMPL_::ObserverNode<D>;
3033

3134
RObserver() :
3235
ptr_{ nullptr },
3336
subject_{ nullptr }
3437
{
3538
}
3639

37-
RObserver(ObserverNode<D>* ptr, const std::shared_ptr<SubjectT>& subject) :
40+
RObserver(ObserverNodeT* ptr, const std::shared_ptr<SubjectT>& subject) :
3841
ptr_{ ptr },
3942
subject_{ subject }
4043
{
4144
}
4245

43-
const ObserverNode<D>* GetPtr() const
46+
const ObserverNodeT* GetPtr() const
4447
{
4548
return ptr_;
4649
}
@@ -56,12 +59,16 @@ class RObserver
5659

5760
private:
5861
// Ownership managed by registry
59-
ObserverNode<D>* ptr_;
62+
ObserverNodeT* ptr_;
6063

6164
// While the observer handle exists, the subject is not destroyed
6265
std::shared_ptr<SubjectT> subject_;
6366
};
6467

68+
REACT_END_
69+
70+
REACT_IMPL_BEGIN_
71+
6572
////////////////////////////////////////////////////////////////////////////////////////
6673
/// ObserverRegistry
6774
////////////////////////////////////////////////////////////////////////////////////////
@@ -128,6 +135,10 @@ class ObserverRegistry
128135
std::unordered_map<IObserverNode*,Entry_> observerMap_;
129136
};
130137

138+
REACT_IMPL_END_
139+
140+
REACT_BEGIN_
141+
131142
////////////////////////////////////////////////////////////////////////////////////////
132143
/// Observe
133144
////////////////////////////////////////////////////////////////////////////////////////
@@ -140,8 +151,8 @@ template
140151
inline auto Observe(const RSignal<D,TArg>& subject, F&& func)
141152
-> RObserver<D>
142153
{
143-
std::unique_ptr<ObserverNode<D>> pUnique(
144-
new SignalObserverNode<D,TArg>(
154+
std::unique_ptr< REACT_IMPL_::ObserverNode<D>> pUnique(
155+
new REACT_IMPL_::SignalObserverNode<D,TArg>(
145156
subject.GetPtr(), std::forward<F>(func), false));
146157

147158
auto* raw = pUnique.get();
@@ -162,8 +173,8 @@ template
162173
inline auto Observe(const REvents<D,TArg>& subject, F&& func)
163174
-> RObserver<D>
164175
{
165-
std::unique_ptr<ObserverNode<D>> pUnique(
166-
new EventObserverNode<D,TArg>(
176+
std::unique_ptr< REACT_IMPL_::ObserverNode<D>> pUnique(
177+
new REACT_IMPL_::EventObserverNode<D,TArg>(
167178
subject.GetPtr(), std::forward<F>(func), false));
168179

169180
auto* raw = pUnique.get();
@@ -181,8 +192,8 @@ template
181192
inline auto Observe(const REvents<D,EventToken>& subject, F&& func)
182193
-> RObserver<D>
183194
{
184-
std::unique_ptr<ObserverNode<D>> pUnique(
185-
new EventObserverNode<D,EventToken>(
195+
std::unique_ptr< REACT_IMPL_::ObserverNode<D>> pUnique(
196+
new REACT_IMPL_::EventObserverNode<D,EventToken>(
186197
subject.GetPtr(), [func] (EventToken _) { func(); }, false));
187198

188199
auto* raw = pUnique.get();
@@ -211,7 +222,7 @@ inline void DetachAllObservers(const Reactive<TNode<D,TArg>>& subject)
211222
////////////////////////////////////////////////////////////////////////////////////////
212223
inline void DetachThisObserver()
213224
{
214-
current_observer_state_::shouldDetach = true;
225+
REACT_IMPL_::current_observer_state_::shouldDetach = true;
215226
}
216227

217-
} // ~namespace react
228+
REACT_END_

include/react/Operations.h

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include "react/Defs.h"
4+
35
#include <functional>
46
#include <memory>
57
#include <thread>
@@ -11,7 +13,7 @@
1113
#include "react/graph/ConversionNodes.h"
1214

1315
////////////////////////////////////////////////////////////////////////////////////////
14-
namespace react {
16+
REACT_BEGIN_
1517

1618
////////////////////////////////////////////////////////////////////////////////////////
1719
/// Fold
@@ -28,7 +30,7 @@ inline auto Fold(V&& init, const REvents<D,E>& events, F&& func)
2830
-> RSignal<D,S>
2931
{
3032
return RSignal<D,S>(
31-
std::make_shared<FoldNode<D,S,E>>(
33+
std::make_shared<REACT_IMPL_::FoldNode<D,S,E>>(
3234
std::forward<V>(init), events.GetPtr(), std::forward<F>(func), false));
3335
}
3436

@@ -47,7 +49,7 @@ inline auto Iterate(V&& init, const REvents<D,E>& events, F&& func)
4749
-> RSignal<D,S>
4850
{
4951
return RSignal<D,S>(
50-
std::make_shared<IterateNode<D,S,E>>(
52+
std::make_shared<REACT_IMPL_::IterateNode<D,S,E>>(
5153
std::forward<V>(init), events.GetPtr(), std::forward<F>(func), false));
5254
}
5355

@@ -64,7 +66,7 @@ inline auto Hold(V&& init, const REvents<D,T>& events)
6466
-> RSignal<D,T>
6567
{
6668
return RSignal<D,T>(
67-
std::make_shared<HoldNode<D,T>>(
69+
std::make_shared<REACT_IMPL_::HoldNode<D,T>>(
6870
std::forward<V>(init), events.GetPtr(), false));
6971
}
7072

@@ -81,7 +83,7 @@ inline auto Snapshot(const RSignal<D,S>& target, const REvents<D,E>& trigger)
8183
-> RSignal<D,S>
8284
{
8385
return RSignal<D,S>(
84-
std::make_shared<SnapshotNode<D,S,E>>(
86+
std::make_shared<REACT_IMPL_::SnapshotNode<D,S,E>>(
8587
target.GetPtr(), trigger.GetPtr(), false));
8688
}
8789

@@ -110,7 +112,7 @@ inline auto Monitor(const RSignal<D,S>& target)
110112
-> REvents<D,S>
111113
{
112114
return REvents<D,S>(
113-
std::make_shared<MonitorNode<D, S>>(
115+
std::make_shared<REACT_IMPL_::MonitorNode<D, S>>(
114116
target.GetPtr(), false));
115117
}
116118

@@ -159,7 +161,7 @@ inline auto Pulse(const RSignal<D,S>& target, const REvents<D,E>& trigger)
159161
-> REvents<D,S>
160162
{
161163
return REvents<D,S>(
162-
std::make_shared<PulseNode<D,S,E>>(
164+
std::make_shared<REACT_IMPL_::PulseNode<D,S,E>>(
163165
target.GetPtr(), trigger.GetPtr(), false));
164166
}
165167

@@ -179,7 +181,7 @@ inline auto Flatten(const RSignal<D,THandle<D,TInnerValue>>& node)
179181
-> REvents<D,TInnerValue>
180182
{
181183
return REvents<D,TInnerValue>(
182-
std::make_shared<EventFlattenNode<D, REvents<D,TInnerValue>, TInnerValue>>(
184+
std::make_shared<REACT_IMPL_::EventFlattenNode<D, REvents<D,TInnerValue>, TInnerValue>>(
183185
node.GetPtr(), node().GetPtr(), false));
184186
}
185187

@@ -201,4 +203,4 @@ struct Decrementer : public std::unary_function<T,T>
201203
T operator() (T v) { return v-1; }
202204
};
203205

204-
} //~namespace react
206+
REACT_END_

include/react/ReactiveBase.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#pragma once
22

3+
#include "react/Defs.h"
4+
35
#include <functional>
46
#include <memory>
57

68
////////////////////////////////////////////////////////////////////////////////////////
7-
namespace react {
9+
REACT_BEGIN_
810

911
////////////////////////////////////////////////////////////////////////////////////////
1012
/// Reactive
@@ -44,16 +46,14 @@ class Reactive
4446
std::shared_ptr<T> ptr_;
4547
};
4648

47-
////////////////////////////////////////////////////////////////////////////////////////
48-
namespace impl
49-
{
49+
REACT_END_
50+
51+
REACT_IMPL_BEGIN_
5052

5153
template <typename L, typename R>
5254
bool Equals(L lhs, R rhs)
5355
{
5456
return lhs == rhs;
5557
}
5658

57-
} // ~namespace react::impl
58-
59-
} // ~namespace react
59+
REACT_IMPL_END_

0 commit comments

Comments
 (0)