Imported Upstream version 1.12.0
[platform/core/ml/nnfw.git] / runtime / onert / core / src / exec / ExecutionObservee.cc
1 /*
2  * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
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
17 #include "ExecutionObservee.h"
18
19 namespace onert
20 {
21 namespace exec
22 {
23
24 void ExecutionObservee::add(std::unique_ptr<IExecutionObserver> observer)
25 {
26   _observers.emplace_back(std::move(observer));
27 }
28
29 void ExecutionObservee::notifySubgraphBegin(ir::SubgraphIndex ind)
30 {
31   for (auto &o : _observers)
32   {
33     o->handleSubgraphBegin(ind);
34   }
35 }
36
37 void ExecutionObservee::notifySubgraphEnd(ir::SubgraphIndex ind)
38 {
39   for (auto &o : _observers)
40   {
41     o->handleSubgraphEnd(ind);
42   }
43 }
44
45 void ExecutionObservee::notifyJobBegin(IExecutor *executor, ir::SubgraphIndex index,
46                                        const ir::OpSequence *op_seq,
47                                        const backend::Backend *backend)
48 {
49   for (auto &o : _observers)
50   {
51     o->handleJobBegin(executor, index, op_seq, backend);
52   }
53 }
54
55 void ExecutionObservee::notifyJobEnd(IExecutor *executor, ir::SubgraphIndex index,
56                                      const ir::OpSequence *op_seq, const backend::Backend *backend)
57 {
58   for (auto &o : _observers)
59   {
60     o->handleJobEnd(executor, index, op_seq, backend);
61   }
62 }
63
64 } // namespace exec
65 } // namespace onert