1 | /* Copyright 2017 The TensorFlow Authors. All Rights Reserved. |
---|---|
2 | |
3 | Licensed under the Apache License, Version 2.0 (the "License"); |
4 | you may not use this file except in compliance with the License. |
5 | You may obtain a copy of the License at |
6 | |
7 | http://www.apache.org/licenses/LICENSE-2.0 |
8 | |
9 | Unless required by applicable law or agreed to in writing, software |
10 | distributed under the License is distributed on an "AS IS" BASIS, |
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 | See the License for the specific language governing permissions and |
13 | limitations under the License. |
14 | ==============================================================================*/ |
15 | #ifndef TENSORFLOW_C_EAGER_TFE_EXECUTOR_INTERNAL_H_ |
16 | #define TENSORFLOW_C_EAGER_TFE_EXECUTOR_INTERNAL_H_ |
17 | |
18 | #include <memory> |
19 | |
20 | #include "tensorflow/core/common_runtime/eager/eager_executor.h" |
21 | |
22 | struct TFE_Executor { |
23 | explicit TFE_Executor(bool async, bool enable_streaming_enqueue) |
24 | : owned_executor( |
25 | new tensorflow::EagerExecutor(async, enable_streaming_enqueue)) {} |
26 | |
27 | explicit TFE_Executor(tensorflow::EagerExecutor* executor) |
28 | : owned_executor(nullptr), unowned_executor(executor) {} |
29 | |
30 | tensorflow::EagerExecutor* executor() { |
31 | return owned_executor == nullptr ? unowned_executor : owned_executor.get(); |
32 | } |
33 | |
34 | std::unique_ptr<tensorflow::EagerExecutor> owned_executor; |
35 | tensorflow::EagerExecutor* unowned_executor; |
36 | }; |
37 | |
38 | #endif // TENSORFLOW_C_EAGER_TFE_EXECUTOR_INTERNAL_H_ |
39 |