1c55a96383497a772a307b346368133960b02ad03Eric Laurent/* 2c55a96383497a772a307b346368133960b02ad03Eric Laurent * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3c55a96383497a772a307b346368133960b02ad03Eric Laurent * 4c55a96383497a772a307b346368133960b02ad03Eric Laurent * Use of this source code is governed by a BSD-style license 5c55a96383497a772a307b346368133960b02ad03Eric Laurent * that can be found in the LICENSE file in the root of the source 6c55a96383497a772a307b346368133960b02ad03Eric Laurent * tree. An additional intellectual property rights grant can be found 7c55a96383497a772a307b346368133960b02ad03Eric Laurent * in the file PATENTS. All contributing project authors may 8c55a96383497a772a307b346368133960b02ad03Eric Laurent * be found in the AUTHORS file in the root of the source tree. 9c55a96383497a772a307b346368133960b02ad03Eric Laurent */ 10c55a96383497a772a307b346368133960b02ad03Eric Laurent 11c55a96383497a772a307b346368133960b02ad03Eric Laurent/* 12c55a96383497a772a307b346368133960b02ad03Eric Laurent * This is the pure C wrapper of the DataLog class. 13c55a96383497a772a307b346368133960b02ad03Eric Laurent */ 14c55a96383497a772a307b346368133960b02ad03Eric Laurent 15c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "system_wrappers/interface/data_log_c.h" 16c55a96383497a772a307b346368133960b02ad03Eric Laurent 17c55a96383497a772a307b346368133960b02ad03Eric Laurent#include <string> 18c55a96383497a772a307b346368133960b02ad03Eric Laurent 19c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "system_wrappers/interface/data_log.h" 20c55a96383497a772a307b346368133960b02ad03Eric Laurent 21c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_CreateLog() { 22c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::CreateLog(); 23c55a96383497a772a307b346368133960b02ad03Eric Laurent} 24c55a96383497a772a307b346368133960b02ad03Eric Laurent 25c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" void WebRtcDataLog_ReturnLog() { 26c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::ReturnLog(); 27c55a96383497a772a307b346368133960b02ad03Eric Laurent} 28c55a96383497a772a307b346368133960b02ad03Eric Laurent 29c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" char* WebRtcDataLog_Combine(char* combined_name, size_t combined_len, 30c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* table_name, int table_id) { 31c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name) return NULL; 32c55a96383497a772a307b346368133960b02ad03Eric Laurent std::string combined = webrtc::DataLog::Combine(table_name, table_id); 33c55a96383497a772a307b346368133960b02ad03Eric Laurent if (combined.size() >= combined_len) return NULL; 34c55a96383497a772a307b346368133960b02ad03Eric Laurent std::copy(combined.begin(), combined.end(), combined_name); 35c55a96383497a772a307b346368133960b02ad03Eric Laurent combined_name[combined.size()] = '\0'; 36c55a96383497a772a307b346368133960b02ad03Eric Laurent return combined_name; 37c55a96383497a772a307b346368133960b02ad03Eric Laurent} 38c55a96383497a772a307b346368133960b02ad03Eric Laurent 39c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_AddTable(const char* table_name) { 40c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name) return -1; 41c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::AddTable(table_name); 42c55a96383497a772a307b346368133960b02ad03Eric Laurent} 43c55a96383497a772a307b346368133960b02ad03Eric Laurent 44c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_AddColumn(const char* table_name, 45c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 46c55a96383497a772a307b346368133960b02ad03Eric Laurent int multi_value_length) { 47c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 48c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::AddColumn(table_name, column_name, 49c55a96383497a772a307b346368133960b02ad03Eric Laurent multi_value_length); 50c55a96383497a772a307b346368133960b02ad03Eric Laurent} 51c55a96383497a772a307b346368133960b02ad03Eric Laurent 52c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_int(const char* table_name, 53c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 54c55a96383497a772a307b346368133960b02ad03Eric Laurent int value) { 55c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 56c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 57c55a96383497a772a307b346368133960b02ad03Eric Laurent} 58c55a96383497a772a307b346368133960b02ad03Eric Laurent 59c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_int(const char* table_name, 60c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 61c55a96383497a772a307b346368133960b02ad03Eric Laurent const int* values, 62c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 63c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 64c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 65c55a96383497a772a307b346368133960b02ad03Eric Laurent} 66c55a96383497a772a307b346368133960b02ad03Eric Laurent 67c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_float(const char* table_name, 68c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 69c55a96383497a772a307b346368133960b02ad03Eric Laurent float value) { 70c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 71c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 72c55a96383497a772a307b346368133960b02ad03Eric Laurent} 73c55a96383497a772a307b346368133960b02ad03Eric Laurent 74c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_float(const char* table_name, 75c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 76c55a96383497a772a307b346368133960b02ad03Eric Laurent const float* values, 77c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 78c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 79c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 80c55a96383497a772a307b346368133960b02ad03Eric Laurent} 81c55a96383497a772a307b346368133960b02ad03Eric Laurent 82c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_double(const char* table_name, 83c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 84c55a96383497a772a307b346368133960b02ad03Eric Laurent double value) { 85c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 86c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 87c55a96383497a772a307b346368133960b02ad03Eric Laurent} 88c55a96383497a772a307b346368133960b02ad03Eric Laurent 89c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_double(const char* table_name, 90c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 91c55a96383497a772a307b346368133960b02ad03Eric Laurent const double* values, 92c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 93c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 94c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 95c55a96383497a772a307b346368133960b02ad03Eric Laurent} 96c55a96383497a772a307b346368133960b02ad03Eric Laurent 97c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_int32(const char* table_name, 98c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 99c55a96383497a772a307b346368133960b02ad03Eric Laurent int32_t value) { 100c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 101c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 102c55a96383497a772a307b346368133960b02ad03Eric Laurent} 103c55a96383497a772a307b346368133960b02ad03Eric Laurent 104c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_int32(const char* table_name, 105c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 106c55a96383497a772a307b346368133960b02ad03Eric Laurent const int32_t* values, 107c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 108c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 109c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 110c55a96383497a772a307b346368133960b02ad03Eric Laurent} 111c55a96383497a772a307b346368133960b02ad03Eric Laurent 112c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_uint32(const char* table_name, 113c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 114c55a96383497a772a307b346368133960b02ad03Eric Laurent uint32_t value) { 115c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 116c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 117c55a96383497a772a307b346368133960b02ad03Eric Laurent} 118c55a96383497a772a307b346368133960b02ad03Eric Laurent 119c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_uint32(const char* table_name, 120c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 121c55a96383497a772a307b346368133960b02ad03Eric Laurent const uint32_t* values, 122c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 123c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 124c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 125c55a96383497a772a307b346368133960b02ad03Eric Laurent} 126c55a96383497a772a307b346368133960b02ad03Eric Laurent 127c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertCell_int64(const char* table_name, 128c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 129c55a96383497a772a307b346368133960b02ad03Eric Laurent int64_t value) { 130c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 131c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, value); 132c55a96383497a772a307b346368133960b02ad03Eric Laurent} 133c55a96383497a772a307b346368133960b02ad03Eric Laurent 134c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_InsertArray_int64(const char* table_name, 135c55a96383497a772a307b346368133960b02ad03Eric Laurent const char* column_name, 136c55a96383497a772a307b346368133960b02ad03Eric Laurent const int64_t* values, 137c55a96383497a772a307b346368133960b02ad03Eric Laurent int length) { 138c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name || !column_name) return -1; 139c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::InsertCell(table_name, column_name, values, length); 140c55a96383497a772a307b346368133960b02ad03Eric Laurent} 141c55a96383497a772a307b346368133960b02ad03Eric Laurent 142c55a96383497a772a307b346368133960b02ad03Eric Laurentextern "C" int WebRtcDataLog_NextRow(const char* table_name) { 143c55a96383497a772a307b346368133960b02ad03Eric Laurent if (!table_name) return -1; 144c55a96383497a772a307b346368133960b02ad03Eric Laurent return webrtc::DataLog::NextRow(table_name); 145c55a96383497a772a307b346368133960b02ad03Eric Laurent} 146