1 /*
2  * Copyright (C) 2019, 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 #pragma once
18 
19 #include "Collation.h"
20 
21 #include <stdio.h>
22 #include <string.h>
23 
24 namespace android {
25 namespace stats_log_api_gen {
26 
27 using namespace std;
28 
29 void write_native_cpp_includes_q(FILE* out);
30 
31 void write_native_stats_log_cpp_globals_q(FILE* out);
32 
33 void write_native_try_stats_write_methods_q(FILE* out, const Atoms& atoms,
34         const AtomDecl& attributionDecl, const string& moduleName);
35 
36 void write_native_stats_write_methods_q(FILE* out, const string& methodName, const Atoms& atoms,
37         const AtomDecl& attributionDecl, const string& moduleName, const string& tryMethodName);
38 
39 void write_native_try_stats_write_non_chained_methods_q(FILE* out, const Atoms& atoms,
40         const AtomDecl& attributionDecl, const string& moduleName);
41 
42 void write_native_stats_write_non_chained_methods_q(FILE* out, const string& methodName,
43         const Atoms& atoms, const AtomDecl& attributionDecl, const string& moduleName,
44         const string& tryMethodName);
45 
46 void write_native_get_timestamp_ns_q(FILE* out);
47 
48 }  // namespace stats_log_api_gen
49 }  // namespace android
50