1 /*
2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 /*
12  * This is a pure C wrapper of the DataLog class. The functions are directly
13  * mapped here except for InsertCell as C does not support templates.
14  * See data_log.h for a description of the functions.
15  */
16 
17 #ifndef SRC_SYSTEM_WRAPPERS_INTERFACE_DATA_LOG_C_H_
18 #define SRC_SYSTEM_WRAPPERS_INTERFACE_DATA_LOG_C_H_
19 
20 #include <stddef.h>  /* size_t */
21 
22 #include "typedefs.h"  /* NOLINT(build/include) */
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /*
29  * All char* parameters in this file are expected to be null-terminated
30  * character sequences.
31  */
32 int WebRtcDataLog_CreateLog();
33 void WebRtcDataLog_ReturnLog();
34 char* WebRtcDataLog_Combine(char* combined_name, size_t combined_len,
35                             const char* table_name, int table_id);
36 int WebRtcDataLog_AddTable(const char* table_name);
37 int WebRtcDataLog_AddColumn(const char* table_name, const char* column_name,
38                             int multi_value_length);
39 
40 int WebRtcDataLog_InsertCell_int(const char* table_name,
41                                  const char* column_name,
42                                  int value);
43 int WebRtcDataLog_InsertArray_int(const char* table_name,
44                                   const char* column_name,
45                                   const int* values,
46                                   int length);
47 int WebRtcDataLog_InsertCell_float(const char* table_name,
48                                    const char* column_name,
49                                    float value);
50 int WebRtcDataLog_InsertArray_float(const char* table_name,
51                                     const char* column_name,
52                                     const float* values,
53                                     int length);
54 int WebRtcDataLog_InsertCell_double(const char* table_name,
55                                     const char* column_name,
56                                     double value);
57 int WebRtcDataLog_InsertArray_double(const char* table_name,
58                                      const char* column_name,
59                                      const double* values,
60                                      int length);
61 int WebRtcDataLog_InsertCell_int32(const char* table_name,
62                                    const char* column_name,
63                                    int32_t value);
64 int WebRtcDataLog_InsertArray_int32(const char* table_name,
65                                     const char* column_name,
66                                     const int32_t* values,
67                                     int length);
68 int WebRtcDataLog_InsertCell_uint32(const char* table_name,
69                                     const char* column_name,
70                                     uint32_t value);
71 int WebRtcDataLog_InsertArray_uint32(const char* table_name,
72                                      const char* column_name,
73                                      const uint32_t* values,
74                                      int length);
75 int WebRtcDataLog_InsertCell_int64(const char* table_name,
76                                    const char* column_name,
77                                    int64_t value);
78 int WebRtcDataLog_InsertArray_int64(const char* table_name,
79                                     const char* column_name,
80                                     const int64_t* values,
81                                     int length);
82 
83 int WebRtcDataLog_NextRow(const char* table_name);
84 
85 #ifdef __cplusplus
86 }  /* end of extern "C" */
87 #endif
88 
89 #endif  /* SRC_SYSTEM_WRAPPERS_INTERFACE_DATA_LOG_C_H_ */ /* NOLINT */
90