ArmNN
 25.11
Loading...
Searching...
No Matches
Observable.hpp
Go to the documentation of this file.
1//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
8#include "Graph.hpp"
9
10namespace armnn
11{
12
13template <typename ObservedType>
15{
16public:
17 using Iterator = typename std::list<ObservedType>::const_iterator;
18
19 GraphObservable(Graph& subject, GraphEvent notifyOnEvent)
20 : m_Subject(&subject)
21 {
22 m_NotifyOnEvent = notifyOnEvent;
23 m_Subject->AttachObservable(this, m_NotifyOnEvent);
24 };
25
26 void Clear() { m_ObservedObjects.clear(); };
27
28 Iterator begin() { return m_ObservedObjects.begin(); }
29
30 Iterator end() { return m_ObservedObjects.end(); }
31
32protected:
34 {
35 if (m_Subject)
36 {
37 m_Subject->DetachObservable(this, m_NotifyOnEvent);
38 }
39 }
40
43 std::list<ObservedType> m_ObservedObjects;
44};
45
47{
48public:
49 explicit AddedLayerObservable(Graph& subject)
51 {};
52
53 void Update(Layer* graphLayer) override;
54};
55
57{
58public:
60 : GraphObservable<std::string>(subject, GraphEvent::LayerErased)
61 {};
62
63 void Update(Layer* graphLayer) override;
64};
65
66} //namespace armnn
67
AddedLayerObservable(Graph &subject)
ErasedLayerNamesObservable(Graph &subject)
std::list< ObservedType > m_ObservedObjects
GraphObservable(Graph &subject, GraphEvent notifyOnEvent)
typename std::list< ObservedType >::const_iterator Iterator
Copyright (c) 2021 ARM Limited and Contributors.