• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 The Android Open Source Project
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 #ifndef SRC_TOOLS_PROTO_MERGER_PROTO_FILE_SERIALIZER_H_
18 #define SRC_TOOLS_PROTO_MERGER_PROTO_FILE_SERIALIZER_H_
19 
20 #include "src/tools/proto_merger/proto_file.h"
21 
22 namespace perfetto {
23 namespace proto_merger {
24 
25 // Serializes a ProtoFile struct into a .proto file which is
26 // capable of being parsed by protoc.
27 // For example:
28 // ProtoFile {
29 //   messages: [
30 //     Message {
31 //       name: Baz
32 //       fields: [
33 //         Field {
34 //           label: optional
35 //           type: Foo
36 //           name: foo
37 //           number: 1
38 //         }
39 //         Field {
40 //           label: optional
41 //           type: Bar
42 //           name: bar
43 //           number: 2
44 //         }
45 //       ]
46 //     }
47 //   ]
48 // }
49 //
50 // will convert to:
51 //
52 // message Baz {
53 //   optional Foo foo = 1;
54 //   optonal Bar bar = 2;
55 // }
56 std::string ProtoFileToDotProto(const ProtoFile&);
57 
58 }  // namespace proto_merger
59 }  // namespace perfetto
60 
61 #endif  // SRC_TOOLS_PROTO_MERGER_PROTO_FILE_SERIALIZER_H_
62