Home | History | Annotate | Download | only in source
      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 the pure C wrapper of the DataLog class.
     13  */
     14 
     15 #include "system_wrappers/interface/data_log_c.h"
     16 
     17 #include <string>
     18 
     19 #include "system_wrappers/interface/data_log.h"
     20 
     21 extern "C" int WebRtcDataLog_CreateLog() {
     22   return webrtc::DataLog::CreateLog();
     23 }
     24 
     25 extern "C" void WebRtcDataLog_ReturnLog() {
     26   return webrtc::DataLog::ReturnLog();
     27 }
     28 
     29 extern "C" char* WebRtcDataLog_Combine(char* combined_name, size_t combined_len,
     30                                        const char* table_name, int table_id) {
     31   if (!table_name) return NULL;
     32   std::string combined = webrtc::DataLog::Combine(table_name, table_id);
     33   if (combined.size() >= combined_len) return NULL;
     34   std::copy(combined.begin(), combined.end(), combined_name);
     35   combined_name[combined.size()] = '\0';
     36   return combined_name;
     37 }
     38 
     39 extern "C" int WebRtcDataLog_AddTable(const char* table_name) {
     40   if (!table_name) return -1;
     41   return webrtc::DataLog::AddTable(table_name);
     42 }
     43 
     44 extern "C" int WebRtcDataLog_AddColumn(const char* table_name,
     45                                        const char* column_name,
     46                                        int multi_value_length) {
     47   if (!table_name || !column_name) return -1;
     48   return webrtc::DataLog::AddColumn(table_name, column_name,
     49                                     multi_value_length);
     50 }
     51 
     52 extern "C" int WebRtcDataLog_InsertCell_int(const char* table_name,
     53                                             const char* column_name,
     54                                             int value) {
     55   if (!table_name || !column_name) return -1;
     56   return webrtc::DataLog::InsertCell(table_name, column_name, value);
     57 }
     58 
     59 extern "C" int WebRtcDataLog_InsertArray_int(const char* table_name,
     60                                              const char* column_name,
     61                                              const int* values,
     62                                              int length) {
     63   if (!table_name || !column_name) return -1;
     64   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
     65 }
     66 
     67 extern "C" int WebRtcDataLog_InsertCell_float(const char* table_name,
     68                                               const char* column_name,
     69                                               float value) {
     70   if (!table_name || !column_name) return -1;
     71   return webrtc::DataLog::InsertCell(table_name, column_name, value);
     72 }
     73 
     74 extern "C" int WebRtcDataLog_InsertArray_float(const char* table_name,
     75                                                const char* column_name,
     76                                                const float* values,
     77                                                int length) {
     78   if (!table_name || !column_name) return -1;
     79   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
     80 }
     81 
     82 extern "C" int WebRtcDataLog_InsertCell_double(const char* table_name,
     83                                                const char* column_name,
     84                                                double value) {
     85   if (!table_name || !column_name) return -1;
     86   return webrtc::DataLog::InsertCell(table_name, column_name, value);
     87 }
     88 
     89 extern "C" int WebRtcDataLog_InsertArray_double(const char* table_name,
     90                                                 const char* column_name,
     91                                                 const double* values,
     92                                                 int length) {
     93   if (!table_name || !column_name) return -1;
     94   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
     95 }
     96 
     97 extern "C" int WebRtcDataLog_InsertCell_int32(const char* table_name,
     98                                               const char* column_name,
     99                                               int32_t value) {
    100   if (!table_name || !column_name) return -1;
    101   return webrtc::DataLog::InsertCell(table_name, column_name, value);
    102 }
    103 
    104 extern "C" int WebRtcDataLog_InsertArray_int32(const char* table_name,
    105                                                const char* column_name,
    106                                                const int32_t* values,
    107                                                int length) {
    108   if (!table_name || !column_name) return -1;
    109   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
    110 }
    111 
    112 extern "C" int WebRtcDataLog_InsertCell_uint32(const char* table_name,
    113                                                const char* column_name,
    114                                                uint32_t value) {
    115   if (!table_name || !column_name) return -1;
    116   return webrtc::DataLog::InsertCell(table_name, column_name, value);
    117 }
    118 
    119 extern "C" int WebRtcDataLog_InsertArray_uint32(const char* table_name,
    120                                                 const char* column_name,
    121                                                 const uint32_t* values,
    122                                                 int length) {
    123   if (!table_name || !column_name) return -1;
    124   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
    125 }
    126 
    127 extern "C" int WebRtcDataLog_InsertCell_int64(const char* table_name,
    128                                               const char* column_name,
    129                                               int64_t value) {
    130   if (!table_name || !column_name) return -1;
    131   return webrtc::DataLog::InsertCell(table_name, column_name, value);
    132 }
    133 
    134 extern "C" int WebRtcDataLog_InsertArray_int64(const char* table_name,
    135                                                const char* column_name,
    136                                                const int64_t* values,
    137                                                int length) {
    138   if (!table_name || !column_name) return -1;
    139   return webrtc::DataLog::InsertCell(table_name, column_name, values, length);
    140 }
    141 
    142 extern "C" int WebRtcDataLog_NextRow(const char* table_name) {
    143   if (!table_name) return -1;
    144   return webrtc::DataLog::NextRow(table_name);
    145 }
    146