Skip to content

Commit d18fab4

Browse files
committed
Removed GenerateEvents. No longer required due to extended Transform.
1 parent b155613 commit d18fab4

2 files changed

Lines changed: 0 additions & 154 deletions

File tree

include/react/Algorithm.h

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -200,69 +200,6 @@ auto Pulse(const Events<D,E>& trigger, const Signal<D,S>& target)
200200
target.NodePtr(), trigger.NodePtr()));
201201
}
202202

203-
///////////////////////////////////////////////////////////////////////////////////////////////////
204-
/// GenerateEvents
205-
///////////////////////////////////////////////////////////////////////////////////////////////////
206-
template
207-
<
208-
typename D,
209-
typename E,
210-
typename FIn,
211-
typename ... TDepValues,
212-
typename TOut = std::result_of<FIn(E,TDepValues ...)>::type,
213-
class = std::enable_if<
214-
! std::is_same<E,EventToken>::value>::type
215-
>
216-
auto GenerateEvents(const Events<D,E>& trigger, FIn&& func,
217-
const Signal<D,TDepValues>& ... deps)
218-
-> Events<D,TOut>
219-
{
220-
using REACT_IMPL::EventGeneratorNode;
221-
222-
using F = std::decay<FIn>::type;
223-
224-
return Events<D,TOut>(
225-
std::make_shared<EventGeneratorNode<D,E,TOut,F,TDepValues ...>>(
226-
trigger.NodePtr(), std::forward<FIn>(func), deps.NodePtr() ...));
227-
}
228-
229-
// Token stream version
230-
template
231-
<
232-
typename D,
233-
typename FIn,
234-
typename ... TDepValues,
235-
typename TOut = std::result_of<FIn(TDepValues ...)>::type
236-
>
237-
auto GenerateEvents(const Events<D,EventToken>& trigger, FIn&& func,
238-
const Signal<D,TDepValues>& ... deps)
239-
-> Events<D,TOut>
240-
{
241-
using REACT_IMPL::EventGeneratorNode;
242-
243-
using F = std::decay<FIn>::type;
244-
245-
struct Wrapper_
246-
{
247-
Wrapper_(FIn&& func) : MyFunc{ std::forward<FIn>(func) } {}
248-
Wrapper_(const Wrapper_& other) = default;
249-
Wrapper_(Wrapper_&& other) : MyFunc{ std::move(other.MyFunc) } {}
250-
251-
void operator()(EventToken, const TDepValues& ... args)
252-
{
253-
MyFunc(args ...);
254-
}
255-
256-
F MyFunc;
257-
};
258-
259-
Wrapper_ wrapper{ std::forward<FIn>(func) };
260-
261-
return Events<D,TOut>(
262-
std::make_shared<EventGeneratorNode<D,EventToken,TOut,Wrapper_,TDepValues ...>>(
263-
trigger.NodePtr(), std::move(wrapper), deps.NodePtr() ...));
264-
}
265-
266203
///////////////////////////////////////////////////////////////////////////////////////////////////
267204
/// Changed
268205
///////////////////////////////////////////////////////////////////////////////////////////////////

include/react/detail/graph/AlgorithmNodes.h

Lines changed: 0 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -520,95 +520,4 @@ class PulseNode : public EventStreamNode<D,S>
520520
const SharedPtrT<EventStreamNode<D,E>> trigger_;
521521
};
522522

523-
///////////////////////////////////////////////////////////////////////////////////////////////////
524-
/// EventGeneratorNode
525-
///////////////////////////////////////////////////////////////////////////////////////////////////
526-
template
527-
<
528-
typename D,
529-
typename E,
530-
typename TOut,
531-
typename TFunc,
532-
typename ... TDepValues
533-
>
534-
class EventGeneratorNode : public EventStreamNode<D,TOut>
535-
{
536-
public:
537-
template <typename F>
538-
EventGeneratorNode(const std::shared_ptr<EventStreamNode<D,E>>& trigger, F&& func,
539-
const std::shared_ptr<SignalNode<D,TDepValues>>& ... deps) :
540-
EventStreamNode{ },
541-
trigger_{ trigger },
542-
func_{ std::forward<F>(func) },
543-
deps_{ deps ... }
544-
{
545-
Engine::OnNodeCreate(*this);
546-
Engine::OnNodeAttach(*this, *trigger_);
547-
REACT_EXPAND_PACK(Engine::OnNodeAttach(*this, *deps));
548-
}
549-
550-
~EventGeneratorNode()
551-
{
552-
553-
Engine::OnNodeDetach(*this, *trigger_);
554-
555-
apply(
556-
DetachFunctor<D,EventGeneratorNode,
557-
SharedPtrT<SignalNode<D,TDepValues>>...>{ *this },
558-
deps_);
559-
560-
Engine::OnNodeDestroy(*this);
561-
}
562-
563-
virtual const char* GetNodeType() const override { return "EventGeneratorNode"; }
564-
virtual int DependencyCount() const override { return 1 + sizeof...(TDepValues); }
565-
566-
virtual void Tick(void* turnPtr) override
567-
{
568-
struct EvalFunctor_
569-
{
570-
EvalFunctor_(const E& e, TFunc& f) :
571-
MyEvent{ e },
572-
MyFunc{ f }
573-
{}
574-
575-
void operator()(const SharedPtrT<SignalNode<D,TDepValues>>& ... args)
576-
{
577-
MyFunc(MyEvent, args->ValueRef() ...);
578-
}
579-
580-
const E& MyEvent;
581-
TFunc& MyFunc;
582-
};
583-
584-
typedef typename D::Engine::TurnT TurnT;
585-
TurnT& turn = *reinterpret_cast<TurnT*>(turnPtr);
586-
587-
SetCurrentTurn(turn, true);
588-
trigger_->SetCurrentTurn(turn);
589-
590-
REACT_LOG(D::Log().template Append<NodeEvaluateBeginEvent>(
591-
GetObjectId(*this), turn.Id()));
592-
593-
for (const auto& e : trigger_->Events())
594-
apply(EvalFunctor_{ e, func_ }, deps_);
595-
596-
REACT_LOG(D::Log().template Append<NodeEvaluateEndEvent>(
597-
GetObjectId(*this), turn.Id()));
598-
599-
if (events_.size() > 0)
600-
Engine::OnNodePulse(*this, turn);
601-
else
602-
Engine::OnNodeIdlePulse(*this, turn);
603-
}
604-
605-
private:
606-
using DepHolderT = std::tuple<SharedPtrT<SignalNode<D,TDepValues>>...>;
607-
608-
const SharedPtrT<EventStreamNode<D,E>> trigger_;
609-
610-
TFunc func_;
611-
DepHolderT deps_;
612-
};
613-
614523
/****************************************/ REACT_IMPL_END /***************************************/

0 commit comments

Comments
 (0)