1 | /* Copyright 2022 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 | |
16 | #ifndef TENSORFLOW_C_TF_BUFFER_INTERNAL_H_ |
17 | #define TENSORFLOW_C_TF_BUFFER_INTERNAL_H_ |
18 | |
19 | #include <memory> |
20 | |
21 | #include "tensorflow/c/tf_buffer.h" |
22 | #include "tensorflow/core/platform/protobuf.h" |
23 | #include "tensorflow/core/platform/status.h" |
24 | |
25 | namespace tsl { |
26 | class Status; |
27 | } |
28 | namespace tensorflow { |
29 | using tsl::Status; |
30 | |
31 | Status MessageToBuffer(const tensorflow::protobuf::MessageLite& in, |
32 | TF_Buffer* out); |
33 | |
34 | Status BufferToMessage(const TF_Buffer* in, |
35 | tensorflow::protobuf::MessageLite* out); |
36 | |
37 | namespace internal { |
38 | |
39 | struct TF_BufferDeleter { |
40 | void operator()(TF_Buffer* buf) const { TF_DeleteBuffer(buf); } |
41 | }; |
42 | |
43 | } // namespace internal |
44 | |
45 | using TF_BufferPtr = std::unique_ptr<TF_Buffer, internal::TF_BufferDeleter>; |
46 | |
47 | } // namespace tensorflow |
48 | |
49 | #endif // TENSORFLOW_C_TF_BUFFER_INTERNAL_H_ |
50 | |